[英]GameObject does not move after transform.position
我有一个我尝试移动的游戏对象。 对于游戏对象,我创建了一个新类,这个类有一个函数 UpdatePosition()。 在这个函数中,我更新了 GameObject 的 transform.position,如果我记录了对象的 transform.position,控制台会写入新更新的位置。 但是,在 Unity 的游戏和场景视图中,对象不会移动。 我通过 Update 函数在每个刻度上调用该函数,这是因为 Debug.Log 每次刻度输出到控制台。 有谁知道这里出了什么问题?
public class ActiveObjects
{
[SerializeField]
public GameObject theMovingObject;
[SerializeField]
public Transform startPosition;
[SerializeField]
public Transform endPosition;
[NonSerialized]
private float speed = 10.0f;
[NonSerialized]
public float startTime;
[NonSerialized]
public float journeyLength;
// Sets new position of theMovingObject
public void UpdatePosition()
{
float step = speed * Time.deltaTime;
theMovingObject.transform.position = Vector3.MoveTowards(theMovingObject.transform.position, endPosition.position, step);
Debug.log(theMovingObject.transform.position);
}
}
控制台中的输出是 theMovingObject 应该具有但在游戏/场景视图中没有的位置。
我这样做了:
Vector3 newPosition = new Vector3();
newPosition.x = *;
newPosition.y = *;
newPosition.z = *;
transform.position = newPosition;
如果您想要十进制数字,请执行以下操作:
newPosition.x = 0.5f;
*任何数字
简单解释一下:
向量 2 = X, Y
向量 3 = X,Y,Z
明白了吗? 如果它不起作用,只需在此答案中发表评论。 你好,Tjovo 工作室。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.