C#如何使目标在两三维坐标点之间直线移动到另一个点

问题简介:

  • 在.dll里实现
  • 让玩家(利用循环)从一个点到另外一个点,忽略障碍物
  • 只有两点的明确坐标

已知

  • 点1: Vector vt1 = new Vector(x,y,z);
  • 点2: Vector vt2 = new Vector(x,y,z);
  • 坐标均为float类型

Whilte(Player.GetPosition() != vt2 || (其他方法))

{

   player.Teleport(计算后坐标);
   //利用循环tp计算出来的所有点直到到达vt2

}

  • 不懂C#,直接两点构造直线,然后按照间隔移动即可。
  • 如果考虑障碍物,分两种情况:
  • - 优化问题,RRT之类的算法
  • - 简单处理,直接横纵向移动

题主用引擎吗?还是单纯C#?用引擎的话unity引擎既有自带的移动方法,也可使用dotween等进行移动,如果纯C#,那就计算两点之间的距离,也就是向量的模,然后进行N等分,player位置每次加n。