比较UnityScript中的标签

时间:2015-04-24 10:02:24

标签: unity3d unityscript

我们正在构建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;
    }
}

1 个答案:

答案 0 :(得分:0)

所以,我相信你的问题是,当你使用那个功能时,你只是检查第一次碰撞。所以发生的事情是你获得球员或球的价值,而不是两者。您需要存储所有碰撞,以便比较所有碰撞。为此,您可以按照本文档的说明进行操作。 http://docs.unity3d.com/ScriptReference/Collision-contacts.html 它在讨论碰撞,但同样的一般原则应该适用。

希望这有帮助!