我有一个我试图移动的GameObject。对于GameObject,我创建了一个新类,这个类有一个函数UpdatePosition()。在这个函数中,我更新了GameObject的transform.position,如果我记录了对象的transform.position,控制台会写入新更新的位置。但是,在Unity中的游戏和场景视图中,对象不会移动。我通过Update函数调用每个tick的函数,这是有效的,因为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);
}
}
控制台中的输出是移动对象应该具有的位置,但在游戏/场景视图中没有。
答案 0 :(得分:0)
我是这样做的:
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 工作室。