// OnTriggerEnter2D는 Collider2D Component를 가지고 있는 오브젝트가, IsTrigger 속성이 참일 때, Collider2D 범위에 다른 Collider가 Enter 했을 때 호출됩니다. // 인자로 주어지는 Collider2D collision을 통해 충돌한 오브젝트의 정보를 가져올 수 있습니다. // Tag를 통해 collision을 구별할 수 있습니다. // 아래의 코드는 Wall 이라는 Tag를 가진 Object와 충돌하면 총알을 삭제하는 코드입니다. 총알이 화면 밖으로 나가도 Scene안에 남아 있는 문제를 해결하기 위한 것입니다. private void OnTriggerEnter2D(Collider2D collision) { Transform target = MyFunc.GetParent(collision); MyFunc.Log("충돌하였습니다"); switch (target.tag) { case "Wall": Destroy(gameObject); break; case "Enemy": Enemy enemy = target.GetComponent <Enemy>(); if (enemy != null) { enemy.HP--; } Destroy(gameObject); break; } }
protected override void Dead() { MyFunc.Log("자코가 죽었습니다."); base.Dead(); }
// 이처럼 Get Set을 활용하면 최대값과 최소값을 정해서, 변수의 값이 이를 벗어나지 않게 할 수도 있습니다. // 플레이어 또한 체력이 0 이하가 되면 죽어야 합니다. // 이 함수에 게임 오버에 관련된 기능을 구현하면 되겠죠? void Dead() { MyFunc.Log("게임 오버!"); Destroy(gameObject); }