在transform.position之后,GameObject不会移动

时间:2018-03-09 11:13:33

标签: c# unity3d

我有一个我试图移动的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);
    }

}

控制台中的输出是移动对象应该具有的位置,但在游戏/场景视图中没有。

1 个答案:

答案 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 工作室。