Unity在使用if的时候不能满足条件但是条件已经满足了?

问题描述 投票:0回答:0

我是 unity 和 C# 的新手,在脚本中我想在命中可被 2 整除时销毁距离内的所有 greenone 选项卡式游戏对象。

这是我的

destroy()
update()

 var greenones =  GameObject.FindGameObjectsWithTag("greenone");

 foreach (var green in greenones)
 {
        var distance2 = Vector3.Distance(this.gameObject.transform.position, green.transform.position);
        
        if (distance2 <3f && (countvg == 0 || counthg == 0))
        {
            continue;
        }

        if (distance2 < 3f && (countvg % 2 == 0 || counthg % 2 == 0))
        {
            Destroy(this.gameObject);
            Debug.Log(countvg);
            Debug.Log("same color destroyed");
        }
}

而我在

OnCollisionEnter2D
方法中的代码是这样的:

else if (Vector2.Distance(c_points[i].point, uppos.transform.position) < .2f)
{
    if (collision.transform.CompareTag("redone") && (transform.CompareTag("redone")))
    {
        nb = true;
        Debug.Log("nb");
        countvr++;
    }
    else if (collision.transform.CompareTag("greenone") && (transform.CompareTag("greenone")))
    {
        nb = true;
        Debug.Log("nb");
        countvg++;
    }
    else if (collision.transform.CompareTag("blueone") && transform.CompareTag("blueone"))
    {
        nb = true;
        Debug.Log("nb");
        countvb++;
    }
}

我确定我已经满足了

foreach (var green in greenones)
中的第二个条件,但是当我尝试运行代码时没有任何反应。你能帮我弄清楚吗?非常感谢你。

c# unity3d
© www.soinside.com 2019 - 2024. All rights reserved.