c# - 在 Unity 中从 Quaternion 和 Vector3 获取新位置

标签 c# unity3d

我有一个 Vector3 和一个四元数,获取前面(或后面)一定距离的位置坐标的最佳方法是什么。

我想做的是:

Gizmos.color = Color.red;
var direction = transform.TransformDirection(Vector3.forward) * 1000;
Gizmos.DrawRay(transform.position, direction);

只是无法访问变换,但具有(四元数)旋转和坐标(Vector3)

最佳答案

如果您将世界旋转与 Vector3.forward 相乘,您将获得与使用相应的 transform.forward 相同的结果

public Vector3 GetPosition(Quaternion rotation, Vector3 position, float distance)
{
    Vector3 direction = rotation * Vector3.forward;
    return position + (direction  * distance);
}

您可以使用 Ray 但这太过分了

关于c# - 在 Unity 中从 Quaternion 和 Vector3 获取新位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43868806/

相关文章:

c# - 使用 EF DbSet 对数据进行排序

c# - DateTime 的人性化工具

c# - 与存储库模式一起使用时,ServiceStack 操作未显示在元数据中

c# - CodedUI 测试不等待控件存在

c# - 为什么调用 StackOverflowException?为什么不是 HeapOverSizedException?

unity3d - 更新后出现Unity错误

ios - 如何在iOS上修复Ironsource Unity SDK中的错误

c# - Unity GET/POST 包装器

c# - Unity3d如何检测android上的点击?

c# - 如何使用 unity 3d 获取谷歌访问 token ?