유니티로 개발삽질중 ㅋㅋ


탱크에서 대포를 쏴야하는데 탱크도 물리 객체이고 (Box Collision) 탄환도 물리객체인경우 (Circle Collision) 어떻게 하면 두 객체사이의 충돌을 피할 수 있을까요?



첫번째로는 뭐 간단하게 생각하면 요런식의 코드를 삽입해도 될것 같구요.


// 탄환객체에서 탱크와 물리 충돌이 일어날 경우 무시하는 방법


public class Cannon : MonoBehaviour {


    private void OnCollisionEnter2D(Collision2D collision)

    {

        if(collision.gameObject.tag == "Tank")

return;

    }

           

}



두번째 방법은 레이어별로 충돌을 무시할 수 도 있어요.


public class Cannon : MonoBehaviour {


    private void FixedUpdate()

    {

        Physics2D.IgnoreLayerCollision(9, 10);

    }

           

}


여기서 9번, 10번은 뭐냐면 레이어 설정에서 레이어 번호랍니다. 저는 탱크는 Player, 포탄은 Weapon이라서 정해놨어요. 그래서 탱크(Player)는 9번 포탄(Weapon)은 10번 이렇게 된것이랍니다.



모두 아시지만, 코딩에는 정석이 없답니다. 
나름 각자의 상황에서 최선의 방법을 찾아서 코딩하면 된다고 생각하는 1인이었습니다.