找回密码
 立即注册
查看: 377|回复: 0

Unity教程2D入门:28 二段跳 & 单向平台

[复制链接]
发表于 2022-1-10 16:13 | 显示全部楼层 |阅读模式
https://www.bilibili.com/video/BV1pJ411T7vR?p=2
Part1:制作二段跳
先定义一个变量GroundCheck
  1. public Transform CeilingCheck,GroundCheck;//接在上次头顶碰撞后,简洁美观~
复制代码
给player新建一个空物体子物体如下


新建一个isGround的布尔值,判断是否站在地面上
  1. public bool isGround;//布尔值默认初始为False
复制代码
监测是否在地面
  1. void FixedUpdate()
  2. {
  3.     isGround = Physics2D.OverlapCircle(GroundCheck.position, 0.2f, Ground);
  4.     //监测地面监测点GroundCheck圆心范围0.2f内是否碰撞Ground这个LayerMask
  5. }        
复制代码
定义一个新变量extraJump
  1.     private int extraJump;
复制代码
把之前的jump注释掉,重新写一个newjump
  1. void newJump()
  2. {
  3.     if (isGround)
  4.     {
  5.         extraJump = 1;
  6.     }
  7.     if(Input.GetKeyDown(KeyCode.U) && extraJump > 0)
  8.     {
  9.         rb.velocity = Vector2.up * jumpforce;//这里相当于 =new Vector2(0,1)*jumpforce
  10.         extraJump--;
  11.         anim.SetBool("jumping", true);
  12.     }
  13. }
复制代码
最后在Inspector窗口下吧playercontrollerjumpforce改为12,因为没有乘以deltatime
Part2:单向平台
新建一个Tilemap,命名为OneWayPlatform


在Tile Palette绘制改单向平台


接着改这两个值


添加组件Tilemap collider 2Dplatform Effector 2D



并且在Tilemap 把Used By Effector勾上(使用碰撞特效)
勾上后就不是一个单纯的碰撞体,而是单向的碰撞体
接着如下设置,去掉use collider mask,use one way勾上


想要在平台上按下跳下平台勾选Use Collider Mask,但是我无法实现 //黑人问号脸

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2025-5-14 19:23 , Processed in 0.139798 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表