unity-2D游戏地面检测 三射线检测
2D游戏中跳跃是不可或缺的功能,要实现跳跃功能,就必须进行地面检测!常规方法是使用一根往角色下方延伸的射线检测,但是这种方法在一些复杂不规则的地面效果通常不尽人意。通过增加射线数量,即可完善这种方法的不足,达到在复杂地面也能正确检测角色是否处于地面。
1、建立必要变量
bool isGrounded;
public Transform [] groundChecks = new Transform [3];
public LayerMask whatIsGround;
2、在角色对象下建立三个空的子物体,并分别把三个子物体拖动到角色的左下方、正下方、右下方与地面接触的地方。
3、把建立的三个子物体分别拖到建立的transform数组中,同时在LayerMask中勾选角色要碰撞的图层
4、编写地面检测函数
void CheckIsGroud () {bool checkResult;for(int i = 0; i < 3; i++) {checkResult = Physics2D.Linecast( transform.position, groundChecks [i].position, whatIsGround );isGrounded = checkResult;if (isGrounded)break;}}
5、添加绘制射线的函数,用于查看调试射线距离
private void OnDrawGizmos () {Gizmos.color = Color.red;for (int i = 0; i < 3; i++) { Gizmos.DrawLine( transform.position, groundChecks [i].position );}}
最后把CheckIsGroud ()函数放入Update即可,大功告成!
unity-2D游戏地面检测 三射线检测相关推荐
- 【Unity】Unity 2D游戏开发(三)2D游戏常用功能及插件
377节附近开始的2D游戏实例,基础的功能开发可以参考. 碰撞忽略 private void Start() {// 让第八层和第九层忽略碰撞,此段代码可以写在通用脚本内Physics2D.Ignor ...
- 幻境游戏里人物关于射线检测的问题(一)
1.在做一个平台跳格子的2d游戏里面,有关射线检测在人物跳起的时候会有一次报错,射线检测为空,其实就是我平台搭建的时候两个之间有一条缝隙,没有看见导致的. 2.在碰撞器的时候有时候人物会跳起两次,但是 ...
- Unity 2D游戏开发教程之为游戏场景添加多个地面
Unity 2D游戏开发教程之为游戏场景添加多个地面 为游戏场景添加多个地面 显然,只有一个地面的游戏场景太小了,根本不够精灵四处活动的.那么,本节就来介绍一种简单的方法,可以为游戏场景添加多个地面. ...
- Unity 2D游戏开发教程之游戏中精灵的跳跃状态
Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...
- Unity 2D游戏开发教程之精灵的死亡和重生
Unity 2D游戏开发教程之精灵的死亡和重生 精灵的死亡和重生 目前为止,游戏项目里的精灵只有Idle和Walking这两种状态.也就是说,无论精灵在游戏里做什么,它都不会进入其它的状态,如死亡.于 ...
- Unity 2D游戏开发教程之使用脚本实现游戏逻辑
Unity 2D游戏开发教程之使用脚本实现游戏逻辑 使用脚本实现游戏逻辑 通过上一节的操作,我们不仅创建了精灵的动画,还设置了动画的过渡条件,最终使得精灵得以按照我们的意愿,进入我们所指定的动画状态. ...
- 【Unity】Unity 2D游戏开发(一)U2D基础功能
文章目录 Unity 2D游戏开发基础知识 Animation动画 SortingLayer层排序 Physics 2D物理2D Rigidbody 2D刚体 示例 1.点击鼠标发出子弹 2.子弹打中 ...
- Unity 2D游戏开发教程之摄像头追踪功能
Unity 2D游戏开发教程之摄像头追踪功能 上一章,我们创建了一个简单的2D游戏.此游戏中的精灵有3个状态:idle.left和right.这看起来确实很酷!但是仅有的3个状态却限制了精灵的能力,以 ...
- Unity 2D游戏开发教程之2D游戏的运行效果
Unity 2D游戏开发教程之2D游戏的运行效果 2D游戏的运行效果 本章前前后后使用了很多节的篇幅,到底实现了怎样的一个游戏运行效果呢?或者说,游戏中的精灵会不会如我们所想的那样运行呢?关于这些疑 ...
最新文章
- Python3 Selenium自动化web测试 == 第三节 常用WebDriver API使用示例上(24个API)
- POJ3335(判断多边形内核是否存在)
- Spring Cloud--Honghu Cloud分布式微服务云系统—组件化
- blp模型 上读下写_Golang 并发模型系列:1. 轻松入门流水线模型
- .NET-记一次架构优化实战与方案-前端优化
- oracle批量生成索引,ORACLE迁移时批量导出索引、存储过程,表结构等
- 深度学习 3 循环神经网络 RNN Recurrent Neural Networks
- 韩顺平php视频笔记47 函数使用
- 高质量的工程代码为什么难写
- CentOS下搭建测试WEB平台
- Linux入门(2)_给初学者的建议
- 如何训练自己的编程思路
- HDU2010 水仙花数【进制】
- (day 16 - 双指针)剑指 Offer 35. 复杂链表的复制
- 阿里巴巴Java开发手册(黄山版)正式亮相,新增11条规约
- Java小程序--抓取emai
- html加载fbx模型,[Unity菜鸟] FBX模型动画提取
- 论文《Are We Really Making Much Progress? A Worrying Analysis of Recent Neural Recommendation ...》阅读
- JavaScript 数组对象切片
- 美国音乐学院计算机音乐专业排名2015年,2019USNEWS美国音乐专业排名前100!