C# 使用vector3.MoveToward移动对象

C# 使用vector3.MoveToward移动对象,c#,android,unity3d,device,gameobject,C#,Android,Unity3d,Device,Gameobject,我正在与Unity一起开发一款游戏应用程序。我在移动游戏对象时遇到了一个问题 在我的游戏中,当玩家用他的设备向上滑动时,游戏对象从a点移动到B点,当他向下滑动时,它从B点移动到a点 我用游戏逻辑写了一个C#脚本,但在这方面我有一个问题 问题是游戏对象会立即从A移动到B 以下是我用来移动游戏对象的代码行: transform.localPosition = Vector3.MoveTowards (PositionA,PositionB,Time.deltaTime * speed); 速度是一

我正在与Unity一起开发一款游戏应用程序。我在移动游戏对象时遇到了一个问题

在我的游戏中,当玩家用他的设备向上滑动时,游戏对象从a点移动到B点,当他向下滑动时,它从B点移动到a点

我用游戏逻辑写了一个C#脚本,但在这方面我有一个问题

问题是游戏对象会立即从A移动到B

以下是我用来移动游戏对象的代码行:

transform.localPosition = Vector3.MoveTowards (PositionA,PositionB,Time.deltaTime * speed);
速度
是一个值为10.0f的浮点值

我希望我的游戏对象慢慢移动到A点到B点。尽管速度值发生了变化,但没有任何变化,它仍然在瞬间移动


我怎样才能解决这个问题?(我尝试了
Vector3.Lerp
,我得到了相同的结果)。

Vector3.MoveTowards
采用当前位置、目标位置和步骤,但这里的第一个参数似乎是移动的原点,而不是当前位置。通常情况下,您会在
Update()
中这样做:

transform.localPosition=Vector3.moveToward(transform.localPosition,PositionB,Time.deltaTime*速度)


将当前位置作为第一个参数。

以下是如何使用
移动到

void Update()
{
    float step = speed * Time.deltaTime;
    transform.position = Vector3.MoveTowards(transform.position, PositionB, step);
}

当我写下你的线路时,它首先平稳移动,然后立即移动到位置B(距离的50%)。而且,当我向下滑动时,它不想回到A点。@Ophélia Hm?我没有安装Unity,所以现在无法测试,但它应该可以工作。您是否在其他地方或其他地方更改变换位置?要想朝着一个目标前进,你必须改变它朝着什么目标前进。