当前位置:   article > 正文

Unity在物体内部发射射线检测不到物体的解决方式_unity射线检测不到碰撞体

unity射线检测不到碰撞体

两种方式,建议采用代码,修改设置可能会在其他使用射线的地方鬼畜

使用代码…

        /// <summary>
        /// 射线碰撞检测,正向与反向检测
        /// </summary>
        private bool CheckCloud()
        {
            RaycastHit hit;
            Ray rayForward = new Ray(LinBroth.transform.position, LinBroth.transform.TransformDirection(Vector3.forward));

            if (Physics.Raycast(rayForward, out hit, 3000))
            {
                Debug.DrawRay(LinBroth.transform.position, LinBroth.transform.TransformDirection(Vector3.forward) * hit.distance, Color.yellow);
                Debug.Log("Did Hit+正向射线");
                return true;
            }

            //反向射线
            Ray rayback = Reverse(rayForward, 3000);
            if (Physics.Raycast(rayback, out hit, 3000))
            {
                Debug.DrawRay(LinBroth.transform.position, LinBroth.transform.TransformDirection(Vector3.forward) * hit.distance, Color.yellow);
                Debug.Log("Did Hit+反向射线");
                return true;
            }
            return false;
        }

        /// <summary>
        /// 反转射线
        /// </summary>
        public Ray Reverse(Ray ray, float distance)
        {
            return new Ray(
                ray.origin + ray.direction * distance,
                -ray.direction);
        }

  • 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
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

修改设置

在Unity2018.1.18上不大好用。
在这里插入图片描述

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/997473
推荐阅读
相关标签
  

闽ICP备14008679号