물리에 대한 움직임을 받지 않게 해준다.
인터페이스는 추상을 극대화한 것이다. 인터페이스는 상수, 추상 프로퍼티(public abstract string name => ), 추상 메소드만 가질 수 있다. 인터페이스를 사용하는 이유는 구현할 것이라는 가능성을 주기 위하거나, 다중 상속이 사용 가능하기 때문이다.
interface IDamageable { void Damage(float power); } class Player : Character, IDamageable { public void Damage(float power) { } }
인터페이스 구현 중 다중 상속이 가능한데 다중 상속받은 클래스에 같은 이름의 함수가 있을 때 클래스의 이름을 붙여 명시적 정의를 한다.
Any State가 호출되면 어떤 상태이든 간에 실행된다.
때리는 모션을 하였을 때 칼이 공격을 했다 나올 때 두 번 트리거가 일어날 수 있어 리스트를 이용하여 때리는 모션을 실행했을 때 트리거와 닿은 상대를 리스트에 담아 리스트에 담겨있을 때 공격이 안되도록 설정한다. 때리는 모션이 끝났을 때는 리스트를 초기화 시켜준다. 플레이어가 공격하여 상대의 HP를 줄일 때 -를 이용하여 빼주는 것이 아닌 health += (Damage * - 1.0f) 식으로 곱해줘야 좋다.
Any State에 이어주어 HP가 0 이하면 모션을 출력해 주고 정해진 시간 뒤에 삭제해 준다. 죽는 모션을 실행하면서 Collider을 꺼줘야 한다.