this.transform.position + new Vector3(0,y,0)更改游戏对象的z轴

时间:2017-05-09 03:39:06

标签: c# unity3d

我每1秒间隔后实例化一个特定的预制件。

float y = Random.Range(-0.5f, 1f);
GameObject newObject = Instantiate (this.prefabToSpawn, this.transform.position + new Vector3(0,y,0),Quaternion.identity);

每次我实例化时,我只想改变游戏对象沿y轴的位置,但是如果我添加上面的片段,新的游戏对象会沿着z轴远远落后(即使有一个随机的)虽然也改变了y轴,这似乎工作正常,它只需要保持其z位置),因此在场景中不再可见。我哪里错了?

1 个答案:

答案 0 :(得分:1)

您要将新的Vector3添加到this.transform.position。问题是this.transform.position会改变你的x,y和z轴。如果您不希望发生这种情况,则必须创建一个临时Vector3变量,您将存储结果transform.position + new Vector3(0, y, 0);,然后您只需修改Z轴并将其设置为{ {1}}或您希望它保留的值。

0