Unity Character Controller(角色控制器)

第三种控制角色移动的方式

        面板属性

                角色爬坡的坡度限制

                        Slope

                        Limit

                每步的距离

                        Step

                        Offset

                皮肤宽度

                        Skin

                        Width

                最小移动距离

                        Min

                        Move

                        Distance

        常用方法

                Move()

                        描述:没有刚体的移动(类似于Transform移动)

                SimpleMove()

                        描述:模拟有刚体的移动

拓展:移动碰撞检测(更多拓展碰撞检测​​​​​​​)

方法

简介

前提:需要先使用角色控制器中的Move方法获得Flags的值​​​​​​​

CollisionFlags flags= controller.Move(moveDirection * Time.deltaTime);

CollisionFlags.None 没发生碰撞"flags & CollisonFlags.CollidedNone"返回1;
CollisionFlags.CollidedBelow 底部发生了碰撞"flags & CollisionFlags.CollidedBelow"返回1;
CollisionFlags.CollidedSides 四周发生碰撞"flags & CollisionFlags.CollidedSides"返回1;
CollisionFlags.CollidedAbove 顶端发生了碰撞"flags & CollisionFlags.CollidedAbove"返回1;

//grounded = (CollisionFlags.CollidedSides & flags) != 0;  //  检测游戏物体四周是否发生碰撞,如发生碰撞,返回true执行下面if语句中的内容;

//grounded = (CollisionFlags.CollidedBelow & flags) != 0;  //  检测游戏物体四周是否发生碰撞,如发生碰撞,返回true执行下面if语句中的内容;

    if (grounded)
    {
        Debug.Log(当前发生碰撞)
    }

你可能感兴趣的:(Unity,3D,unity,游戏引擎,3d)