我们正在构建一个3D游戏,现在我被困在一个问题上,我需要比较多个标签来激活或停用扳机,将玩家送回重生位置。
这是目前的代码:
#pragma strict
var spawnPoint : GameObject;
function OnTriggerStay ( other : Collider )
{
if (other.tag == "Player" && other.tag != "Ball")
{
other.tag == "Player";
other.gameObject.transform.position = spawnPoint.transform.position;
}
else if ( other.tag == "Ball" && other.tag == "Player" )
{
}
}我不知道如何解决这个问题,以便做到以下几点:
如果玩家触碰扳机而没有一个球与之相撞,球员就会做出反应。这是为了创造一种感觉,粒子杀死你。当有一个球与它相撞时,如果玩家触碰扳机,那么球员就不会发生任何事情,所以玩家可以自由地通过。
我们想要做的是,我们想把球推到间歇泉上,这样它就能把它盖住,如果间歇泉没有被盖住,玩家试图通过它,球员就会呼吸。
我们也尝试了另一个代码,虽然它允许传球,但它不允许球员这样做。即使是在球被放好之后。
#pragma strict
var spawnPoint : GameObject;
function OnTriggerStay ( other : Collider )
{
if (other.tag == "Ball")
{
other.enabled = false;
}
else if (other.tag == "Player")
{
other.gameObject.transform.position = spawnPoint.transform.position;
}
}发布于 2016-05-25 14:41:58
所以,我相信你的问题是,当你使用这个函数时,你只是检查第一次碰撞。所以所发生的是你得到一个球员或球的价值,而不是两者兼而有之。你需要存储所有的碰撞,这样你就可以比较所有的碰撞。要做到这一点,您可以跟随这些文档的将军们。http://docs.unity3d.com/ScriptReference/Collision-contacts.html --这是在谈论碰撞,但同样的一般原则也应该适用。
希望这能有所帮助!
https://stackoverflow.com/questions/29844559
复制相似问题