首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TriggerEnter不适用于unity 2D中的&&运算符

TriggerEnter不适用于unity 2D中的&&运算符
EN

Stack Overflow用户
提问于 2014-09-30 22:22:48
回答 2查看 535关注 0票数 0

我有爬虫2球精灵和一个洞精灵,当这两个球精灵进入洞时,它需要加载新的场景。

我正在尝试用AND运算符查找多个冲突,但它不起作用,如果我尝试一个条件,它工作良好,我不知道为什么。

代码语言:javascript
复制
void OnTriggerEnter2D(Collider2D col)
{
    if ((col.gameObject.tag == "ball2") && (col.gameObject.tag == "ball")) {
        Application.LoadLevel("Main");
    }

}
EN

回答 2

Stack Overflow用户

发布于 2014-09-30 22:38:34

从逻辑上讲,您提供的代码永远不会等于true,因为您正在将相同的字符串与两个不同的值进行比较。如果第一次测试返回false,则返回false。如果它在第一个测试中返回true,那么在第二个测试中总是返回false,因为第一个测试将其计算为"ball2“-因此它将返回false。

如果您希望在任何一方(而不是双方)为true时返回true,请使用或运算符(condition1 || condition2)

代码语言:javascript
复制
void OnTriggerEnter2D(Collider2D col)
{
    if ((col.gameObject.tag == "ball2")
        || (col.gameObject.tag == "ball"))
    {
        Application.LoadLevel("Main");
    }
}

另外,是的,我喜欢Visual Studio代码格式,特别是在条件块是多行的情况下

编辑:根据你的评论,你在等待两个物体进入碰撞。在这种情况下,您不能执行此操作并进行测试,因为您测试的是同一个对象,因为您只接收了一次col参数。因为每次碰撞都是作为单独的事件进行的,所以应该在每次发生时设置一个标志,然后在设置了两个标志后继续进行。

代码语言:javascript
复制
private bool ball = false;
private bool ball2 = false;
void OnTriggerEnter2D(Collider2D col)
{
    // Set each flag individually to allow for separate events triggering each
    if(col.gameObject.tag == "ball") ball = true;
    if(col.gameObject.tag == "ball2") ball2 = true;

    // Perform operation once both flags have been set
    if(ball && ball2) Application.LoadLevel("Main");
}
票数 1
EN

Stack Overflow用户

发布于 2014-09-30 23:39:11

添加两个不同的对撞机和两个不同的游戏对象,并添加两个不同的对撞机脚本。从其他脚本访问一个变量,如果这是真的,那么继续...

代码语言:javascript
复制
void OnTriggerEnter2D(Collider2D col) // Collider1 Script
{
  if ((col.gameObject.tag == "ball2"))
  {
      firstcollider = true;
  }
}


void OnTriggerEnter2D(Collider2D col) // Collider2 Script
{
 if (Collider1.firstcollider == true ) && (col.gameObject.tag == "ball"))
 {
     Application.LoadLevel("Main");
 }
}

如果你不知道,请参考谷歌访问一个脚本到另一个脚本的变量。我不知道这是最好的代码方式,但只是为了破解……

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

https://stackoverflow.com/questions/26123206

复制
相关文章

相似问题

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