首页 > 解决方案 > Vector3.MoveTowards 没有做它的事

问题描述

当我使用 Vector3.MoveTowards 方法时,Plank 无法移动。我不完全确定为什么。有好心人来看看吗?

public class BrickMoveVErtical : MonoBehaviour 
{
    public Vector3 positionOne, positiontwo, nextposition;
    public Transform plankTranform;
    public Transform positionBTransform;
    public float speed;

    void Start () 
    {
        positionOne  = plankTranform.localPosition;
        positiontwo  = positionBTransform.localPosition;
        nextposition = positiontwo;
    }

    void Update () 
    {
        move();
    }
    private void move() 
    {
       plankTranform.localPosition = Vector3.MoveTowards(positionOne,nextposition,Time.deltaTime*speed);
       if(Vector3.Distance(plankTranform.localPosition,nextposition)<0.1)
           changeMovementPlank();
    }
    void changeMovementPlank() 
    {
        nextposition = nextposition != positionOne ? positionOne : positiontwo;
    }                        
}

标签: c#unity3d

解决方案


您应该使用当前位置作为current参数:

plankTranform.localPosition = Vector3.MoveTowards(plankTranform.localPosition, nextposition,Time.deltaTime*speed);
                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^

推荐阅读