控制器 (Controllers)

如上所述,控制器的责任是确定如何移动角色,例如:根据用户输入(user input)、AI、动画(animation) 等去移动,并将该信息传递给CharacterMovement 组件, CharacterMovement 组件将作出响应来执行移动。


ECM提供3种不同的基础控制器(可扩展): BaseCharacterController:一种通用角色控制器 BaseAgentController: 基于 NavMeshAgent 类 的角色控制器 BaseFirstPersonController: 一个典型的第一人称 的角色控制器


建议使用ECM的方法是:扩展ECM提供的基本控制器 (请参阅包含的示例),创建一个从基本控制器派生出来的自定义角色控制器 (例如:CharacterMovement),并添加自定义代码以匹配您的游戏需求。因为,始终不会有人比你更了解你的游戏。


值得注意的是,建议使用ECM提供的基础控制器(但不是强制性的),它非常完美(如果你希望的话),选择您自己喜欢的ECM基础控制器并附上 GroundDetection GroundDetection 组件,让您的角色进行移动。


(备注:NavMeshAgent是Unity自带的寻路功能)


Base Character Controller 组件

通用的角色控制器(也可以作为其他东西的控制器)。

它处理键盘输入(keyboard input),并允许跳跃(可变高度),然而,这个默认行为可以很容易地修改或完全替代,只需要覆盖派生类中的相关方法。


这是一个强大的类,其中包括角色运动(character locomotion)、可变高度跳跃(variable height jump)、无限制的空中跳跃(unlimited mid-air jumps)、支持根运动(root motion support)等等,并且为您提供一个强大的基础来开发自定义控制器。

img/011.png

变量名 变量名的中文翻译 说明
Speed 速度 最大移动速度 (单位m/s)
Angular Speed 旋转速度 最大旋转速度 (单位deg/s)
Acceleration 加速度 角色加速的速度(速度的变化率)
Deceleration 减速度 角色减速的速度
Ground Friction 地面摩擦 影响移动控制的设置。 数值越高,方向变化越快。
如果 useBrakingFriction 的值是false,
这也会影响制动时更快停下的能力。
Use Braking Friction 是否使用制动摩擦 是否使用制动摩擦( brakingFriction )来减缓角色的速度?
如果false,将使用 groundFriction 。
(备注:"制动"就是"刹车")
Braking Friction 制动摩擦 制动时的摩擦系数(没有输入加速度时)。
仅在useBrakingFriction为true时使用,否则将使用groundFriction。
Air Friction 空气摩擦 "未接地"时,应用的摩擦系数。
这与groundFriction类似。
Air Control 空气控制 未接地时,角色可以使用的横向移动控制量。
0 ==没有控制,1 ==完全控制。
默认值为0.2。
Base Jump Height 基础跳跃高度 初始跳跃高度(以米为单位)
Extra Jump Time 额外的跳跃时间 额外的跳跃时间 (例如,一直按住跳跃按钮),以秒为单位。
Extra Jump Power 额外的跳跃力量 按住跳跃按钮时的加速度,单位为米/秒^2
Jump Tolerance Time 跳跃容忍时间 在接触到地面之前多久,可以再次按下跳跃,并仍然执行跳跃。
建议值为0.05f到0.5f之间。(跳跃的冷却时间)
Max Mid-Air Jumps 最大空中跳跃 最大空中跳跃的值。 0 为禁用半空跳跃。
Use Root Motion 使用根运动 是否使用根运动?
如果为true,则动画速度将覆盖移动速度。
这需要将RootMotionController 附加到Animator所在的游戏对象上。


Base Agent Controller 组件

基于 NavMeshAgent 类的角色控制器。它继承自BaseCharacterController,并将其扩展为受NavMeshAgent控制,并可以根据鼠标点击(单击移动)智能地移动。

像基础角色控制器(BaseCharacterController)一样,这种默认行为可以很容易地修改或完全替换为派生类。

**备注**: NavMeshAgent类是Unity自带的寻路功能

img/012.png

变量名 变量名的中文翻译 说明
Auto Braking 自动制动 代理人(Agent)是否应该自动刹车以避免超出目的地点?
如果此属性设置为true,那么此代理会在靠近目的地时自动刹车。
(备注:制动就是刹车的意思)
Braking Distance 制动距离 距离目标位置多远时,开始制动。
例如:减速区域。
Stopping Distance 停止距离 在距离目标位置多远时,立刻停止。
Ground Mask 地面层 哪个 层(Layer)被认为是地面(行走区域)。 由地面点击检测使用。


Base First Person Controller 组件

基础的第一人称控制器。 它继承自BaseCharacterController,并扩展它以执行经典的FPS移 动。 和base character controller一样,这种默认行为可以很容易地修改或完全替换为派生类。

img/013.png

变量名 变量名的中文翻译 说明
Forward Speed 前进速度 向前移动时的速度。
Backward Speed 后退速度 向后移动时的速度。
Strafe Speed 横向速度 横向移动时的速度。
Run Speed Multiplier 跑步速度乘数: 跑步时的速度是行走时的多少倍。

results matching ""

    No results matching ""