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

https://www.bilibili.com/video/BV1pJ411T7vR?p=2

Part1:制作二段跳

先定义一个变量GroundCheck

public Transform CeilingCheck,GroundCheck;//接在上次头顶碰撞后,简洁美观~

给player新建一个空物体子物体如下

新建一个isGround的布尔值,判断是否站在地面上 

public bool isGround;//布尔值默认初始为False

监测是否在地面

void FixedUpdate()
{
    isGround = Physics2D.OverlapCircle(GroundCheck.position, 0.2f, Ground);
    //监测地面监测点GroundCheck圆心范围0.2f内是否碰撞Ground这个LayerMask
}        

定义一个新变量extraJump

    private int extraJump;

把之前的jump注释掉,重新写一个newjump

void newJump()
{
    if (isGround)
    {
        extraJump = 1;
    }
    if(Input.GetKeyDown(KeyCode.U) && extraJump > 0)
    {
        rb.velocity = Vector2.up * jumpforce;//这里相当于 =new Vector2(0,1)*jumpforce
        extraJump--;
        anim.SetBool("jumping", true);
    }
}

最后在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,但是我无法实现 //黑人问号脸

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值