1.I已经编写了使用ontriggerenter找到当大炮球击中另一艘轮船在2D游戏的脚本。正在使用WASD(ShipWASD)控制如何忽略对象之间的碰撞
private void OnTriggerEnter(Collider other)
{
if (other.tag != "cannonBallWASD")
{
return;
}
Destroy(other.gameObject);
Destroy(gameObject);
Debug.Log(other);
}
2.船舶触发在利用箭头键(ShipArrows)控制的第二船炮弹(cannonballWASD)。此代码位于附加到ShipArrows的脚本上。
3.我有一个单独的代码,它使用了一个没有网格渲染器(边界)的立方体,它可以销毁任何离开边界的炮弹,因此看起来像是掉入大海。这是一款2人游戏。
4.Here在位于problem-从而使边界与船舶四处移动它是ShipArrows的孩子。当我发射大炮时,炮弹击中边界而不是舰船对撞机。当我移除边界时,它会碰撞船只,但边界是我想要的。
5,边界和船舶都具有和需要的是触发对撞机上他们。有没有什么办法可以忽略这个脚本中的边界,但是不能在下面的脚本中忽略它。
private void OnTriggerExit(Collider other)
{
if(other.tag != "cannonBallWASD" && other.tag != "cannonBallArrows")
{
return;
}
Destroy(other.gameObject);
}
这个脚本让ShipArrows cannonBalls看起来像是在他们离开ShipArrows Boundary时摧毁它们而落在海中。 (两船都这样做。)
所以,当你打船它的边界的触发器被调用? – CNuts
为什么你将Boundary附加到目标船上?如果你想沉没炮弹,那么一旦他们超出了射击舰的界限,他们就应该出海。射击船边界显然忽略了其他船的炮弹,反之亦然 –
如果没有标签,做'如果一个标签',并把你想要的代码放在if中,而忽略其余部分。 IE'if(other.tag ==“theTagToDoCodeOn”){code}'好像对我来说事情正在滑过你的'if return' –