bug:在角色跳到斜坡边缘的时候会卡在斜坡边缘一直做滑翔动作。因为当你在空中的时候
角色会因为这段代码一直给一个向前的速度,这样会使角色和斜坡面之间有一个摩擦力。所以要解决这个问题就要修改摩擦力
修改预设材质:在根目录新建一个physic material(frictionOne)将动摩擦和静摩擦给为1
Dynamic Friction:动摩擦
Static Friction:最大静摩擦
Boundness:弹性
Friction Combine:当物体和其他接触的时候如何运算
Bounce Combine:当物体和其他物体碰撞的时候如何运算
将Edit下拉菜单的projec setting里面的physic的预设摩擦给为frictionone
在新建一个frictionZero将静摩擦和动摩擦都给为0 接触运算方式为相乘.
这样用程式码实现当我在空中的时候我的摩擦力用frictionZero当我在地上的时候用预设的frictionOne。
要在动画面板的ground上增加exit事件,用来判断是否离开地面,离开地面的时候修改摩擦力。
代码实现:
[Space(10)]
[Header("==== Friction Setting ====")]
public PhysicMaterial FrictionZero;//导入物理摩擦材质
public PhysicMaterial FrictionOne;
private Collider col;//
void Awake()
{
col = GetComponent<CapsuleCollider>();//获取到胶囊碰撞体
}
public void OnGroundEnter()
{
pi.inputEnabled = true;
lockPlanar = false;
canAttack = true;//当在地面的时候可以进行攻击
col.material= FrictionOne;//在ground状态下的时候用FrictionOne
}
public void OnGroundExit()
{
col.material = FrictionZero;//当离开ground状态的时候切换成FrictionZero
}
这样就解决了当撞到斜坡边缘的时候会出现一直滑翔动作的问题了。