计算拍摄角度

问题描述 投票:0回答:1

我的玩家以不同角度向地面扔 5 把刀。

        else if (throwType == "onGround")
        {
            float angle = 15f;
            for (int i = 0; i < 5; i++)
            {
                Instantiate(kunai, attackPoint.position, transform.rotation * Quaternion.Euler(0f, 180f, angle));
                angle += 10f;
            }
        }

我尝试了这个代码,但我希望所有刀片的每个刺入点之间的距离在水平地面上相等。这里是 我指的是三角形的例子。 我该使用什么方法或解决方案?

c# unity-game-engine geometry
1个回答
0
投票
  1. 沿地面或以任何其他图案均匀分布目标点。
  2. 计算每个点的方向,即
    point - attackPoint.Position
  3. 使用 Vector3.Angle(Vector3 from, Vector3 to) 计算每个方向与参考之间的角度,大概是
    Vector3.down

一般来说,我建议尽可能远离角度,而是使用 Quaternion.LookAt 等方法从方向向量创建旋转。我发现向量更容易推理和可视化,但您至少需要熟悉向量代数。

© www.soinside.com 2019 - 2024. All rights reserved.