黑魂复刻游戏的碰撞摩擦问题——Unity随手记(2021.4.27)

本博客聚焦于黑魂like游戏开发中的角色跳起卡墙问题。问题源于角色控制器代码在跳跃时锁定了m_planarVec,导致撞墙后角色因摩擦力无法下落。解决方案包括:1) 修改物理材质,降低摩擦力;2) 在动画状态中动态调整物理材质。本文详细介绍了这两个方法并提供了相关脚本示例。
摘要由CSDN通过智能技术生成

前言

本篇博客旨在解决黑魂like游戏开发时遇到的一个问题,当我们的角色跳起来撞墙时,会卡在半空中。
在这里插入图片描述
而且由于在空中时我们是没用办法操作的,所以基本上就卡死了。

今天实现的内容:

角色跳起来时的卡墙问题描述

这个问题的描述如前言所述,问题产生的原因主要是因为在我们的角色控制器代码会在跳起来时锁死m_planarVec,而这时m_planarVec是有大小的,所以在FixedUpdate中会一直给刚体的速度赋值(m_rb.velocity = new Vector3(m_planarVec.x, m_rb.velocity.y, m_planarVec.z) + m_thrustVec;),这本来是为了维持跳跃时的惯性效果,却导致角色撞在墙上时依旧会一直具有一个向前的速度,按照Unity的物理引擎算法,这会产生一个与墙面的摩擦力,所以导致角色掉不下来卡死在墙上。所以这是一个摩擦力的问题。要解决,我们可以更换墙面的物理材质,或者在检测到撞墙时改变m_planarVec从而改变速度。

修改物理材质方案

先创建一个新的物理材质。
在这里插入图片描述

关于Unity物理材质的几个参数,分别是动摩擦系数,(最大)静摩擦系数,弹性,描述该物理材质与物体产生摩擦时按照什么算法计算实际摩擦系数(两个物体的最大值、最小值、平均值、相乘的值)、以及描述该物理

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值