所以我有一个移动的游戏对象,我想把它的速度方向可视化为一个箭头(矢量),我找不到一个函数,使我能够在场景中显示矢量!Vector 3方向;我一直在找方法在场景中显示这个矢量。
juzqafwq1#
假设你正在寻找一个简单的Gizmo来可视化速度矢量。在这种情况下,你可以使用OnDrawGizmos()来绘制它,然后在游戏视图中使用位于窗口最右边的Gizmo切换来启用Gizmo:
OnDrawGizmos()
对于代码本身,您可以使用Handles.ArrowHandleCap来可视化Rigidbody的速度,如下所示:
Handles.ArrowHandleCap
Rigidbody
[RequireComponent(typeof(Rigidbody))] public class VelocityVisualizer : MonoBehaviour { // The length of the arrow, in meters [SerializeField] [Range(0.5F, 2)] private float arrowLength = 1.0F; private Rigidbody _rigidbody; private void Start() { _rigidbody = GetComponent<Rigidbody>(); } private void OnDrawGizmos() { if (!Application.isPlaying) return; var position = transform.position; var velocity = _rigidbody.velocity; if (velocity.magnitude < 0.1f) return; Handles.color = Color.red; Handles.ArrowHandleCap(0, position, Quaternion.LookRotation(velocity), arrowLength, EventType.Repaint); } }
将此脚本附加为具有Rigidbody的游戏对象的组件,它将使用箭头显示其速度方向
1条答案
按热度按时间juzqafwq1#
假设你正在寻找一个简单的Gizmo来可视化速度矢量。在这种情况下,你可以使用
OnDrawGizmos()
来绘制它,然后在游戏视图中使用位于窗口最右边的Gizmo切换来启用Gizmo:对于代码本身,您可以使用
Handles.ArrowHandleCap
来可视化Rigidbody
的速度,如下所示:将此脚本附加为具有
Rigidbody
的游戏对象的组件,它将使用箭头显示其速度方向