浅谈Unity之扇形范围检测目标-01

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 扇形范围检测目标

前言:每日记录自己学习unity的心得和体会,小弟才疏学浅,如有错误的地方,欢迎大佬们指正,感谢~


第一种

代码方法

传入目标点测试即可

private float ScopeDistance = 2f;//扇形距离

   private float ScopeJiaodu = 120;//扇形的角度

   //传入目标点位置 判断在不在扇形范围内  

   private void ScopeIsAnimal(Vector3 vector)

   {        

       float distance = Vector3.Distance(transform.position, vector);//距离

       Vector3 norVec = transform.rotation * Vector3.forward * 5;//此处*5只是为了画线更清楚,可以不要

       Vector3 temVec = vector - transform.position;

       Debug.DrawLine(transform.position, norVec, Color.red);//画出技能释放者面对的方向向量

       float jiajiao = Mathf.Acos(Vector3.Dot(norVec.normalized, temVec.normalized)) * Mathf.Rad2Deg;//计算两个向量间的夹角

       if (distance < ScopeDistance)

       {

           if (jiajiao <= ScopeJiaodu * 0.5f)

           {

               Debug.Log("在扇形范围内");

           }

       }

   }

里面逻辑自己添加就好

相关文章
|
图形学
Unity射线检测的避坑指南
Unity射线检测的避坑指南
|
3月前
|
图形学 C#
超实用!深度解析Unity引擎,手把手教你从零开始构建精美的2D平面冒险游戏,涵盖资源导入、角色控制与动画、碰撞检测等核心技巧,打造沉浸式游戏体验完全指南
【8月更文挑战第31天】本文是 Unity 2D 游戏开发的全面指南,手把手教你从零开始构建精美的平面冒险游戏。首先,通过 Unity Hub 创建 2D 项目并导入游戏资源。接着,编写 `PlayerController` 脚本来实现角色移动,并添加动画以增强视觉效果。最后,通过 Collider 2D 组件实现碰撞检测等游戏机制。每一步均展示 Unity 在 2D 游戏开发中的强大功能。
159 6
|
3月前
|
图形学
小功能⭐️Unity解决物体移动速度过快不能检测到碰撞
小功能⭐️Unity解决物体移动速度过快不能检测到碰撞
|
11月前
|
图形学
Unity小游戏——武士和怪物的碰撞检测
Unity小游戏——武士和怪物的碰撞检测
|
图形学
Unity射线检测3d,2D,正交透视。
使用射线功能制作点击物体获取物体名字。可以做简单点击相应。 3D射线检测,Camera 在正交模式与透视模式皆可使用 void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.
1930 0
|
数据可视化 vr&ar C#
Unity学习3,如何显示与隐藏平面检测
首先搭建好基本环境,在AR Session Origin下添加一个AR Plane Manager对象,并添加一个预制体AR Default Plane到AR Plane Manager对象的Plane Prefab属性下(这一部分在Unity配置Android开发环境下有介绍不再记录)Unity配置Android开发环境与第一个Demo
293 0
Unity学习3,如何显示与隐藏平面检测
|
图形学
Unity 3D中的射线与碰撞检测
创建一条射线Ray需要指明射线的起点(origin)和射线的方向(direction)。这两个参数也是Ray的成员变量。注意,射线的方向在设置时如果未单位化,Unity 3D会自动进行单位归一化处理。
4434 0
|
图形学 Go
Unity 之 plane.Raycast 射线检测
原来一直用Physics.Raycast或者对应的2D射线检测,今天无意中发一个有趣射线检测,话不多说直接上示例 void Update() LateUpdate() 示例代码 using UnityEngine; publ...
2075 0
unity3dUGUI空对象实现射线检测
using UnityEngine; using System.Collections; namespace UnityEngine.UI { public class Empty4Raycast : MaskableGraphic ...
2448 0