繁体   English   中英

游戏对象在 transform.position 后不移动

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM