【Unity自学之路】9 - 物理材质& 空中跳跃

本文介绍了在Unity中遇到的物理材质导致的角色碰撞异常,以及超级跳问题的解决方案。通过创建并调整PhysicsMaterial2D来优化碰撞体的物理属性,以防止角色在空中无法跳跃。同时,解释了为何角色在接触墙壁时可以进行蹬墙跳,并提供了检查和解决圆形碰撞体与方形碰撞体交互问题的方法。
摘要由CSDN通过智能技术生成

如何取消多段跳

 

 

如何优化物理材质(撞墙不会判定为落地)

//一般也可能因为这种情况

 

 

 

 

 

 

这个脑袋顶上的碰撞体会卡在边缘上....

 

 

 

 

为碰撞体设置物理材质:

 

在Assest下右键创建Physics Material 2D

 

 

 

CREATE --> 2D --> PHYSICS MATERIAL

 

然后可以更改参数

 

 

 

更改为光滑表面更能解决问题

(别忘了link)

 

 

解决超级跳问题:

 

        //角色跳跃

        if (Input.GetButtonDown("Jump") && coll.IsTouchingLayers(Ground))

        {

            rb.velocity = new Vector2(rb.velocity.x, jumpforce * Time.deltaTime);

 

            anim.SetBool("jumping", true);

 

           

 

        }

    }

 

常见问题:

 

Q 加上&& coll.IsTouchingLayers(ground)之后,不能跳跃了,找不到问题出在哪里..

 

A 找到原因了,,圆形碰撞体被方形碰撞体包围了,然后方形碰撞体倒是先着陆了,圆形碰不到地面....所以脚本中的地面触碰一直是false,因为coll给的是圆形碰撞地面检测....哭了

 

 

实际上现在虽然在空中不能跳跃了,但是可以蹬墙跳,因为墙壁也算ground,接触墙壁 = 接触ground

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值