Flexi 引擎组件系统用户手册
第一章 快速入门
1.关卡
1.1创建关卡
1.打开文件菜单

2.选择New Level

1.2保存关卡
1.打开文件菜单

2.选择SaveCurrentLevel

3.首次保存时,在新打开的对话框中为新关卡选择保存路径和命名,然后点击确定按钮。从 file 菜单选择 Save As... 或使用 Ctrl+Alt+S 键盘热键也将出现此菜单。
1.3打开关卡
1.打开文件菜单

2.选择LoadLevel

3.从新打开的对话框中选择一个关卡,然后点击确定按钮。

2.场景对象(LActor)
可放入关卡中的对象都是LActor。LActor支持偏移、旋转和缩放。
2.1摆放场景对象
2.1.1通过场景大纲视图摆放场景对象
1.点击场景大纲视图(hierarchy)的Create菜单
2.选择需要摆放的场景对象,双击摆放到场景原点。
2.2选择场景对象
2.2.1简单选择
视口中鼠标点选场景对象。
如果单击未选中的场景对象时按住了Ctrl键,该场景对象会添加到选择中。如果单击已选中的场景对象时按住了Ctrl键,该场景对象会从选择中移除。
如果按住了Shift键,则单击的场景对象会添加到选择中。

2.2.2使用场景大纲视图选择

2.2.3区域选择
按住鼠标左键后拖拽鼠标框选

2.3编辑场景对象属性
C++内对属性标记了编辑器可见后会在编辑器内自动显示该属性。


1.选择待编辑场景对象,参见2.2
2.编辑inspector界面的属性面板上的对象属性

3.组件
组件是一种功能,不能独立存在。场景对象添加组件后,该对象具有该组件所提供的功能。
3.1为场景对象添加组件
1.点击inspector界面的AddComponent菜单
2.选择需要添加的组件,单击添加到选中的对象上。
3.2选择组件
3.2.1简单选择
1.视口中鼠标双击尚未选中组件的对象的组件
2.视口中鼠标单击已选中组件的对象的组件。
如果单击未选中的组件时按住了Ctrl键,该组件会添加到选择中。如果单击已选中的组件时按住了Ctrl键,该组件会从选择中移除。
如果按住了Shift键,单击的组件会添加到选择中。

3.2.2使用对象组件节点树选择
1.选中场景对象,参见2.2
2.选择组件节点
如果单击未选中的组件节点时按住了Ctrl键,该组件会添加到选择中。如果单击已选中的组件节点时按住了Ctrl键,该组件会从选择中移除。
如果按住了Shift键,单击的组件会添加到选择中。

3.3编辑组件属性
1.选择待编辑组件,参见3.2
2.修改属性面板上的组件属性

4.流式关卡
4.1创建新的流式关卡
1.打开文件菜单

2.选中NewStreamingLevel

3.在新打开的对话框中输入新的流式关卡路径和名称。然后点击确定按钮。
4.2保存流式关卡
流式关卡的保存与1.2节中介绍的关卡的保存类似。多一个需要选中流式关卡的前置步骤:
1.双击选中场景大纲视图中的流式关卡节点,绿色的关卡节点表示当前选中的关卡。
4.3添加已有流式关卡
1.打开文件菜单

2选中AddExistingStreamingLevel

3.在新打开的对话框中选择已有的流式关卡,然后点击确定按钮。

4.4使用流式关卡体积控制流式关卡的加载与卸载
4.4.1创建流式关卡体积
1.双击选中场景大纲视图的永久性关卡
2打开场景大纲视图的Create菜单
3.双击base
4.双击LevelStreamingVolume创建流式关卡体积
4.4.2使用流送关卡体积控制流式关卡加载
1.打开关卡编辑对话框

2.选中流式关卡
3.点击AddElement按钮

4.选中流式关卡体积

5.非组件化场景导入为组件化场景
1.新建关卡(参考1.1)
2.保存关卡(参考1.2)
3.打开文件菜单

4.选中ImportScene

5在新打开的对话框中选择需要导入的非组件化场景,然后点击确定按钮

6.基于颜色图的鼠标拾取

场景渲染图

颜色编号图
基于场景对象颜色编号图,编辑器中鼠标拾取到场景对象的颜色编号,通过查询颜色编号与场景对象映射表找到所拾取的场景对象。
7.编辑器中运行游戏
支持同时显示编辑器视图和游戏视图,两个视图互不影响。
1.鼠标单击编辑器顶部中央的播放按钮,开始运行游戏


2. 鼠标单击编辑器顶部中央的停止按钮,结束运行游戏


8.独立的项目工程目录

上图左侧为引擎目录,右侧为项目目录。
8.1注册项目工程文件
双击运行flexi_regedit.bat,注册后项目程序库、脚本、资源可以与引擎程序库、脚本、资源分离。 然后双击项目工程文件(flexi.projectinfo),可以启动编辑器。



8.2注册引擎路径
双击运行flexi_path_regedit.bat,注册后项目解决方案会自动包含引擎代码根路径(FLEXI_ENGINE_CODE_ROOT)。做到项目代码与引擎头文件的分离。项目在包含引擎头文件时,只要包含相对于引擎代码根路径的路径。
例如:项目代码需要包含i_entity.h文件,对应的代码:#include "public/i_entity.h"

