ある角度での速度を見つけようとしています。
これを行うには、三角形を使用しようとしていますが、障害物に遭遇しています。
これは、オブジェクトを移動するコードです
Velocity = new Vector3((float)Math.Cos(MathC.AngleToPoint(EnemyObject.transform.position, PlayerPosition)),
(float)Math.Sin(MathC.AngleToPoint(EnemyObject.transform.position, PlayerPosition)), 0);
これがAngleToPointメソッドです
public static double AngleToPoint(Vector3 startingPoint, Vector3 endPoint)
{
double hypotenuse = LineLength(startingPoint, endPoint);
double adjacent = LineLength(startingPoint, new Vector3(endPoint.x, startingPoint.y, 0));
double opposite = LineLength(endPoint, new Vector3(endPoint.x, startingPoint.y, 0));
double angle = adjacent / hypotenuse;
return Math.Acos(DegreeToRadian(angle));
}
そして、これは LineLength メソッドです
public static float LineLength(Vector2 point1, Vector2 point2)
{
return Math.Abs((float)Math.Sqrt(Math.Pow((point2.x - point1.x), 2)+Math.Pow((point2.y - point1.y),2)));
}
多くの NaN エラーが発生し、動きが思いどおりに動作しません。