我是靠谱客的博主 自然蛋挞,这篇文章主要介绍unity_射线检测(Raycast),现在分享给大家,希望可以做个参考。

检测一个物体

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using UnityEngine; public class Example_01 : MonoBehaviour { public float _maxDistance = 10; public LayerMask _layerMask; private void Update() { //1.射线 2.碰撞物体的信息 3.射线距离 4.指定的碰撞层 //5.询问触发器交互(isTrigger 为 True 时忽略触发器交互,默认时无论 true 或者 false 都可以检测到) if (Physics.Raycast(ray, out RaycastHit raycastHitInfo, _maxDistance, _layerMask, QueryTriggerInteraction.Ignore)) { Debug.Log(raycastHitInfo.collider.gameObject.name); Debug.DrawLine(transform.position, raycastHitInfo.point, Color.red); } else { //Debug.DrawLine(ray.origin, ray.direction * 100, Color.green); Debug.DrawRay(ray.origin, ray.direction * 100, Color.yellow); } } }

检测多个物体

复制代码
1
2
3
4
5
6
7
8
RaycastHit[] raycastHits; raycastHits = Physics.RaycastAll(ray, _maxDistance, _layerMask); Debug.DrawLine(transform.position, transform.forward * 100, Color.red); foreach (var hit in raycastHits) { hit.collider.gameObject.GetComponent<Renderer>().material.color = Color.black; }
复制代码
1
参考:

【中文专题】Raycast射线检测在3D世界中的介绍(含基本概念,武器检测,对...

最后

以上就是自然蛋挞最近收集整理的关于unity_射线检测(Raycast)的全部内容,更多相关unity_射线检测(Raycast)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(87)

评论列表共有 0 条评论

立即
投稿
返回
顶部