if (ray에 Hit된 액터 있음) && (isHit == False)
if (ray에 Hit된 액터 없음) && (isHit == True)
수정 방향
Progress bar 공부
(https://www.youtube.com/watch?v=SD6RuyaqO9c&t=908s)
Enable Input
호출하고 progress bar 위젯 생성 및 뷰포트에 추가Disable Input
호출하고 위젯 제거
Enable Input
: 액터에서 키보드 입력 받는 경우 필요
Gate
? 실행 흐름을 제어하는데 사용되는 노드
Enter에서 입력 신호를 받아들이고, Gate의 현재 상태(Open/Close)에 따라 그 신호를 Exit로 출력할지 말지 결정
RetriggeralbeDelay
: MaxHoldTime 전에 상호작용 키를 떼면, 다시 상호작용을 시도했을 때 0으로 초기화되도록 하는 함수...?
MaxHoldTime
: 플레이어가 상호작용 키를 누르고 있어야하는 시간 (인스턴스마다 편집 가능하도록 설정)
if (isHeld && isHit)
인 경우만 Update Timer
현재 상황
일단은 이렇게까지 오류 없이 짜보긴 했는데... 잘 짠 건진 모르겠다 🥲
형변환하면 블루프린트가 항상 로드되어 비용이 올라간다고 하는데 BP_ThirdPerson에 형변환해서 가져온 isHit 변수를 틱이벤트마다 참조해도 괜찮은걸까...? Enable Input도 지금 isGenerate==false 일 때 프레임마다 실행되고 있구... bool 변수랑 branch도 너무 많아서 맘에 안든다ㅠㅠ!
하 그치만 이게 내 최선이야...
게이지 0으로 초기화되는 것이 아닌 일정 속도로 감소되도록
: StopTimer 호출 → Set TimeHeld
if (isHit == false) or (isHeld == false){
StopTimer();
while (timeHeld !=0)
timeHeld -= x;
}
수리 완료하면 아군 활성화되고 아군 영입할 수 있도록