2

ある角度での速度を見つけようとしています。

これを行うには、三角形を使用しようとしていますが、障害物に遭遇しています。

これは、オブジェクトを移動するコードです

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 エラーが発生し、動きが思いどおりに動作しません。

4

1 に答える 1