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

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场景会报错,且组件并没有正确添加进去,并且报错信息指向的内容让人一头雾水。


 

相关文章:

  • 【大模型】LLM概念相关问题(上)
  • C语言编程--19.括号生成
  • 【数据机构】2. 线性表之“顺序表”
  • 行业 |四大痛点待破:“拆解”DeepSeek一体机
  • 布隆过滤器:高效的数据结构与应用详解
  • Node.js 24.0 正式发布:性能跃升与开发体验全面升级
  • 【AI论文】ZeroSearch:在不搜索的情况下激励LLM的搜索能力
  • 基于CNN的猫狗图像分类系统
  • MQTT:轻量级物联网通信协议详解
  • 在ISOLAR A/B 工具使用UDS 0x14服务清除单个DTC故障的配置
  • 大模型提示词策略
  • 电子电路:白炽灯发光能说明电子正在消散消失吗?
  • Open CASCADE学习|实现裁剪操作
  • Kotlin中Lambda表达式和匿名函数的区别
  • ISP流程介绍(Rgb格式阶段)
  • 【数据结构】线性表--链表(二)
  • 【软件测试】软件缺陷(Bug)的详细描述
  • Oracle 执行计划中的 ACCESS 和 FILTER 详解
  • 【软件设计师:体系结构】15.计算机体系结构概论
  • PIC18F45K80 ECAN模块使用
  • 比特币价格重返10万美元,哪些因素使然?
  • 深圳两家会所涉卖淫嫖娼各被罚7万元逾期未缴,警方发催告书
  • 人民日报整版聚焦:铭记二战历史,传承深厚友谊
  • 深入贯彻中央八项规定精神学习教育中央第七指导组指导督导中国船舶集团见面会召开
  • 国家发改委副主任谈民营经济促进法:以法治的稳定性增强发展的确定性
  • 圆桌丨中俄权威专家详解:两国携手维护战后国际秩序,捍卫国际公平正义