角色控制器是unity中专门拿来控制角色的组件(主要是运动相关),区别于直接用Transform或则RigidBody,CharacterController有着更好的疗效,它拥有RigidBody的一些重要特点,但是又除去了好多化学疗效,这样可以避免例如穿模,滑步,被撞飞或则将其他物体撞位移等情况。
其主要属性如下:
#a:4:d:d:c:0:6:0:9:9:2:a:a:2:9:1:d:d:a:6:7:4:1:d:9:5:d:c:5:c:9:6#
斜度限制代表的是角色可以走上的斜坡角度
每步偏移量虽然就是能走上的台阶的高度,这也许是很有用的一个属性,走上一些高度不是很高的台阶或则石头之类的东西不再须要跳跃,这也更符合实际的联通情况。但是这个值有一个限制即该值必须大于等于(高度+半径*2)(上分图片中的最下方两个值),这个设定虽然挺好理解,毕竟你一个一米七的人不可能一步跨上一米多的台阶吧。
蒙皮厚度通常不用管,它就是在你的碰撞器外再加一层,用于适应衣物等,是一个很小的值。
最小联通距离顾名思义就是每一步联通的最小量,这个值不宜过大,否则可能会出现“罚站”的情况
中心虽然碰撞器的中心,半径和高度也是指的碰撞器的参数。CharacterController是自带碰撞器的不需要再去添加,其默认的碰撞器是胶囊形。
CharacterController为我们提供了两种联通方式:Move 和SimpleMove,两者都须要一个Vector3类型的参数
其中Move不会遭到重力疗效,需要重力可以把参数中的Y设为重力(比如-9.8),返回碰撞的信息
SimpleMove会遭到重力疗效,参数中的Y可以不写,会有默认值,返回一个Bool值,是否在地面上
下面做一个简单的演示:
#e:4:d:1:3:e:e:3:3:b:7:4:a:2:6:a:2:f:5:6:4:4:7:c:e:0:d:6:3:0:6:8#
先简单创建一个场景,做一个斜面和一个台阶,创建一个软膏作为角色,然后把主摄像机绑定到乳膏上模拟第一人称游戏的场景。
#a:7:7:9:9:b:d:2:0:5:8:6:b:9:d:9:4:5:f:8:7:8:a:f:8:d:9:2:e:f:0:6#
Horizontal和Vertical代表纵向和横向输入即WASD或则上下左右键(这里的乘号只是我的场景上面的方向的问题)
#3:a:e:6:6:3:0:c:7:2:5:f:f:b:9:c:4:f:3:6:4:1:c:3:9:1:5:e:6:7:6:b#
#4:1:f:f:0:8:9:7:2:c:3:e:5:1:7:4:e:8:4:b:e:8:5:5:9:9:b:3:a:f:5:6#