This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
基础
专业(SIM)
UnigineEditor
界面概述
资源工作流程
Version Control
设置和首选项
项目开发
调整节点参数
Setting Up Materials
设置属性
照明
Sandworm
使用编辑器工具执行特定任务
如何擴展編輯器功能
嵌入式节点类型
Nodes
Objects
Effects
Decals
光源
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
使用范例
C++
C#
UnigineScript
统一的Unigine着色器语言 UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
材质和着色器
Rebuilding the Engine Tools
GUI
双精度坐标
应用程序接口(API)参考
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
创建内容
内容优化
材质
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials

CharacterController

C# Component Samples演示的CharacterController示例演示以下内容:

第一人称控制器组件#

FirstPersonController组件实现基本的第一人称播放器控件。播放器本身由相机胶囊形状组成,用于检测碰撞。该组件具有以下可调整的设置:

创建一个球员#

要创建播放器,需要创建一个新的Player DummyCreate -> Camera -> Dummy)并将其添加到场景中。

Parameters窗口中为此播放器启用Main Player选项。然后将FirstPersonController组件添加到该节点。

如果您保存世界并运行,则可以使用标准设置控制播放器。

玩家由一个胶囊代表,其枢轴位于胶囊的底部。创建播放器后,将根据播放器的Y轴方向校正转换。 Z轴始终指向上方。

如果从编辑器分配了摄像机,则摄像机的位置和方向取决于玩家在世界上的位置和旋转:水平角是玩家沿Z轴的旋转角,垂直角是实际摄像机的角角度。

带有轴心的可视化玩家胶囊

设定值#

FirstPersonController组件包含在将组件分配给节点之后在Parameters窗口的Node选项卡中显示的以下设置。

输入设定#

Input组允许设置键来使用键盘和鼠标控制字符:向前和向后,向左和向右,运行,跳转和蹲伏模式。要分配键,使用Input.KEY枚举。您还可以调整影响相机旋转速度的鼠标灵敏度。

同时处理来自键盘/鼠标和游戏手柄的输入。偏差较大的动作优先。

游戏手柄输入设置#

Gamepad Input组允许设置游戏手柄控件。当前设置得到简化:可以将一根摇杆设置为水平移动,而另一根摇杆设置为摄像机旋转。两个摇杆均设置了死区偏差,并且可以额外设置相机灵敏度。可以使用Input.GAMEPAD_BUTTON键设置其他任何操作。

同时处理来自键盘/鼠标和游戏手柄的输入。偏差较大的动作优先。

注意
应在应用程序启动之前连接游戏手柄。

身体设定#

Body组包含用于调整玩家的身体和胶囊定义的形状的设置。

Use Object Body 如果启用,则使用此组件分配给的对象的主体和形状。
注意
要启用此选项,对象应具有Dummy Body和至少一个Capsule形状。如果缺少主体或形状,则会根据以下参数中设置的值自动创建它们,并在控制台中显示相应的警告。
Capsule Radius 定义玩家形状的胶囊的半径。
Capsule Height 封套的高度,定义了玩家的形状。请记住,此值仅定义圆柱零件的高度。胶囊的整个高度计算为capsule height + 2 * capsule radius

Physics Intersection Mask 遮罩 用于选择性检测物理相交(与其他具有物体和碰撞体形状的物理对象,或与碰撞体几何形状相交的射线)。
Collison Mask 遮罩,用于检测形状与其他物理对象的碰撞。
Exclusion Mask 遮罩 ,用于防止形状与其他物理对象发生碰撞。

相机设定#

Camera组包含用于调整相机的设置。

Camera Mode 将相机分配给播放器的模式:
  • NONE-未创建相机。用户实现自己的相机,该组件仅用于运动逻辑。
  • CREATE_AUTOMATICALLY-相机在组件初始化时自动创建并设置为主相机。摄像机使用本节中为参数设置的值。
  • USE_EXTERNAL-通过编辑器分配的Player Dummy
FOV 摄像机的视场,以度为单位。
Near Clipping 到玩家观看的视锥的近剪切平面的距离,以单位为单位。
Far Clipping 到玩家观看的视锥的远剪切平面的距离,以单位为单位。
Camera Position Offset 从摄像机到播放器位置的距离。
Min Vertical Angle 摄像机的最小垂直角度,即可以仰视的最大角度。
Max Vertical Angle 摄像机的最大垂直角度,即向下看的最大可能角度。

动作设定#

Movement组包含角色移动所需的所有设置。

Use Jump 允许在播放器逻辑中启用跳跃和所有相关参数的标志。
Use Crouch 在播放器逻辑中启用蹲伏和所有相关参数的标志。
注意
如果播放器蹲下,并且释放了Crouch按钮,则只有在上面没有障碍物时它才会升起。如果玩家举手,并且上方有障碍物,或者再次按下Crouch按钮,则玩家将再次进入蹲伏状态。
Use Run 在播放器逻辑中启用运行和所有相关参数的标志。
Use Run Default 该标志将跑步设置为玩家移动的默认状态。如果启用此状态,则使用 Run Key 启用步行状态。
Crouch Speed 用于蹲伏的水平速度。
Walk Speed 用于步行的水平速度。
Run Speed 用于运行的水平速度。
Ground Acceleration 玩家在地面上时施加的水平加速度。
Air Acceleration 玩家在空中时施加的水平加速度。
Ground Damping 玩家在地面上时水平速度的衰减。
Air Damping 玩家在空中时水平速度的衰减。
Jump Power 在“跑步”,“步行”和“空闲”模式下玩家的跳跃力。
Crouch Jump Power Crouch模式下播放器的跳跃力。
Crouch Height 播放器蹲伏时相机的高度。 最小值等于 capsule  radius  x  2,最大高度等于 胶囊高度
Crouch Transition Time 蹲伏状态和站立状态之间转换所需的时间。
Max Ground Angle 认为地面平整的角度。如果超过该角度,角色将无法站立并滑下斜坡。如果角色爬上山坡并且其角度大于此值,则角色不会爬上。
Max Ceiling Angle 该值定义将表面视为天花板的最大角度。如果胶囊顶部接触的表面的角度小于此值,则认为角色已撞击天花板:其垂直速度等于0,角色开始下落。如果字符上方的表面的角度超过此值,则字符将沿该表面滑动。
Check Move Ray Offset 检查可能会移动到的表面的射线的偏移量。 最小值为 0 ,最大值为0.1单位。
Check Move Ray Offset = 0.01 Check Move Ray Offset = 0.1
Check Move Mask 用于整理与曲面的相交的蒙版。
Wall Stop Sliding Angle 方向射线与胶囊与壁的接触点之间的水平角度。如果角度小于此值,则播放器不会沿着墙壁滑动。

自动步进设置#

Auto Stepping组设置可微调自动爬升到一定高度的障碍物。自动步进过程包括三个阶段:将玩家提升到障碍物的高度,将其移动到障碍物上并解决碰撞,并放下该障碍物的表面并解决碰撞。

Use Auto Stepping 用于切换自动步进选项的标志。
Min Step Height 要应用自动步进的障碍物的最小高度。这是避免在平坦表面上应用自动步进所必需的。
Max Step Height 通过自动步进可以攀爬的障碍物的最大高度。
Max Stair Angle 要应用自动步进的最大倾斜角度。如果角色在坡度大于其最大楼梯角度值的倾斜表面上踩踏,则最后一步将被取消。
Check Stair Ray Offset 检查自动步进的潜在阶梯级别的射线的偏移量。此偏移量是垂直的,并且沿潜在的移动方向。
Stairs Detection Angle 水平角度,该角度定义用于检查胶囊在移动方向上与其他对象的接触的区域。允许避免在墙壁附近错误的自动步进。
Stair Detection Mask 用于检查与台阶的相交的蒙版,以进行自动步进。如果您的楼梯具有复杂的几何图形,并希望在“自动步进”过程中对其进行简化,请为复杂的几何图形禁用此蒙版,并为简化的模型启用。

对象交互设置#

Objects Interaction组包含用于调节播放器与其他物理对象的简单物理交互的设置。

Use Objects Interaction 用于切换与其他物理对象的交互的标志。这些是分配了刚体的对象。
Impulse Multiplier 施加到与玩家碰撞的刚体上的脉冲的乘数。

高级设置#

Advanced Settings组包含用于播放器更新的辅助设置。

Player Fps 播放器的最小更新帧速率。如果当前FPS小于此值,则播放器每帧更新几次。
Collision Iterations 解决冲突的迭代次数。
Contacts Buffer Size 为冲突处理的最大联系人数。
Heavy Contacts Count 在处理联系人上应用“碰撞迭代”值的最大联系人数。如果联系人数量超过此值,则仅使用一次迭代来避免性能下降。

调试设置#

Debug Settings组包含调试信息的设置。要查看调试信息,应在设置 Debug配置的情况下运行项目。

Debug Camera 启用Debug Camera会创建一个观察玩家的第三人称摄像机。使用光标箭头和+-来控制此摄像机,以更改到播放器的距离。 启用Use Fixed Angles可以将此摄像机放置在播放器后面,并使其查看播放器的方向。
Debug Visualizer 启用Debug Visualizer将显示所选的调试信息:
  • Triangles—多边形的可视化
  • Shapes—形状的可视化
  • Player Shape—玩家胶囊的可视化
  • Player Direction-显示玩家方向(即其Y轴)的箭头
  • Camera—可视化玩家摄像机的视锥和方向
  • Slope Basis-可视化播放器所站立的表面的基础。沿X轴和Y轴施加水平速度。

  • Applied Horizontal Velocity—可视化应用于播放器的当前水平速度矢量
  • Applied Vertical Velocity—可视化应用于播放器的当前垂直速度矢量
  • Up Pass Contacts—在 自动步进的向上阶段中的联系人可视化
  • Side Pass Contacts—水平移动到任一侧时的联系人可视化
  • Down Pass Contacts—在 自动步进的下行阶段中的联系人可视化
  • Check Move Ray—检查表面以执行潜在运动的射线的可视化
  • Stair Detection Ray—在 自动步进期间检查障碍物的射线的可视化
Debug Profiler 启用Debug Profiler将在Profiler中显示所选的调试信息:
  • Applied Horizontal Speed—应用于播放器的水平速度的标量值
  • Applied Vertical Speed—应用于播放器的垂直速度的标量值
  • Up Pass Contacts—在 自动步进的向上阶段中的触点
  • Side Pass Contacts—在水平移动到任意一侧时接触
  • Down Pass Contacts—在 自动步进的下行阶段中的接触
  • Is Ground—接触地面的状态
  • Is Ceiling—触摸天花板的状态变化
  • Is Crouch—蹲伏状态的变化
  • Average Speed—根据坐标变化计算出的平均玩家速度
  • Auto Stepping—自动步进的应用
Debug Colors 颜色选择器,用于设置用于在VisualizerProfiler中显示信息的颜色。

访问演示项目源代码#

您可以学习和修改此演示的源代码来创建自己的项目。 要访问源代码,请执行以下操作:

  1. Demos部分中找到C# Component Samples演示并点击Install(安装)(如果您尚未安装)。
  2. 安装成功后,demo会出现在Installed部分,您可以点击Copy as Project基于此创建项目 演示。
  3. 在打开的 Create New Project 窗口中,在相应字段中输入新项目的名称,然后单击Create New Project.
  4. 现在您可以点击Open Code IDE查看和修改默认IDE中的源代码,或者点击Open Editor打开项目 在 UnigineEditor中。

本页面上的信息适用于 UNIGINE 2.20 SDK.

最新更新: 2023-03-25
Build: ()