
Unity VR Mini Game
복싱만들기
먼저 복싱을 할 때 필요한 클래스

다음과 같이 간단하게 클래스들만 정의해서 만들어볼 것이다.
FightManager) 먼저 싱글턴을 구성하고 나서 오브젝트를 생성하겠다 했는데 실수인게 코드를 구성하다 보니 싱글턴을 사용하지 않고 만들 수 있는데 굳이 만든 실수를 하게 되었다.





FightManager - Player에서 맞춘 collider를 반환해서 FightManager의 딕셔너리에서 찾아서 해당 부위가 맞았다고 알려줄 것이다.
DamageBox) ScriptableObject

EnemyBody) 부위별 콜라이더

BaseState)

StateMachine)


EnemyState)

EnemyState를 상속받은 StatePattern 몇가지)



EnemySample) Enemy에 직접 컴퍼넌트를 추가할 클래스




랜덤값을 통해 해당 애니메이션을 사용하도록 rand값을 넣어주었다(rand값을 통해 StateMachine에서 딕셔너리에 접근)


FollowTarget의 경우 시작시간을 넣고 해당 Coroutine에서 bool값을 조절해서 갈수 있는지 없는지를 조절해주었다(이부분은 StatePattern과 같이 맞춰야했지만 다른 부분에 시간을 더 써야하므로 enemy에 바로 구현했다)

GetDamageBox의 경우에 맞은 부위의 콜라이더에 해당하는 오브젝트를 EnemyBody형식(ScriptableObject를 참조해서 값을 가져옴)으로 사용해서 TakeDamage에 값을 넘긴다.

EnemyAttack의 경우 OverlapSphere를 사용을 자주 하는데 XR Interaction Toolkit에서 사용하는 XROrigin의 경우 CharacterController를 사용하므로 Physics를 사용하지 못한다 그래서 targetPlayer를 가져와서 해당 오브젝트와 연결시키고 target을 지정해주었다.
Player)

별 특이한 부분은 없으므로 넘어가겠다
PlayerController) XRDirectInteractor를 상속받아 Hover와 버튼을 누를 시 Defend를 구현중

XRBaseControllerInteractor의 OnHoverEntered를 통해 오브젝트가 접촉이 일어날 때 target을 설정하고 그로 인해 Attack함수의 target을 지정하도록 설정하였다.


아직 미완성 Defend부분



해당부분에서 target이 있었을경우 HoverEvent를 통해 호출하여 Attack을 실행한다

아직 UI와 Defence부분이 남아있어서 더 구현해야할게 많지만 전반적인 움직임과 공격은 구현하였다