当前位置: 首页 > ai >正文

UnityDots学习(五)

此篇开始研究实际应用到项目或个人Demo中。参考国外CodeMonkey的RTS包含一些基础API应用。

前言

游戏不必100%使用Dots完全实现。因为面向组件开发一个功能复杂度和调试都比面向对象要更难。对于某些模块,比如UI,事件管理系统,网络等,使用传统对象模式来实现更有效率。只有核心逻辑需要大量单位同屏运行或者很复杂的算法模型可采用Dots进行。比如RTS同时10000个单位同时移动。Unity对于托管和非托管的System有二种类型,托管是SystemBase非托管是ISystem。

Component

根据前面的介绍,Component里只能定义值类型,不能定义引用类型。如果像下图这么定义,到编辑器里编译就会报错。

可定义范围

那问题来了,除了如下图这种简单的类型外。我其他的什么都没法用了吗?

测试使用其他的值类型数据定义

Authoring时直接报错。所以没有Component不能定义复杂类型的数据。

常用的UnityComponent
1.LocalTransform:对应控制位置,旋转。

但这里没法单独设置某一个方向的Scale,还需要添加另一个组件。

NonUniformScale:使entity具备可以在某个轴上的缩放

Component上多了个这个组件

实际上了解图形学这块改的是这里的矩阵换算

2.MaterialMeshInfo对应Mesh组件对应

更换Mesh代码示例:

需要先注册Mesh

对应System里面替换。

更换Material和Mesh一样,需要注册拿id替换。

3.LinkedEntityGroup

 动态生成的entity会自动添加link,这个用来控制当整个entity销毁时,也可以把孩子节点的Component也进行删除避免报错。

一些鬼畜错误

在一个authoring上给别的GameObject添加组件时

Reimport场景会报错,且组件并没有正确添加进去,并且报错信息指向的内容让人一头雾水。


 

http://www.xdnf.cn/news/4994.html

相关文章:

  • xxl-job简单入门使用教程
  • 【WebGIS系列】WebGIS 开发相关的资源
  • 地图、图表的制作要领
  • Spring Boot初级教程:从零搭建企业级Java应用
  • Milvus(18):IVF_PQ、HNSW
  • 如何利用爬虫获得1688商品详情:实战指南
  • HiklQQBot开源程序基于python的轻量qq官方机器人框架 快速部署启动官方QQ机器人 插件编写简单易懂 支持小白AI一键生成插件
  • 滑动窗口-窗口中的最大/小值-单调队列
  • 强化学习三大基本方法-DP、MC、TD
  • 英文单词词根记忆法:后缀 ology, onomy, graphy词根有哪些单词
  • websocketd 10秒教程
  • 力扣热题——到达最后一个房间的最少时间 II
  • QML 图像变换(缩放、平移、旋转)
  • 【RLHF】 Reward Model 和 Critic Model 在 RLHF 中的作用
  • AD新版本Skill的使用
  • SecureCRT网络穿透/代理
  • Python毕业设计219—基于python+Django+vue的房屋租赁系统(源代码+数据库+万字论文)
  • 主题分析建模用法介绍
  • RocketMQ 深度解析:架构设计与最佳实践
  • JavaScript 模块系统全景解析
  • 【数据机构】2. 线性表之“顺序表”
  • Qt读写XML文档
  • uniapp-商城-46-创建schema并新增到数据库
  • 浅聊大模型-有条件的文本生成
  • RAIL-KD: 随机中间层映射知识蒸馏
  • uniapp 不同路由之间的区别
  • LVGL9保姆级教程(源码获取)
  • HarmonyOS学习——ArkTS语法介绍之基本知识
  • 代理ARP与传统ARP在网络通信中的应用及区别研究
  • 2025数维杯数学建模A题完整限量论文:空中芭蕾——蹦床运动的力学行为分析