一 放置建筑进地图
1 GameManage,slot faction阵营插槽,
新建筑拖进secne,便于管理,在实例栏将建筑放在factions下
inital faction entitys,(也可带上cam look at) 添加新建筑上
此时测试,可看到建筑,但为1血建造状态。
实例栏点击建筑,修改health states的init health为满值
2 中立自由建筑
在GameManager-essential-buildingExtension中,pre spawned free buildings中添加中立的建筑,下面可设置中立颜色
二 创建单位
1 导航栏rts engine-create new unit,创建过程同建筑;
2 进入预制体,路径要求同建筑;
3 entity tab页面基本同建筑;
4 faction entity tab页面,设置建造资源,阵营颜色展示部分(记得点下单位模型,看mesh render的material ID,这里只有一个所以ID只有个0)
5 unit tab页面,look at保持unsign
6 unit health部分,
general页面,最大、初始化生命值,生命是否可增减,是否可被攻击,被攻击的部分(不设置的话默认为selection部分)
destruction tab页面,被摧毁标识、死亡延迟,死亡赏金?特效?音效
health states tab页面,同建筑,不同血量可展示隐藏某些部分
7 unit animation 单位动画
animator,要做动画的部分,这里为父实例
animator override controller动画重载,(在 RTS Engine -> Core -> Animation -> Controllers中可找到UnitAnimator ,rts engine的单位动画控制器模板,有闲置、移动、行动、受击、死亡等分类)在project栏右键create-animator override controller,点进去,设置为unitAnimation
可设置对应动画
death 死亡,idle闲置,inProgress动作,mvt移动,takeDamage受击
然后回到单位预制体,unit animation controller中 override controller添加上述内容。可添加多个,fetch type为random会随机选择动作。damage animation 可不开,否则缺少受击动画时,受击期间会动作停滞
audio音频,
nav mesh agent 网格代理,用于寻路,之后再设置
8 子项目
selection 选取碰撞,同建筑
selection render 选取高亮圈,同建筑
unit movement 使单位可移动的配置
unit component 单位其它组件,空组件,文档说用来填充单位特效之类的东西?
三 单位移动
1 点击单位预制体的 unit_movement
可看到Entity Component (Source: IUnit - Target: IEntity/Vector3)
*general tab 页面:
code 唯一标识
is active 是否启用
priority 优先?只有一个移动组件,这里设为0。看起来是包含多个移动组件时,从低往高为允许设置目标的组件设置目标
*setting target tab 设置目标页面:
set target task UI 允许右键或面板选择目标,之后设置
order audio 移动语音,可设置冷却时间
*movement tab 移动页面
movable terrain areas 可移动的地形类型,之前新建地图时定义的。不选则可在所有地形移动
formation 多个同类型单位移动时,目的地队形。RTS Engine -> Core -> Movement -> Formations中定义了circular、row两种,也可自己写脚本。
float中定义队形间距。其中 vertical-spacing横向间距,horizontal-spacing 纵向间距,如果横纵间距相同也可以只用spacing一项。
int property中只能添加 amountPerRow,每行的导航路径数量,没太懂
movement priority 移动优先级,越低,混编中越靠前
speed 速度,比如10
acceleration 加速度,越高加速越快,999没有加速延迟
movement audio 移动中循环的声音,比如脚步、引擎声
invalid path audio 目的地不可抵达时的语音
*rotation tab 转动页面
转动速度,越高转的越快
can idle r 打钩,smooth 不打勾,则立刻转向并移动;都打钩,则平滑的转向并移动
2 nav mesh agent 导航网格代理
unit_movement 必须为子实例
点击父实例,查看 nav mesh agent部分
steering转向,里面的速度、转向等参数会在unit_movement、地图设置中被覆盖,因此可以不写;
obstancle avoidnce 障碍躲避:半径和高度,本单位的碰撞体积,是个圆柱,用于寻找可通过的路;
quality 质量,多单位移动时的算法质量。
priority 优先,上条质量不为none才有用。
pathFinding 寻路,都打钩,area mask选walkable可通行的
3 设置地图的移动配置GameManager -> Essential -> Movement
movement manage tab页面:
stopping distance 单位停止距离,覆盖了steering中的。
movement target effect prefab 移动目的的图标预制体吧
navmesh movement system 关联脚本的,没有配置项目
movement formation handler 运动形成处理器?
formation type,队形,有圆和行
fallback formation type,寻路失败的处理,还有重新寻路次数
4 添加单位为地图初始化单位,同建筑
四 添加移动任务 通过面板执行移动指令
1 实例栏 gameManage-essential-UI
其中 game ui manager 和 game ui text display manager 可调整代码来扩展
gameManage-modules-UI 中有其它可选的面板配置
其中 task UI handler panel 中,是面板部分的关联配置,默认有四部分(三个行、一个2*3)
可参考创造更多的面板容器类型
面板图标预制体:RTS Engine -> Core -> Prefabs -> UI
查看task UI handler panel最上面关联的这个组件
image 图标背景
entity compoment task UI 图标实际按钮,关联的内容为子文件
button 按钮部分
on click() 中,要关联到下拉框相同内容(此处为父内容)
在GameManager -> Addons -> UI Tooltip UI Handler,为提示框 (文档这么写,但我看还在GameManager -> modules -> UI里)
panel 面板
message display 面板的子内容,展示文本的组件
use duration/default duration 启用持续时间/持续时间,这里未启用就是光标在图标上就一直展示
GameManager -> essential-> task 中,可设置点击图标后光标的样式
2 打开单位预制体,unit_movement ,setting target
在project右键-create-rts engine-entity compoment task UI assets,新建面板图标UI
之后进入
code 唯一标识。不同组件都连接到这里,按文档说法只展示一个图标,且能使所有单位激活技能
display type:
single selection 仅选择了有此技能的单位才展示;
homo multiple selection 同上?没看懂文档
hetero multiple selection 都会展示
icon 图标
panel catagory 面板类型,将此图标安排在哪个位置,即之前gameManage-module-UI 中 task panel UI handler 中的 element 多少
force slot 强制插槽,启用后可在下一个index指定排在第几个按钮槽
tooltip 提示内容,鼠标悬停时的展示文本
reload time 装填时间,类似建造时间、前摇,技能从点击到完成的时间
cursor 光标
最后在单位预制体的 setting target 中选择刚才新建的内容
五 设置单位的生产者
1 打开建筑预制体,点击父内容,编辑栏中 add component,添加 unit creator
2 再添加 pending tasks handler,挂起组件,应该就是生产队列吧,可设置一个最大挂起数量
3 再查看unit creator
code 唯一标识
spawn transform 创建位置,新建一个组件,作为生产位置
再看task 页面:
添加一个creation tasks,关联到下述新建的图标
新建图标 。这里reload time就是建造时间了
允许建造的阵营
建造资源
所需前置实体
资源不足时处理(不设置图标则会改变原图标颜色,alpha通道不能不透明)
unit creation task data
prefab object 选择要建造的单位预制体
limit 限制:none不限制,lanuch times建造次数,active instance 已存在的数量