找回密码
 注册帐号

扫一扫,访问微社区

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

1
回复
163
查看
[ 复制链接 ]
排名
48136
昨日变化

6

主题

6

帖子

29

积分

Rank: 1

UID
329175
好友
0
蛮牛币
78
威望
0
注册时间
2019-8-12
在线时间
13 小时
最后登录
2019-8-22
2019-8-13 23:13:39 显示全部楼层 阅读模式

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

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

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

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

2432769-e77f959c3f41891c.gif


[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);
    }
}


jianshu_unityask.jpg
回复

使用道具 举报

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

0

主题

1406

帖子

2132

积分

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

UID
254705
好友
1
蛮牛币
1933
威望
0
注册时间
2017-11-16
在线时间
364 小时
最后登录
2019-8-24
2019-8-15 08:13:29 显示全部楼层
66666666666666666666666
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则