2017-04-13 2 views
0

1. 대몬 공이 2D 게임에서 다른 우주선을 때릴 때를 찾기 위해 ontriggerenter를 사용하는 스크립트를 작성했습니다. WASD (ShipWASD)를 사용하여 제어된다오브젝트 간의 충돌을 무시하는 방법

private void OnTriggerEnter(Collider other) 
{ 


    if (other.tag != "cannonBallWASD") 
    { 
     return; 
    } 

    Destroy(other.gameObject); 
    Destroy(gameObject); 
    Debug.Log(other); 
} 

2. 선박 방향키 (ShipArrows)를 사용하여 제어되는 2 배에 가로 질러 (cannonballWASD)을 발사. 이 코드는 ShipArrows에 첨부 된 스크립트에 있습니다.

3. 경계를 벗어난 캐논볼을 파괴하는 메쉬 렌더러 (The Boundary)가없는 큐브를 사용하는 별도의 코드가 있습니다. 따라서 바다에 떨어지는 것처럼 보입니다. 이것은 2-PLAYER GAME입니다.

4. 거짓말로 문제가 있음 - 경계선이 배와 함께 움직이면 우주선의 어린이가됩니다. 나는 대포를 발사 할 때 대포가 우주선 충돌 자 대신 경계를 때린다. 경계선을 제거하면 배가 부딪 히지 만 경계선은 원하는 지점입니다.

5. 경계선과 함선 모두에 트리거가 장착되어 있어야합니다. 이 스크립트의 경계를 무시할 수는 없지만 다음 스크립트에서 경계를 무시하지는 마십시오.

private void OnTriggerExit(Collider other) 
{ 
    if(other.tag != "cannonBallWASD" && other.tag != "cannonBallArrows") 
    { 
     return; 
    } 
    Destroy(other.gameObject); 
} 

이 스크립트는 그들이 ShipArrows 경계를 떠날 때를 파괴하여 바다에 떨어지고있다처럼 ShipArrows의 포탄이 보이게한다. (두 배송은이 작업을 수행합니다.)

+0

우주선을 때릴 때 경계가 촉발되는 것입니까? – CNuts

+0

대상 선박에 경계선이 붙은 이유는 무엇입니까?당신이 캐논볼을 가라 앉히고 싶다면, 그들은 우주선 밖으로 나가면 바다에 가야합니다. 슈팅 배 경계는 분명히 다른 우주선의 캐논볼을 무시하고 그 반대의 경우도 마찬가지입니다. –

+0

'태그가 아닌 경우'를 수행하는 대신 '태그가있는 경우'를 실행하고 원하는 코드를 if에 넣고 나머지는 무시하십시오. IE'if (other.tag == "theTagToDoCodeOn") {코드}'나처럼 사물이 당신의 '돌아 오는 경우'지나가고있다. –

답변

1

충돌을 무시하려면 Physics.IgnoreCollision을 사용하십시오.

Physics.IgnoreLayerCollision도 레이어의 충돌을 무시하는 데 사용됩니다.

무시하려는 모든 객체를 레이어에 놓은 다음 해당 레이어의 레이어를 무시하는 함수를 호출하기 만하면됩니다.

Physics.IgnoreCollision(yourFirstCollider, yourSecondCollider, true) 

또는

Physics.IgnoreLayerCollision(yourFirstLayer, yourOtherLayer, true); 

리셋/인식 콜리슨 2D :

는 콜리슨 3D 무시

Physics2D.IgnoreCollision(yourFirstCollider, yourSecondCollider, false); 

또는

,
Physics2D.IgnoreLayerCollision(yourFirstLayer, yourOtherLayer, false) 

두 층은-동일 할 필요가 없습니다. 다른 레이어의 오브젝트에 대한 충돌을 무시할 수 있습니다. >프로젝트 설정 - ->물리 - 이것은 또한 편집 각 게임 오브젝트 층을 할당하고 로 이동하여 코드없이 편집기를 통해 수행 할 수 있습니다> 또는 편집 ->프로젝트 설정 - >Physics 2D 그런 다음 어떤 레이어가 서로 충돌해야하는지 구성합니다.

관련 문제