유니티 스폰 시 OnTriggerEnter ( Unity spawn OnTriggerEnter ) 문제

 

#. 문제점은?

유니티의 OnTriggerEnter는 트리거 안에 다른 콜리더가 들어 올 경우에 작동하는 함수이다.

때문에 게임에서 투사체 등에 많이 사용된다.

 

그런데 문제는 이러한 투사체를 

스폰하는 순간에 오브젝트가 이미 트리거의 범위 안에 들어가 있다면 OnTriggerEnter가 발동하지 않는다는 문제점이 있다.

그러면서 트리거나 오브젝트를 껐다가 다시 켜는 경우에는 제대로 작동한다.

 

#. 해결책

스폰 첫 프레임에서는 트리거의 enable = false 를 해주고,

다음 프레임에서 다시 트리거의 enable = true 를 해주면 정상 작동한다!

protected override void Start()
{
    base.Start();
    StartCoroutine(ActiveCollider());
}

IEnumerator ActiveCollider()
{
    SphereCollider.enabled = false;
    yield return null;
    SphereCollider.enabled = true;
}

 

 

 

 

댓글

Designed by JB FACTORY