2016-09-01 1 views
-1

나는 한 공공 Collider2D라는 headPos, 나는 OnTriggerEnter2D 여기전화는 두 번

void OnTriggerEnter2D(Collider2D headPos) 
{ 
//Run My Code 
{ 
입니다 처음 사용할 때 만든 화합 차원 플랫 포머를 코딩하고 두 번 OnTriggerEnter 함수를 호출 할 필요가있어 OnTriggerEnter

그리고 내가 사용하는 두 번째는 여기에 내가 다음과 같은 오류를 얻을

void OnTriggerEnter2D(Collider2D other) 
{ 
//Run More Code 
{ 

입니다

Type 'Player' already defines a member called 'OnTriggerEnter2D' with the same parameter types 

두 개의 별도 OnTriggerEnter2D를 확인하려면 어떻게합니까?

+0

당신은-같은 기능을 정의 할 수 없습니다 두번. 왜 이런 짓을하는? 그걸 두 번 부르면 어떨까요? – Programmer

+0

처음으로 완전히 다른 트리거가 필요하고 두 번째로 다른 트리거가 필요합니다. –

+0

그건 이해가 안돼 .... 당신은 트리거로 표시된 여러 개의 gameobjects를 감지하고 싶습니까? – Programmer

답변

1

다른 트리거를 말하면 트리거를 사용하여 다른 gameobjects를 감지하려고하는 것처럼 보입니다. 이것이 사실이라면 if 문을 사용하여 어떤 게임 객체가 트리거되었는지 확인할 수 있습니다.

당신은 tag 입자 가속기/트리거와 각 신체 부위 할 수있는 코드 아래와 같이로 감지 : 또한 이름을 비교할 수 있습니다

void OnTriggerEnter(Collider col) 
{ 
    if(col.CompareTag("head")){ 
     //Run My Code 
     Debug.Log("Head Triggered!"); 
    } 
    else if (col.CompareTag("hand")) 
    { 
     //Run My Code 
     Debug.Log("Hand Triggered!"); 
    } 
    else if (col.CompareTag("leg")) 
    { 
     //Run My Code 
     Debug.Log("Leg Triggered!"); 
    } 
} 

void OnTriggerEnter(Collider col) 
{ 

    if (col.name == "head") 
    { 
     //Run My Code 
     Debug.Log("Head Triggered!"); 
    } 
    else if (col.name == "hand") 
    { 
     //Run My Code 
     Debug.Log("Hand Triggered!"); 
    } 
    else if (col.name == "leg") 
    { 
     //Run My Code 
     Debug.Log("Leg Triggered!"); 
    } 
} 
0

사용 사례는 무엇입니까? 최적화와 관련하여 특히 동일한 기능을 두 번 사용해서는 안됩니다.

나는 당신이 달성하고 싶은 것이 같은 시간에 일어나는 두 개의 분리 된 충돌을 탐지하는 것이라고 생각합니다. 이 경우 OnTriggerEnter2D (Collider2D headPos) 함수는 매번 전달되는 서로 다른 충돌 객체로 두 번 호출됩니다.