版本:Unity 6 (6000.0)
语言英语
  • C#

Debug.DrawRay

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

声明

public static void DrawRay(Vector3 start, Vector3 dir, Color color = Color.white, float duration = 0.0f, bool depthTest = true);

参数

start 射线在世界空间中开始的点。
dir 射线的方向和长度。
color 绘制线条的颜色。
duration 线条可见的时间长度(以秒为单位)。
depthTest 确定摄像机更近的物体是否会遮挡线条。

描述

在世界坐标系中从startstart + dir绘制一条线。

duration参数决定了线条在绘制帧之后可见的时间长度。如果 duration 为 0(默认值),则线条渲染 1 帧。

如果depthTest设置为 true,则场景中靠近摄像机的其他物体将遮挡线条。

线条将在编辑器的场景视图中绘制。如果游戏视图中启用了 Gizmo 绘制,则线条也会在那里绘制。

using UnityEngine;

public class Example : MonoBehaviour { // Frame update example: Draws a 10 meter long green line from the position for 1 frame. void Update() { Vector3 forward = transform.TransformDirection(Vector3.forward) * 10; Debug.DrawRay(transform.position, forward, Color.green); } }
using UnityEngine;

public class Example : MonoBehaviour { // Event callback example: Debug-draw all contact points and normals for 2 seconds. void OnCollisionEnter(Collision collision) { Debug.DrawRay(collision.contacts[0].point, collision.contacts[0].normal, Color.green, 2, false); } }