概述
检测一个物体
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);
}
}
}
检测多个物体
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;
}
参考:
【中文专题】Raycast射线检测在3D世界中的介绍(含基本概念,武器检测,对...
最后
以上就是自然蛋挞为你收集整理的unity_射线检测(Raycast)的全部内容,希望文章能够帮你解决unity_射线检测(Raycast)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复