Unity 范围检测

这篇博客介绍了如何在Unity中通过Vector3.Distance和Vector3.Angle方法检测立方体正前方60度范围内的目标。作者提供了代码示例,当目标在立方体正前方30度内时,将目标颜色设为红色,否则设为白色。
摘要由CSDN通过智能技术生成

1.效果

请添加图片描述
我们检测的是,立方体正前方五米60度范围内,当进入这个范围我们让这个Cube变

2.分析

在这里我们重点只需要用到两个方法
Vector3.Distance(Vector3 a,Vector3 b);
这个不用多说是用来检测两点之间的距离的
Vector3.Angle(Vector3 from,Vector3 to);
这个方法是用来计算两点之间的角度的
不过这里需要注意的是这个方法计算出来的角度是0-180
图解
在这里插入图片描述
这里还是比较容易看出来的,当我们需要检测他某一个方向的角度的时候
例:我们要检测60度范围内,我们就只需要检测,左边30度和右边30度就好了。
这样下来就简单很多了。
3.代码
分析完毕直接上代码

if(Vector3.Distance(Cube1.transform.position,Cube2.transform.position)<5)
        {
            if(Vector3.Angle(Cube1.transform.forward,Cube2.transform.position-Cube1.transform.position)<30)
            {
                Cube2.GetComponent<Renderer>().material.color = Color.red;
            }
            else
            {
                Cube2.GetComponent<Renderer>().material.color = Color.white;
            }
        }
        else
        {
            Cube2.GetComponent<Renderer>().material.color = Color.white;
        }

核心就两行只有If判断里的那两句
在这里我们检测的是Cub1的正前方

讲解完毕,如果有什么疑问,可以在评论区提问,也可以私信我,我会及时答复的。谢谢大家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不敲注释的呆呆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值