【unity】开发rts 4 放置建筑进地图;创建单位;单位移动;单位生产者

news2024/11/16 5:50:28

一 放置建筑进地图

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 已存在的数量

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/381453.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大专生学云计算,工作好找吗?

当然可以找到工作。云计算行业整体是处理高速成长期,市场规模以每年30%的速度增长,市场的扩张意味着需要更多的技术人才支撑,据统计云计算未来五年人才缺口将达到150万。 目前企业对于学历的要求并不高,基本大专及以上都可以的。…

基于神经网络(RBF)补偿的双关节机械手臂自适应控制

目录 前言 1.双关节机械手臂模型 1.1 实际模型 1.2 名义模型 2. 控制律设计 3. 神经网络补偿自适应律设计 3.1自适应律① 3.2自适应律② 4. 仿真分析 4.1仿真模型 4.2 仿真结果 4.3 小结 5学习问题 前言 所谓的补偿可以简单的理解为:将扰动的模型估计出…

【C++】开散列实现unordered_map与unordered_set的封装

本文主要介绍unordered_map与unordered_set的封装,此次封装主要用上文所说到的开散列,通过开散列的一些改造来实现unordered_map与unordered_set的封装 文章目录一、模板参数二、string的特化三、正向迭代器四、构造与析构五、[]的实现六、unordered_map的实现七、u…

MySQL安装教程

目录 一、认识MySQL 二、为什么要选用MySQL 三、关于MySQL8.0 四、安装步骤 一、认识MySQL 1、MySQL是一个开放源码的关系型数据库管理系统,将数据保存再不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 …

【java基础】接口(interface)

文章目录基础介绍接口的定义关于接口字段和方法的说明使用接口抽象类和接口接口方法冲突的一些说明方法相同名称和参数,返回值相同方法名称相同,参数不同,返回值相同方法返回值不同,名称参数相同方法完全相同,一个有默…

中文预训练大模型—文心Ernie技术原理

文心Ernie技术原理 一、背景技术 Ernie是基于Bert模型进行改进,基本模型是Transformer,Bert完成的预训练任务是:完形填空(通过基本语言单元掩码);上下句预测。 Bert模型的缺陷是:只能捕获局部…

关于Charles抓包

目录 抓包的原理 抓包的步骤 1. 下载Charles 2. PC抓HTTPS协议的包 3. 移动端抓包步骤 证书的原理 抓包的原理 抓包的软件非常多,其实底层逻辑充当了一个中间人代理的角色来对HTTPS进行抓包,结合日常自己用的Charles做一个记录。首先先了解抓包的原…

RT-Thread内核学习笔记

文章目录RT-Thread一、线程1. 线程定义2. 线程栈3. 线程函数 rt_thread_entry()4. 线程控制块 struct rt_thread5. 线程初始化 rt_thread_init()6. 就绪列表7. 调度器二、对象容器1. 对象:所有的数据结构都是对象2. 容器:每当创建一个对象,就…

腾讯云GPU游戏服务器/云主机租用配置价格表出炉!

用于游戏业务的服务器和普通云服务器和主机空间是不同的,游戏服务器对于硬件的配置、网络带宽有更大的要求,一般游戏服务器根据不同的配置和适用场景会有十几元一小时到几十元一小时,而且可以根据不同的按量计费。而普通的云服务器可能需要几…

【技术分享】配置802.1x 本地认证

实验需求 PC1(10.10.10.2/30)直接连接到RouterA的Eth2/0/1端口,RouterA的VLANIF10接口IP地址10.10.10.1/30(为PC1上的网关IP地址),配置802.1x协议进行访问控制,认证方式采用本地认证。 实验步骤 RouterA的配置 V200R00…

Impala 在网易大数据的优化和实践

导读: 网易大数据平台的底层数据查询引擎,选用了 Impala 作为 OLAP 查询引擎,不但支撑了网易大数据的交互式查询与自助分析,还为外部客户提供了商业化的产品与服务。今天将为大家分享下 Impala 在网易大数据的优化和实践。 01 Im…

qnx的spi记录

https://www.cnblogs.com/schips/p/protocol_spi_about.html (主要)https://www.zhihu.com/question/308406342/answer/2901148391https://www.bbsmax.com/A/lk5aa4Pm51/ (有基础测试代码)https://baijiahao.baidu.com/s?id17460…

聚焦技术前沿 引领行业未来 | 第四届OpenI/O 启智开发者大会深度学习与大模型产业应用专场论坛顺利举办!

为探索人工智能的重要发展方向,深入了解大模型、深度学习领域,推动人工智能的快速发展,2月24日,第四届启智开发者大会以“引领前沿技术,推动产业升级”为主题的“深度学习与大模型产业应用专场”在深圳人才研修院智汇中…

数学知识(算法模板)

数学知识 文章目录数学知识一、质数一、试除法判定质数二、试除法分解质因数三、朴素筛法求素数四、线性筛法求素数二、约数一、试除法求所有约数二、约数个数约数之和三、欧几里得算法三、欧拉函数一、欧拉函数的定义二、筛法求欧拉函数四、快速幂一、快速幂二、快速幂求逆元扩…

Vue中rules表单验证,表单必填*显示位置不对,*显示位置错误

<el-form :model"ruleForm" :rules"rules" ref"ruleForm"><el-form-item label"名称" prop"name"><el-input v-model"ruleForm.name"></el-input></el-form-item> </el-form>…

.NET 使用NLog增强日志输出

引言 不管你是开发单体应用还是微服务应用&#xff0c;在实际的软件的开发、测试和运行阶段&#xff0c;开发者都需要借助日志来定位问题。因此一款好的日志组件将至关重要&#xff0c;在.NET 的开源生态中&#xff0c;目前主要有Serilog、Log4Net和NLog三款优秀的日志组件&…

少儿编程 电子学会图形化编程等级考试Scratch一级真题解析(判断题)2022年12月

2022年12月scratch编程等级考试一级真题 判断题(共10题,每题2分,共20分) 26、可以通过四种方式添加新角色(不包括复制已有角色):选择一个角色、绘制、随机、上传角色 答案:对 考点分析:考查角色添加的方式,角色添加四种方式分别为题目给出的四种,所以正确 27、角…

分布式事务总结

1. 分布式事务产生的背景 1.1 数据库水平拆分 对于大部分的业务而言&#xff0c;在起步阶段&#xff0c;为了快速上线&#xff0c;一般都是单库单表的。但是随着业务的扩张&#xff0c;数据量也随着扩增&#xff0c;单库的性能逐渐变差&#xff0c;就会有数据库的单点压力。因…

大数据常见术语

大数据常见术语一览 主要内容包含以下&#xff08;收藏&#xff0c;转发给你身边的朋友&#xff09; 雪花模型、星型模型和星座模型 事实表 维度表 上钻与下钻 维度退化 数据湖 UV与PV 画像 ETL 机器学习 大数据杀熟 SKU与SPU 即席查询 数据湖 数据中台 ODS&#xff0c;DWD&…

过滤器的创建和执行顺序

过滤器的创建和执行顺序 8.1.1创建并配置过滤器 P143 重点是如何创建并配置&#xff08;xml&#xff09; 1.创建 public class EncodingFilter implements Filter {Overridepublic void init(FilterConfig filterConfig) throws ServletException {}Overridepublic void doFil…