>

트리거가있는 두 개의 boxcollider가 있으며 OnTriggerEnter 함수를 사용하면 첫 번째 또는 두 번째 트리거를 입력하더라도 동일한 작업을 수행합니다. 그리고 트리거가 특정 작업을 수행하고 다른 트리거가 다른 작업을 수행하려고합니다. 이 두 가지 트리거를 어떻게 구별 할 수 있습니까?


  • 답변 # 1

    그렇게하는 더 좋은 방법은

    객체의 2 개의 gameObject 객체를 만듭니다.

    각 어린이에게 한 개의 충돌기를 부착하십시오.

    각 충돌체에 대한 태그를 설정하십시오. 예를 들어 "왼쪽"및 "오른쪽"

    두 자녀에게 스크립트를 첨부하십시오.

    스크립트에서 먼저 태그를 확인하십시오. 예를 들어

    void OnTriggerEnter(Collider col){
        if (tag == "Left"){
            print("Collided with left");
        }
        else if (tag == "Right"){
            print("Collided with right");
        }
    }
    
    

    if-else 대신 스위치 케이스를 사용할 수 있습니다.

  • 답변 # 2

    더 까다 롭지 만 자식 개체를 사용하지 않고도 가능합니다.

    GameObject의 속성을다른 것 이외의 것으로 emcolliders를 차별화해야합니다. 즉, 충돌체 속성입니다.

    볼륨이 다른 두 개의 충돌체가있는 경우 위치 또는 크기 속성 중 하나가 서로 다릅니다. 이를 사용하여 트리거 된 충돌체를 파악할 수 있습니다.

    void OnTriggerEnter(Collider col){
       //arbitrary bounds determination, your setup may be different
       if (col.bounds.center.x < 0){
           Debug.Log("Collided with left");
       } else if (col.bounds.center.x > 0){
           Debug.Log("Collided with right");
       }
    }
    
    

  • 이전 unity - UnityUI에서 캔버스의 UI 요소에 액세스하는 방법
  • 다음 c++ - 이미지를 Box2D 물리 객체로 바꾸려면 어떻게합니까?