对象未实例化,在 Update() 中比较位置时



我把这个脚本附加到主摄像机。我想在相机位于 y 轴上的特定位置时实例化一个对象。但对象不会实例化。这是脚本。

public GameObject obj;
private void Update()
{
    if (transform.position.y % 2 == 0) {
    Instantiate(obj, new Vector3(transform.position.x, transform.position.y), Quaternion.identity);
   }
}

这与模函数有关吗?谢谢!

它没有实例化,因为if (transform.position.y % 2 == 0) {不是trueif (transform.position.y % 2 == 0)没有评估为真的原因是transform.position.y是一个float。当您将该float除以 2 时,余数可能不是0

将该float舍入到最接近的int,然后再将其与0进行比较。这可以通过 Convert.ToInt32Math.Round .还有其他方法可以做到这一点。

if (Convert.ToInt32(transform.position.y) % 2 == 0)
{
    //Instantiate
}

最新更新