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의 포탄이 보이게한다. (두 배송은이 작업을 수행합니다.)
우주선을 때릴 때 경계가 촉발되는 것입니까? – CNuts
대상 선박에 경계선이 붙은 이유는 무엇입니까?당신이 캐논볼을 가라 앉히고 싶다면, 그들은 우주선 밖으로 나가면 바다에 가야합니다. 슈팅 배 경계는 분명히 다른 우주선의 캐논볼을 무시하고 그 반대의 경우도 마찬가지입니다. –
'태그가 아닌 경우'를 수행하는 대신 '태그가있는 경우'를 실행하고 원하는 코드를 if에 넣고 나머지는 무시하십시오. IE'if (other.tag == "theTagToDoCodeOn") {코드}'나처럼 사물이 당신의 '돌아 오는 경우'지나가고있다. –