我是靠谱客的博主 自然蛋挞,最近开发中收集的这篇文章主要介绍unity_射线检测(Raycast),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

检测一个物体

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)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部