인터페이스를 가지고 있는지 확인하고 특정 메소드를 호출하기.
1
2
3
4
5
6
|
if (Physics.Raycast(ray, out RaycastHit hit, Mathf.Infinity, layerMask))
{
// 인터페이스를 호출
IDamagable IDamagable = (IDamagable)hit.collider.GetComponent(typeof(IDamagable));
IDamagable.Damaged();
}
|
추가적으로 인터페이스를 클래스 내부에서 인터페이스를 구현 할 때
인터페이스를 암묵적으로 구현할 경우 public 클래스 멤버로 외부 호출이 가능.
public bool DeathBoom { get; set; }
명시적으로 구현 할경우 private 클래스 멤버가 되어 먼저 인터페이스의 레퍼런스를 얻어야 호출 가능하다.
bool IDamagable.DeathBoom { get; set; }
'🌍 Unity > 유니티 엔진 동작 관련' 카테고리의 다른 글
유니티 제네릭 클래스의 AddComponent 널 오류 ( Unity Genetic class AddComponenet Null ) (1) | 2019.12.21 |
---|---|
유니티 버튼 이벤트 할당 Unity Button AddListener injection (0) | 2019.12.11 |
Unity 씬 로딩 될때마다 호출되는 함수 (OnSceneLoaded ) (0) | 2019.10.15 |
유니티 StopCoroutine이 동작하지 않을 때 Unity Stop Coroutine doesn't work (0) | 2019.05.01 |
유니티 커스텀 프로퍼티 드로워 (Unity Custom property drawer) (0) | 2019.01.06 |