gpt4 book ai didi

c# - 顺利移动我的游戏对象的最佳方式?

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:52 26 4
gpt4 key购买 nike

当我尝试平稳移动游戏对象时遇到问题。

我通过 TCP 协议(protocol)每秒收到一个位置,我的游戏对象必须在该位置移动。所以我有我的开始位置,我的结束位置,我可以计算两个位置之间的距离,我知道我的游戏对象必须移动以恒定速度在1秒内到达我的终点。

我尝试了 3 种解决方案:LearpMoveTowardSmoothDamp,但它们都不起作用,我的游戏对象只是从 A 点传送每次都到B点。

这是我在代码中尝试的内容(字典中引用了我的游戏对象我的游戏对象是平面):

// Distance between my 2 points
float step = Vector3.Distance(planeId_Object_Dictionnary[newPlane.Flight].transform.position, new Vector3((float)newPlane.X, (float)newPlane.Afl / (3.2808f * 1852f), (float)newPlane.Y));
//Use of Lerp
//planeId_Object_Dictionnary[newPlane.Flight].transform.position = Vector3.Lerp(planeId_Object_Dictionnary[newPlane.Flight].transform.position, new Vector3((float)newPlane.X, (float)newPlane.Afl / (3.2808f * 1852f), (float)newPlane.Y), step);
//Use of MoveTowards
planeId_Object_Dictionnary[newPlane.Flight].transform.position = Vector3.MoveTowards(planeId_Object_Dictionnary[newPlane.Flight].transform.position, new Vector3((float)newPlane.X, (float)newPlane.Afl / (3.2808f * 1852f), (float)newPlane.Y), step);
//Use of SmoothDamp
//planeId_Object_Dictionnary[newPlane.Flight].transform.position = Vector3.SmoothDamp(planeId_Object_Dictionnary[newPlane.Flight].transform.position, new Vector3((float)newPlane.X, (float)newPlane.Afl / (3.2808f * 1852f), (float)newPlane.Y), ref newPlane.GroundSpeed, 1);

该代码是在我的更新中以这种方式调用的函数:

void Update () {
lock (threadLock)
{
// Message receive from my TCP Protocol
while (q_orders.Count > 0)
{
switch (q_orders.Dequeue())
{
case OrderType.trackmovedevent:
aircraftMajInfos(q_args.Dequeue()); // My function to move my Object
break;
}
}
}
}

最佳答案

最好使用补间引擎,例如http://dotween.demigiant.com/ .

如果你安装了 Dotween 那么你可以简单地使用

transform.DOMove(new vector3(1 ,0 , 1) , duration);

您还可以为补间设置缓动。或使用 Oncomplete 函数;

transform.DOMove(new vector3(1 ,0 , 1) , duration)
.SetEase(Ease.OutCubic)
.OnCompelete(() => { shouldClose = true; });

关于c# - 顺利移动我的游戏对象的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36618141/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com