首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UnityScript中的比较标记

UnityScript中的比较标记
EN

Stack Overflow用户
提问于 2015-04-24 10:02:23
回答 1查看 365关注 0票数 3

我们正在构建一个3D游戏,现在我被困在一个问题上,我需要比较多个标签来激活或停用扳机,将玩家送回重生位置。

这是目前的代码:

代码语言:javascript
复制
#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" )
    {

    }
}

我不知道如何解决这个问题,以便做到以下几点:

如果玩家触碰扳机而没有一个球与之相撞,球员就会做出反应。这是为了创造一种感觉,粒子杀死你。当有一个球与它相撞时,如果玩家触碰扳机,那么球员就不会发生任何事情,所以玩家可以自由地通过。

我们想要做的是,我们想把球推到间歇泉上,这样它就能把它盖住,如果间歇泉没有被盖住,玩家试图通过它,球员就会呼吸。

我们也尝试了另一个代码,虽然它允许传球,但它不允许球员这样做。即使是在球被放好之后。

代码语言:javascript
复制
#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;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-25 14:41:58

所以,我相信你的问题是,当你使用这个函数时,你只是检查第一次碰撞。所以所发生的是你得到一个球员或球的价值,而不是两者兼而有之。你需要存储所有的碰撞,这样你就可以比较所有的碰撞。要做到这一点,您可以跟随这些文档的将军们。http://docs.unity3d.com/ScriptReference/Collision-contacts.html --这是在谈论碰撞,但同样的一般原则也应该适用。

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29844559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档