Skip to content

组件

组件(Unit)是 SE 编辑器中场景的基本单位。本节介绍组件的创建、移动、旋转、缩放、多选复制、组合绑定等操作,以及组件的物理状态、运行测试等基础概念。

创建组件

在编辑器界面上找到创建面板,选择【结构】-【基础形状】,然后分别选中方块和球体,并放在视窗内合适位置。

移动、旋转、缩放

选中组件后,可在【视窗】左上方点击对应指示器图标进入移动 / 旋转 / 缩放模式,或使用快捷键 1 / 2 / 3 快速切换。连续按同一个快捷键还可在该动作的子模式之间循环切换(例如连按 1 切换移动指示器的局部空间 / 世界空间)。指示器的默认快捷键可在【设置】-【快捷键】中自定义。

移动(快捷键 1

进入移动模式后,组件上会出现 X / Y / Z 三轴指示器。沿对应轴拖动可在单个坐标轴上移动组件。键盘方向键也可直接微调位置。

也可以通过键盘快捷键直接控制移动。

移动指示器有两种坐标空间:

空间说明
局部空间沿组件自身朝向建立坐标系,移动方向随组件旋转变化(前后左右)
世界空间沿场景原点建立坐标系,移动方向恒定(东南西北)

连按 1 可在两种空间之间切换。

旋转(快捷键 2

进入旋转模式后,组件上会出现 X / Y / Z 三轴旋转弧。沿对应弧拖动旋转组件,一次只能改变一个轴的旋转角度。

使用快捷键 Ctrl+2 可在三种旋转辅助模式之间切换:

模式说明适用场景
90° 旋转仅按 90° 倍数旋转快速转向
15° 旋转仅按 15° 倍数旋转小幅度调节
自由旋转任意角度,最小 1°精确旋转

更多旋转角度配置见【设置】-【通用设置】-【高级设置】-【旋转辅助】。

旋转还有三种坐标空间,连按 2 可在局部旋转 / 世界旋转 / 自由旋转之间切换:

空间说明
局部旋转沿组件自身朝向建立坐标系,随组件旋转变化(前后左右)
世界旋转沿场景原点建立坐标系,方向恒定(东南西北)
自由旋转不限制坐标轴,可任意角度旋转

缩放(快捷键 3

进入缩放模式后,组件上会出现 X / Y / Z 三轴方头指示器。沿对应轴拖动单轴缩放,长按指示器中心向任意方向拖拉则整体缩放。

连按 3 可在两种缩放模式之间切换:

模式说明
缩放移动伸展只向单侧伸展
缩放但不移动组件整体伸展

缩放是按原尺寸的倍数计算的,组件的真实大小需要以【尺寸】为准。

精准位置

在【属性面板】-【基础】中可以直接编辑组件的位置、世界坐标、旋转、缩放、尺寸数值。

多选与复制

多选(快捷键 Ctrl

点击多选图标进入多选模式,再依次选中多个组件;或长按 Ctrl 选中多个组件。

复制(快捷键 Alt

点击复制图标后,选中组件并使用移动指示器向任意方向移动即可完成复制;或长按 Alt + 拖动组件实现快速复制。

对齐

选中多个组件后,左上方会出现对齐按钮。点击后选择对齐方式和对齐轴,确认后完成组件对齐。

组合与绑定

组合

多选组件后,点击图示红框内的【组合】按钮即可将组件合成组件组。对已存在的组合再次点击【组合】按钮,将自动拆散组合。

绑定

点击需要被绑定的子组件,再点击图示红框内的【绑定】按钮,即可选择需要绑定的父组件。已有绑定关系的组件,再次点击【绑定】按钮将自动解绑。

物理状态

组件支持以下三种物理状态:

状态说明
静态物体不受任何物理影响,但可以反作用到其他物体,一般用于游戏中不会有任何变化的物体
运动物体不受任何物理影响,但可以反作用到其他物体,同时可以通过运动器或者代码进行位置变化
受力物体参与各种物理作用的物体

新创建的组件默认为静态物体。

API 参考BodyType

WARNING

同一场景内不宜有太多受力物体,会增加服务端的物理计算压力,造成掉帧等情况。

运行与测试

点击左上角【运行】开始进入游戏运行状态。

点击左上角【退出试玩】即可退出运行状态。

子组件

子组件是 SE 的核心组织方式。运动表现、视觉表现、玩法逻辑、交互行为,都通过给组件挂子组件实现。

在哪里挂子组件

在场景管理中选中目标组件,右键打开组件菜单,选择<添加子组件>

接下来选择子组件的类型,不同子组件能够给组件添加不同的功能。

挂接关系的限制

不是所有子组件都能挂在所有父组件下。挂接关系由编辑器内置的子组件限制规则决定,每条限制由四个字段组成:

字段说明
类型子组件本身的类型
可使用范围允许作为父节点的组件类型,多个用 , 分隔
同级个数同一父节点下允许挂接的最大个数,-1 表示不限
主动添加1 允许在编辑器【+】菜单中手动添加;0 仅由系统自动创建

编辑器中的体现:

  • 当前父节点不在某子组件类型的【可使用范围】内 → 该类型不出现在【+】菜单。
  • 当前父节点已挂满【同级个数】上限 → 该类型在【+】菜单中置灰。
  • 【主动添加 = 0】的类型 → 永远不出现在【+】菜单。

子组件限制表

下表为当前所有子组件类型的挂接限制:

子组件类型可挂在哪些父节点下同级上限主动添加
WorldUnitWorldUnit, GroupUnit, EggyUnit不限
ScriptUnit不限
TriggerUnitWorldUnit, GroupUnit, EggyUnit不限
EffectUnitWorldUnit, GroupUnit, EggyUnit不限
MaterialExpressionWorldUnit1否(系统自动)
LightUnitWorldUnit, GroupUnit不限
DestroyVolumeCompRenderTriggerUnit1
RenderUnitSpaceUnit, EggyUnit不限
AbilityManagerEggyUnit, Equipment1
EggyUnitSpaceUnit不限
AttrUnitUnit1
AbilityAbilityManager不限
BackpackUnit1
ModifierUnit1
OgcModifierUnit1
AttrBuffUnitUnit1
EquipmentBackpack不限
HumanControllerHumanUnit1
EggyControllerEggyUnit, PetUnit1
HumanUnitSpaceUnit不限
AnimatorHumanUnit1
AnimationAnimator不限
SkinUnitWorldUnit, RenderUnit不限
AnimateEggyUnit, HumanUnit1
EcaPathUnitWorldUnit, TriggerUnit, GroupUnit, RenderTriggerUnit不限
BaseMotorUnitWorldUnit不限
GroupUnitUnit不限
AttachmentWorldUnit, Attachment不限
PathfindingModifierPathfindingModifier1
ClickDetectorWorldUnit1
LocalScriptUnit1
SoundGroupSoundService不限
SoundUnitSoundGroup, SoundService不限

其他 Unit

方块和球体在 LUA SDK 定义中属于 WorldUnit,都继承自 UnitUnit 是场景中所有游戏对象的基础类型。

API 参考Unit