怎么把物理材质改成标准材质

bug:在角色跳到斜坡边缘的时候会卡在斜坡边缘一直做滑翔动作。因为当你在空中的时候 角色会因为这段代码一直给一个向前的速度,这样会使角色和斜坡面之间有一个摩擦力。所以要解决这个问题就要修改摩擦力 修改预设材质:在根目录新建一个physic material(frictionOne)将动摩擦和静摩擦给为1 Dynamic Friction

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 
    }

这样就解决了当撞到斜坡边缘的时候会出现一直滑翔动作的问题了。

知秋君
上一篇 2024-08-23 22:48
下一篇 2024-08-23 22:12

相关推荐