[Cyphers] 클레어 클렌징빔 오브젝트 구현
2023. 10. 5.

 

-클렌징빔은 LCRC를 누르는 시간동안 생성되고, 손을 떼는 순간 사라진다.

-클렌징빔의 경우 에임에 따라 길이가 변하는 평타와 달리 오히려 일정한 길이의 레이저 빔이 생성된다.

 

LCRC 클릭: 액션 추가 및 바인딩 수정

 

-Composite With One Modifier button으로 바인딩을 추가해준다. 동시에 눌러야하기때문이다.

-Modifier 버튼만 눌리면 동작하지 않고, Binding 버튼을 기준으로 동작한다.

 

-LCRC와 LC액션은 각각 다른 액션이지만 동일한 버튼(Left Button)이 존재한다. 그냥 액션을 생성하면 LCRC액션 시, LC액션도 함께 실행되는 문제가 발생한다. 이를 해결하기 위해 바인딩에 Interactions로 Press를 추가한다.

(즉, 쌍클릭했을때 평타가 나가지는것을 막기 위해서 HollowKnight 개발할때 사용했던 Interaction을 응용했다.)

https://meltingmelvin.tistory.com/124

 

[HollowKnight] Player 점프 추가 구현(New InputSystem- interactions 의 hold, press)

-기존 점프는 단순히 press하면 같은 높이로 점프하는 것이었다. 그러나 할로우나이트에서 플레이어의 점프는 단순히 press했을때 똑같이 점프하지 않는다. => 점프 키를 눌렀을 때 누른 시간에 비

meltingmelvin.tistory.com

-쌍클릭할때(performed일때) LC가 Disable되도록한다. 그러나 동작이 끝나면 다시 평타를 쓸 수 있어야 하므로 Press의 ReleaseOnly 시 Enable하도록 코드를 수정한다.

-Press의 Trigger Behavior의 ReleaseOnly는 버튼에서 뗐을때 이벤트가 발생하도록 한다.

SerializeField로 playerInput추가 후 직접 접근

PlayerInput의 actions["액션명"]으로 액션에 접근하였다. 

쌍클릭시 평타가 나오지 않는 것 확인

클렌징 빔 오브젝트 생성

-클렌징 빔은 눈에서 생성되므로 새롭게 위치를 만들어준다.

LCRC Pos에 클렌징빔의 위치를 넣어줌
LCRC에 Hold Interaction 추가

-Hold Interaction은 Press Interaction보다 우선권을 가진다. Hold가 실행되는 동안에 Press 인터렉션은 실행되지 않는다.

-Hold가 끝나고 release될때 press interaction이 호출된다.

 

-CoCleansingBeam 메서드에서 while(isLCRC)을 한 이유는 빔은 제자리에서 있는 것이 아니라 버튼이 press되는 동안 플레이어가 회전한다면 그 각도에 따라 빔이 함께 회전하기 때문이다.

-따라서 CoCleansingBeam이 호출되기 전에는 true가 되어야 하며 release될 때 isLCRC를 false로 돌아와야한다.

-CoOffCleansingBeam을 따로 작성해준 이유는 release될 때 따로 꺼줘야하기 때문이다. release되지 않은 동안에는 켜져 있어야 한다.

OnLCRC 메서드 수정
-Hold 상태가 되는 시간이 0.5초는 너무 길어 수정해주었다.
평타 + 클렌징빔 구현결과

 

myoskin