【Unity3D】RTS Engine 笔记一

目录

一、RTS Engine 简单介绍

二、配置一个新场景

1.导入默认层级

2.场景基本物件介绍

3.GameManager介绍

4.设置地形

5.烘焙 Navigation Mesh

6. 配置地形网格搜索(Setup Terrain Grid Search)


一、RTS Engine 简单介绍

引擎带有RTS的基本功能, 诸如: 单人、多人、建筑建造、建筑升级、角色建造、角色升级、资源采集、资源收集、框选、移动、自动攻击、派系系统、AI系统、难易度、调速、场景管理等等。

demo是偏帝国时代一点。

官方给的一个demo_map

二、配置一个新场景

1.导入默认层级

插件提供了案例层级的配置

再有就是进行初始化配置(开灯+查看)

2.场景基本物件介绍

场景目录: 

  • GameManager::这个场景中的主要组件, 且当场景启动时,这是第一个被初始化的组件, 它负责初始化其他组件.
    • Essential:必要组件, 不可删除
    • Modules:可选组件, 可删除, 处理诸如存储等一些不必要的模块
  • Terrain:地形, 包括空中地形
  • ResourcesEntities: 资源文件, 场景中可采集的资源, 诸如: 树、矿、宝箱(demo中)
  • FactionsEntities:阵营实体, 诸如:建筑, 单位

3.GameManager介绍

  • GameManager::
    • Prev Scene: 上级场景,离开游戏后加载的场景的名字。如果有大厅系统,大厅系统会覆盖此字段
    • Game Code: 版本标识,涉及从大厅加载地图或从特定版本查询保存时很有用
    • Defeat Condition: 失败条件
      • Eliminate All:消灭所有敌人
      • Eliminate Main: 消灭主要的(可以通过什么组件检查器自行设置)
      • Custom: 自定义, 通过管理器完成
    • Peace Time Duration: 和平时间(开始后, 派系间允许互相攻击的时间)
    • Win Game Audio: 胜利音效
    • Lose Game Audio: 失败音效
    • Faction Slots: 派系插槽。定义可以在此地图上玩的派系, 以及初始单位和建筑。
    • Random Faction Slots: 随机插槽。启用并从大厅加载此地图时随机上面的插槽顺序, 达到随机出生点的效果

4.设置地形

  1.         创建地形区域: 可以定义多个地形区域,然后配置行为限制。例如单位在特定区域移动。配置文件 Key引用地形区域的标识。Layer为图层, 可以用来区分陆地跟海
  2. 配置地形管理器
  • Areas: 添加地形
  • Map Size: 地图大小。这里没懂。。。怎么也联想不到这个14400跟这个15625有什么关系

    The terrain plane object that we're using in this map scene is plane of height 120 and width 120, therefore we will be setting the map size accordingly to 14400 (120*120). This value is used by some RTS Engine components to approximate the terrain size (for example, NPC related components that handle expanding a NPC faction's territory within the terrain use this value to determine the size of the terrain they aim to occupy).

  •  Height Caching: 高度缓存:缓存高度, 用的时候提高性能,不需要光线投射。
  • Height Cache Distance: 高度缓存距离:就是取样间隔
  • Height Cache Sample Offset: 高度缓存样本偏移:向下探测地形并采样高度
  • Base Terrain: 基础地形, 高度 = 1 的盒子碰撞器, 扩展到整个地图。在地图场景开始时自动创建。基础地形必须覆盖整个地图,甚至更远。规定任何允许的主摄像机位置, 任何从主摄像机发射的光线投影都必须击中这个基础地形碰撞器
    • Base Terrain Layer: 保证该层级的唯一性, 并且默认情况下没有在任何对象上使用(当程序运行后会自动创建 BaseTerrain_Collider 也就是最外层的绿框)
      高度缓冲区(里边的绿色), 基础地形区(红色)
    • Base Terrain Center: 基础地形中心:最低位置
    • Base Terrain Size: 基础地形尺寸:画边界用的就是那个红色的范围
    • Camera Boundaries To Base Terrain Position Margin: 相机边界到基础地形位置边缘:主要是缓存模型, 允许在视图外显示模型, 确保当相机略微移动以查看模型对象时便立即可见。
    • Enable Side Base Terrain: 边缘地形? 当启用时会在周边创建一圈上边描述道的基础碰撞器,用来防止投射错误,取消勾选会报错。。。

      When enabled, this field allows to create base terrain colliders on each side of the map (instead of just on the bottom of the map) to avoid the raycasting errors caused by the main camera when it is not directly looking at the bottom of the map. Enable this field only if you allow the player to rotate the main camera freely, including rotating it so that the camera corners face any of the sides of the map and not the bottom directly. In this example, we can leave this field disabled.

5.烘焙 Navigation Mesh

这个就不用多说了,选择地形烘就完了

6. 配置地形网格搜索(Setup Terrain Grid Search)

允许其他组件在地形中搜索实体(单位、建筑、资源)。将地图场景地形分割成可搜索的单元(也就是一块一块的区域),节省计算成本。

绿色区域为摄像机照射的区域, 红色为未照射区域
  • Cell Size:细胞(槽)尺寸:下图是  Cell Size = 3的图示
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Unity DOTS(Data-Oriented Technology Stack)是Unity引擎的一项新技术堆栈,旨在优化游戏性能和开发效率。而RTS(Real-Time Strategy)即实时战略游戏,是一种以实时操作和策略为核心的游戏类型。 结合Unity DOTS技术和RTS游戏开发,我们可以期待更高效和优化的游戏开发流程。Unity DOTS使用数据导向的编程模式,通过对数据进行优化和并行处理,能够更好地利用多核处理器的能力,从而提高游戏的性能。 在RTS游戏中,有大量的单位和对象需要进行管理和处理,如建筑物、单位、战斗系统等。Unity DOTS的ECS(Entity Component System)模式可以更好地处理和管理这些大量的数据和对象,通过将游戏实体抽象为组件和系统,可以实现高效的数据驱动开发。 除此之外,Unity DOTS还提供了Burst编译器和Job System等功能,可以进一步提高游戏的性能和运行效率。Burst编译器可以将代码编译为高度优化的机器码,而Job System则可以将任务并行化执行,充分利用多核处理器的能力。 总而言之,使用Unity DOTS技术开发RTS游戏,可以获得更好的性能和效率。通过数据导向的编程模式、ECS模式、Burst编译器和Job System等功能的应用,可以极大地优化游戏的运行性能,提供更流畅的游戏体验,同时还能提高开发效率,缩短开发周期。 ### 回答2: "Unity DOTS RTS"是指基于Unity的Entity Component System(ECS)和Data-Oriented Technology Stack(DOTS)技术构建的即时战略游戏。Unity是一款流行且功能强大的游戏引擎,而ECS和DOTS则是Unity引擎的最新技术。这些新技术旨在提高游戏的性能和效率。 在Unity DOTS RTS中,使用ECS和DOTS可以更高效地处理大量实体(例如,游戏单位、建筑物等)。ECS将游戏对象分解为实体(Entity)、组件(Component)和系统(System),以实现更高的并行执行和数据局部性。DOTS则专注于数据导向的编程,采用数据密集型设计和批处理操作,以进一步提升性能。 借助Unity DOTS RTS的技术,游戏开发者能够创建更大规模、更复杂的即时战略游戏。这些游戏可以包含数千个单位、大型地图和复杂的游戏逻辑,而不会出现性能问题。游戏单位的移动、攻击、资源管理等行为可以高效处理,带给玩家更流畅、更真实的游戏体验。 同时,Unity DOTS RTS还为开发者提供了许多强大的工具和编辑器插件,以加快游戏开发过程。开发者可以使用C#脚本和Unity的编辑器来设计游戏地图、调整单位属性、创建AI行为等。这些工具能够帮助开发者更快地迭代和调试游戏,从而提高游戏开发的效率和质量。 总结而言,Unity DOTS RTS通过引入ECS和DOTS技术,为即时战略游戏带来了更好的性能和效率。它使开发者能够构建更大规模、更复杂的游戏,并提供了丰富的工具和插件来简化开发过程。通过这些技术,Unity DOTS RTS为玩家带来了更令人兴奋和逼真的游戏体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值