【unity3d】unity即时战略游戏开发2 rts engine

news2024/11/6 3:17:19

A 背景

经过寻找发现有unity3d的[rts engine],ue4的[template 4]等rts引擎/模板。

没有搜到相关教程,倒是有几个老外的ue从零开发长篇教程。

rts engine有几个试玩视频,尝试找了一下。那就不用虚幻了。

距离[原坤争霸 genshin craft]近了一步捏。

B 导入rts engine

安装unity,下载rts engine(202210版本以上)

新建3d项目,导入

C demo

rts engine-configure demo layer,然后就可执行。

D 新建

根据官方文档,学一下各个功能。

官方文档:

Manual | Unity RTS Engine Documentation

一 新建地图

rts engine-configure new game,新建地图;

Window -> Rendering -> Lighting,底部auto generate打钩,使光照实时更新;

*目录结构:

 gameManager游戏管理器:初始化时最先加载,并加载其它内容;

        essential必要组件,不能删除;

        modules模块,可自定义;

resources资源:贴图、导入的模型、音频等等;

terrain地形:地形文件;

cameras相机;

factions阵营:阵营实体,如建筑单位;

UI界面对象;

 prev scene上级场景,离开游戏后加载的场景的名字。如果有大厅系统,大厅系统会覆盖此字段。

gameCode代码,标识本地图、版本。

defeat condition胜利条件

        eliminate all消灭所有敌人

        eliminate main 消灭主城

        custom自定义

peace time duration和平时间(秒)

win/lose game audio胜利/失败音效

faction slots阵营插槽,地图可用出生点

random faction slots 随机插槽,启用后,大厅进入游戏将随机出生点

现可进行测试,仅有方块(主城单位)和一个胶囊(单位)

二 设置地形

1

 project栏中右键,创建terrain area type

key 标识,记得写一下

layer 分层,用于归类,例如陆地、海域

2

查看game manage-essential-terrain,地形管理器

 area中添加刚才建立的地形

map size地图大小(不包含边界外一圈

高度缓存,左下角、右上角坐标,用于缓存高度坐标,运行时不用现找高度,提高效率

高度缓存距离,间隔多少取样一次

高度缓存样本偏移,没太懂,翻译说往下,是说深度么?文档原文:

Height Cache Sample Offset: When sampling terrain's height to cache, this offset is added to the Raycast source position which will head downwards to detect the terrain object and sample the height.

base terrain基础地形,高度1.0,碰撞体f扩展到全地图(包括边缘往外一圈),摄像机、光线都应落在此地形上

base terrain layer 基础地形层,应不被其他对象使用

center:基础地形中心,地图中心

size:基础地形尺寸,包含地图边缘之外的一圈区域(镜头移到边缘时不至于看到虚空,边界外每边多60

camera...... 摄像机位置到基础地形边缘距离控制

enable....  边缘碰撞体创建,阻挡摄像机继续往外移动而看到虚空。【允许摄像机自由转动时再开启】

3 实例栏中的terrain,挂靠至对应layer(若未挂靠)

4 烘焙导航网格,window-AI-navigation(ob)打开窗口,若没有则window-package manage中安装navigation。

进入object标签,再在实例栏点击地形,修改navigation area为walkable可行动的。

进入bake标签,烘焙。若调整参数需参考文档:

Unity - Manual: Building a NavMesh

5 配置grid search handler网格搜索处理,允许其它组件搜寻单位、建筑、资源

点击实例栏gameManager-essential-search,调整数值,覆盖地图。cellSize越小越细,大了会搜索单元内所有实体从而消耗更高

测试,可以移动胶囊了

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

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

相关文章

【ChatGPT整活大赏】写论文后自动生成视频

ChatGPT国内又火了一把,功能很强大,接下来就带大家感受一下它的强大之处,通过ChatGPT写一篇论文并自动生成视频,增加内容的可读性。 话不多说,先上成果: …

MySQL管理表

在创建表时需要提前了解mysql里面的数据类型 常见的数据类型 创建表 创建表方式1: 格式: CREATE TABLE [IF NOT EXISTS] 表名( 字段1, 数据类型 [约束条件] [默认值], 字段2, 数据类型 [约束条件] [默认值], 字段3, 数据类型 [约束条件] [默认值], ………

以FGSM算法为例的对抗训练的实现(基于Pytorch)

1. 前言 深度学习虽然发展迅速,但是由于其线性的特性,受到了对抗样本的影响,很容易造成系统功能的失效。 以图像分类为例子,对抗样本很容易使得在测试集上精度很高的模型在对抗样本上的识别精度很低。 对抗样本指的是在合法数据上添加了特定的小的扰动,…

聚类算法(下):10个聚类算法的评价指标

上篇文章我们已经介绍了一些常见的聚类算法,下面我们将要介绍评估聚类算法的指标 1、Rand Index Rand Index(兰德指数)是一种衡量聚类算法性能的指标。它衡量的是聚类算法将数据点分配到聚类中的准确程度。兰德指数的范围从0到1,1的值表示两…

Python-GEE遥感云大数据分析、管理与可视化技术及多领域案例实践应用

随着航空、航天、近地空间等多个遥感平台的不断发展,近年来遥感技术突飞猛进。由此,遥感数据的空间、时间、光谱分辨率不断提高,数据量也大幅增长,使其越来越具有大数据特征。对于相关研究而言,遥感大数据的出现为其提…

【阿旭机器学习实战】【37】电影推荐系统---基于矩阵分解

【阿旭机器学习实战】系列文章主要介绍机器学习的各种算法模型及其实战案例,欢迎点赞,关注共同学习交流。 电影推荐系统 目录电影推荐系统1. 问题介绍1.1推荐系统矩阵分解方法介绍1.2 数据集:ml-100k2. 推荐系统实现2.1 定义矩阵分解函数2.2 …

什么牌子的蓝牙耳机便宜好用?四款高品质蓝牙耳机推荐

随着时代的发展,蓝牙耳机的使用频率越来越高,不少人外出时除了带手机外,蓝牙耳机也成为了外出必备的数码产品之一。现在的蓝牙耳机品牌众多,什么牌子的蓝牙耳机便宜好用?下面,我来给大家推荐四款高品质的蓝…

ZigBee组网原理详解

关键词:RFD FFD ZigBee 1. 组网概述 组建一个完整的zigbee网状网络包括两个步骤:网络初始化、节点加入网络。其中节点加入网络又包括两个步骤:通过与协调器连接入网和通过已有父节点入网。 ZigBee网络中的节点主要包含三个:终端…

一文3000字从0到1实现基于Selenium+Python的web自动化测试框架 (建议收藏)

一、什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE:Firefo…

阿里云服务器宝塔phpstudyIIS建站

P1 建站准备工作 1.购买云服务器 (新用户登录阿里云有阿里云服务器一个月的试用权限,但是试用期的云服务器有地区限制(不可自己选择地区),我的显示的是杭州,内地的服务器进行域名绑定的话,需要…

香港新世代加密资产网红正在崛起

2023年,历经兴衰的加密资产,在元宇宙和NFT的影响下,越来越多人开始关注这个领域。而在香港,不同的人更是成为了加密资产网红,引起加密资产热度的提升。香港加密资产政策促进网红崛起随着加密资产在全球的兴起&#xff…

OPPO手机删除文件数据恢复技巧篇

由于各种原因,所有 Android 手机上的数据都可能丢失。Oppo也是一个专注于Android操作系统的智能手机品牌。因此,您的 Oppo 设备上的数据也容易被删除和损坏。在本文中,我们将讨论 Oppo 用户恢复丢失或删除数据的不同方式。我们将详细讲解OPPO…

原始GAN-pytorch-生成MNIST数据集(原理)

文章目录1. GAN 《Generative Adversarial Nets》1.1 相关概念1.2 公式理解1.3 图片理解1.4 熵、交叉熵、KL散度、JS散度1.5 其他相关(正在补充!)1. GAN 《Generative Adversarial Nets》 Ian J. Goodfellow, Jean Pouget-Abadie, Yoshua Be…

string类的理解以及模拟实现

string类的理解为什么需要学习string类标准库中的string类string类简单了解string类常见接口string模拟实现深浅拷贝问题标准库下的stringVS环境下g环境下为什么需要学习string类 在C语言中,字符串和字符串相关的函数是分开的,不太符合面向对象的思想&a…

在线视频加密播放与防下载该如何考虑?

在线视频加密播放与防下载该如何考虑? ▲ 图 / 防录屏随机水印 1. 视频加密(分片加密)VRM加密: 将视频进行切片、对碎片逐一进行混淆式加密,包括AES128加密、XOR加密、关键帧错序等。 2. 防录屏(用名信息I…

IM即时通讯开发如何解决大量离线消息导致客户端卡顿的

大部分做后端开发的朋友,都在开发接口。客户端或浏览器h5通过HTTP请求到我们后端的Controller接口,后端查数据库等返回JSON给客户端。大家都知道,HTTP协议有短连接、无状态、三次握手四次挥手等特点。而像游戏、实时通信等业务反而很不适合用…

一个Laravel+vue免费开源的基于RABC控制的博客系统

项目介绍 CCENOTE 是一个使用 Vue3 Laravel8 开发的前后端分离的基于RABC权限控制管理的内容管理系统,由于作者本人比较喜欢写作的原因,因此开发了这个项目,后端使用的PHP的Laravel框架,并且整理了数据层与业务层,相…

node环境搭建以及接口的封装

node环境搭建 文章目录node环境搭建1.在cmd中输入命令安装express(全局)2.在自己的项目下安装serve3.测试接口4.连接mysql4.1 创建数据表4.2 在serve目录下建db下的sql.js4.3 sql.js4.4 在serve路径下安装mysql4.5 在routes 中引入并发送请求4.6 请求到数…

一文3000字从0到1教你用python+selenium搭建UI自动化测试环境以及使用

一、什么是Selenium ? Selenium 是一个浏览器自动化测试框架,它主要用于web应用程序的自动化测试,其主要特点如下:开源、免费;多平台、浏览器、多语言支持;对web页面有良好的支持;API简单灵活易…

STM32CubeMX串口USART中断发送接收数据

本文代码使用 HAL 库。 文章目录前言一、中断控制二、USART中断使用1. 中断优先级设置 :2. 使能中断3. 使能UART的发送、接收中断4. 中断收发函数5. 中断处理函数6. 中断收发回调函数三、串口中断实验串口中断发送数据点亮 led:实验现象:总结…