Unity Vector 与 Raycast
来源:互联网 发布:兖州区网络问政平台 编辑:程序博客网 时间:2024/04/27 16:25
Vector 常用的计算
本身到玩家的 Vector2,该 Vector2 含方向与距离的信息
Vector2 heading = transform.position - player.position;
距离
float distance = heading.magnitude;
方向
Vector2 direction = heading / distance; // 或 heading.normalized
Unity 常用投射的方式检查碰撞等,如:Linecast、Raycast
用 Raycast 举例,其他类似
投射一条射线,检查是否能直接投射到 Player
RaycastHit2D hit = Physics2D.Raycast(transform.position, player.position - transform.position);
注意:不能从碰撞体内部发射,否则投射的对象永远是自己
解决方式一,在子物体中新建一个 checkpoint ,在父物体的碰撞器外面
解决方式二,通过 layerMask 开启或关闭相应的 layer ,目的是排除掉自身
RaycastHit2D hit = Physics2D.Raycast(transform.position, player.position - transform.position, Mathf.Infinity, ~(1 << LayerMask.NameToLayer("Enemies")));
Mathf.Infinity:表示 distance 正无穷
~(1 << LayerMask.NameToLayer("Enemies")): 关闭 Enemies 层的检测
注意,需使用如 ~(1 << 5 | 1 << 8) 的方式进行关闭,不能写成 0 << 8
同时可以开启 Debug 画一条射线进行观察
Debug.DrawRay(transform.position, player.position - transform.position, Color.red);
注意,Debug 画的射线出现在游戏开发窗口,运行时需开启 Gizmos 才会显示
Vector2 head = player.position - transform.position;RaycastHit2D hit = Physics2D.Raycast(transform.position, head, Mathf.Infinity, ~(1 << LayerMask.NameToLayer("Enemies")));Debug.DrawRay(transform.position, playerToEnemy, Color.red);if (hit.collider != null) Debug.Log(hit.collider.name);
- Unity Vector 与 Raycast
- Unity-Physics.Raycast
- Unity Raycast 光线投射
- unity之Ray、RaycastHit 、Raycast
- Unity Physics.Raycast 之 layerMask
- Unity Physics.Raycast 深入理解
- unity中htc vive射线与UI碰撞检测-graphcs.Raycast()
- Unity Manual之Physics.Raycast射线投射
- Unity Physics.Raycast的参数layermask不起作用
- unity Physics.Raycast 函数 LayerMask用法测试
- Unity截屏,Raycast射线,绕某条边旋转
- Unity RayCast容易忽视的地方
- Unity--光线投射碰撞Physics.Raycast和Physics.RaycastAll
- Unity官方教程|使用Raycast显示射击轨迹
- Unity投影(Raycast)相关的一些事
- 关于raycast与screenpointoray的一些个人见解
- Unity 入门 vector 类
- Unity 人物如何跟随鼠标转向 ScreenPointToRay RaycastHit Raycast transform.LookAt
- __alloc_pages_slowpath
- Android -MediaPlayer使用
- POJ - 1068 Parencodings 模拟
- __alloc_pages_nodemask
- MySql常用字符串函数
- Unity Vector 与 Raycast
- npm package.json文件解读
- 第四十三讲项目3.2——将统计结果保存到数据文件
- linux入门——文件系统及常用命令行等
- leetcode -- 112. Path Sum 【注意逻辑】
- leecode 解题总结:73. Set Matrix Zeroes
- 树形依赖背包(codevs1155 金明的预算方案 2006年NOIP全国联赛提高组)
- Linux下使用Apache Ant自动构建项目
- ListView优化