我在Unity中创建了一个简单的射手,我想改变我的Player(FPSController)的位置。我只能在Prefab中改变位置,但这对我来说没用。如果我调用像“InstantiatePlayer()”这样的函数来尝试改变位置,则玩家将在0.1秒后被传送回旧位置。
public void InstantiatePlayer()
{
GameObject temp = Instantiate(PlayingplayerPref);
temp.transform.position = new Vector3(31, 6, 7);
}
vgro的解决方案没问题,但是你应该使用Quaternion.identity,而不是创建一个新的Quaternion,这里不会有很大的不同,但这是一个很好的做法
您可以在实例化时指定位置。
Instantiate(Object PlayingplayerPref, Vector3 position, Quaternion rotation);
如果您不想指定旋转,只需将四元数设置为(0,0,0,0),这样您就可以了
Instantiate(PlayingplayerPref, position, new Quaternion(0,0,0,0);
希望这可以帮助 :)