入门教程 Unity3D 用Debug.DrawRay快速调试射线检测

1
回复
168
查看
打印 上一主题 下一主题
[ 复制链接 ]
排名
48136
昨日变化

6

主题

6

帖子

29

积分

Rank: 1

UID
329175
好友
0
蛮牛币
78
威望
0
注册时间
2019-8-12
在线时间
13 小时
最后登录
2019-8-22

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 UnityAsk 于 2019-8-14 09:37 编辑

当我们利用 Physics.Raycast 做射线检测的时候,可以通过Debug.DrawRay函数直接在场景里显示射线出来,方便直观查看。




[C#] 纯文本查看 复制代码
public static void DrawRay(Vector3 start, Vector3 dir, Color color = Color.white, float duration = 0.0f, bool depthTest = true);


从start起始位置到start+dir,绘制一条color颜色的线,持续时间为duration。如果duration为0,那么这条线仅在一帧中出现。

[C#] 纯文本查看 复制代码
using UnityEngine;

public class Example : MonoBehaviour
{
    // 朝着整前方画一条10个单位长度的绿色射线.
    void Update()
    {
        Vector3 forward = transform.TransformDirection(Vector3.forward) * 10;
        Debug.DrawRay(transform.position, forward, Color.green);
    }
}
using UnityEngine;

public class Example : MonoBehaviour
{
    // 当物体碰撞发生时,从第一个碰撞点处,沿着该点的法线方向,画一条绿色的射线,显示2秒。
    void OnCollisionEnter(Collision collision)
    {
        Debug.DrawRay(collision.contacts[0].point, collision.contacts[0].normal, Color.green, 2, false);
    }
}



7日久生情
2139/5000
排名
4092
昨日变化

0

主题

1412

帖子

2139

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
254705
好友
1
蛮牛币
1939
威望
0
注册时间
2017-11-16
在线时间
365 小时
最后登录
2019-8-25
沙发
2019-8-15 08:13:29 只看该作者
66666666666666666666666
您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则