我是 unity 和 C# 的新手,在脚本中我想在命中可被 2 整除时销毁距离内所有标记为
gameObjects
的 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)
中的第二个条件,但是当我尝试运行代码时没有任何反应。你能帮我弄清楚吗?非常感谢你。