【UnityDOTS 三】Component的理解

news2024/11/14 6:52:12

Component的理解

文章目录

  • Component的理解
  • 前言
  • 一、托管Component与非托管Component
    • 1.非托管Component
    • 2.托管Component
  • 二、各功能的Component
  • 三、在Editor中的Component的区分
  • 总结


前言

Component作为ECS中承载数据的结构,了解他相关内容是非常必要的,面向数据的设计,就是要设计好Component。


提示:以下是本篇文章正文内容,下面案例可供参考

一、托管Component与非托管Component

1.非托管Component

Struct类型,继承于IComponentData。只能存放类似于BlittableTypes的数据(固定大小与,长度,不变的数据结构等特征)。可以用Brust编译优化。
可以存放的类型:Blittable types;bool;char;BlobAssetReference;Colletions.FixedString;Collections.FixedList;Fixed Arrary;其他由这些组合成的Struct。

2.托管Component

Class类型,继承于IComponentData。可以存储任何类型,但是使用其他托管类型数据,需要实现比较、序列化等接口,也要进行垃圾回收(因为要在ECS中进行管理),无法用JOBS访问,无法Brust编译优化。
原理:在对应的Entity中的Chunk结构数据中,只存储应用托管对象的引用。所以查询这些实际数据并不高效。

二、各功能的Component

  • 一般Component:
  • Shared Component:用于消除相同数据
  • Tag Component:用于标记的
  • Enableable Component:启用禁用组件
  • Cleanup Component:防止销毁Entity组件
  • Singleton Component:唯一存在的组件

三、在Editor中的Component的区分

在这里插入图片描述
大致分为5种:DATA,Buffer,Tag,Shared,Data Managed。

总结

Unity中提供了各种类型的Component来让玩家继承使用。其目的主要就是用来提升查询效率,高效地组织数据。看文档里面也是各种各样的,看起来头疼,还是在后面的使用中慢慢一个个认识他们吧

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

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

相关文章

基于Jsp+Servlet+Mysql学生信息管理系统

基于JspServletMysql学生信息管理系统 一、系统介绍二、功能展示1. 系统的部署2.导入数据库3. 系统介绍 四、其它1.其他系统实现五.获取源码 一、系统介绍 项目类型:Java web项目/Java EE项目/ 项目名称:基于sevelet的学生信息管理系统 当前版本&…

用Python制作一个简单时间、日期显示工具

Python是一款强大的编程软件,可以轻松实现我们的多种开发需求。今天我们拿Python中自带的tkinter来开发一个时钟显示器。如下图所示: 时间显示器 一、编程要求 用tkinter写一个漂亮、五彩的时间显示器,要求显示时、分、秒,即时变…

【JAVA】十分钟带你了解java的前世今生

个人主页:【😊个人主页】 系列专栏:【初始JAVA】 文章目录 前言JAVA介绍诞生🔬名字与图标🤖发展🛩️未来🪄 前言 玩过我的世界的朋友想必对JAVA以及它的图标都很熟悉,在游戏开始画面…

Java程序所在机器性能监控

Java程序所在机器性能监控 背景 问题单:程序故障(OOM、网络不通、操作卡顿)问题单:服务连接不上需求 1、监控本地机器性能 告警日志UI2、监控服务接口服务 告警日志UI方案 固定间隔获取机器网络CPU内存数据设置阈值,告…

自定义starter实现接口或方法限流功能

本文的思路是利用AOP技术自定义注解实现对特定的方法或接口进行限流。目前通过查阅相关资料,整理出三种类型限流方法,分别为基于guava限流实现、基于sentinel限流实现、基于Semaphore的实现。 一、限流常用的算法 1.1令牌桶算法 令牌桶算法是目前应用…

OpenCV(视频加载与摄像头使用)

目录 1、VideoCapture类 2、视频属性get() 3、视屏文件保存 1、VideoCapture类 2、视频属性get() 3、视屏文件保存 //视频的读取保存 int test3() {VideoCapture video;//video.open("F:/testMap/lolTFT.mp4");//读取视频video.open(0);//读取摄像头if (!video.i…

linux docker安装

一、Linux安装docker 1.1 前提 要求Linux内核(kernel) 版本大于等于3.8。(kernel version >3.8)。 查看当前系统内核版本 uname -a | awk {split($3,arr,"-");print arr[1]} 1.2 linux 安装docker Centos安装doc…

【数据结构与算法】7、队列(Queue)的实现【用栈实现队列】

目录 一、队列介绍二、使用 LinkedList 实现队列三、LeetCode:用【栈】实现队列(1) 老师讲之前我自己的实现(Correct)(2) 实现思路(3) 代码实现 四、jdk 的 Queue五、双端队列(Deque)六、循环队列(1) 分析(2) 入队(3) …

Linux--运行指令的本质

本质: ①找到它 which的作用就是找到它 ②运行它 示例: ①告诉系统要运行的指令,然后系统去查找它的路径并运行它 ②自己告诉系统自己要运行的路径,然后系统运行它 注意:a.out不能运行,而./a.out能运行…

MES是如何帮助企业提高生产效率的

大多数提高制造生产效率的系统都是从详细分析公司的制造流程和运营开始的。这样做的目的是是为了消除浪费的不增值的流程,将有价值的流程系统化,实现生产自动化并增强增值操作。 在自动化流程方面,实施制造执行系统(MES&#xff…

HTML5 游戏开发实战 | 俄罗斯方块

俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。这款游戏看似简单但却变化无穷,游戏过程仅需要玩家将不断下落的各种形状的方块移动、翻转,如果某一行被方块充满了&…

发送邮箱验证码【spring boot】

⭐前言⭐ ※※※大家好!我是同学〖森〗,一名计算机爱好者,今天让我们进入学习模式。若有错误,请多多指教。更多有趣的代码请移步Gitee 👍 点赞 ⭐ 收藏 📝留言 都是我创作的最大的动力! 1. 思维…

Redis6之穿透、击穿、雪崩

大量的高并发的请求打在Redis上,但是发现Redis中并没有请求的数据,redis的命令率降低,所以这些请求就只能直接打在DB(数据库服务器)上,在大量的高并发的请求下就会导致DB直接卡死、宕机。 缓存穿透 当客户端…

一例Phorpiex僵尸网络样本分析

本文主要分析Phorpiex僵尸网络的一个变种,该样本通常NSIS打包,能够检测虚拟机和沙箱。病毒本体伪装为一个文件夹,通过U盘来传播,会隐藏系统中各盘符根目录下的文件夹,创建同名的lnk文件,诱导用户点击。 病…

TF卡/U盘系统备份

Jetson nano使用TF卡/U盘来装载系统,如果TF卡/U盘丢失或者损坏,那么Jetson nano上的数据都会丢失,所以一定要备份好TF卡/U盘。这篇文章可以帮你备份你的Jetson nano系统。主要内容为备份TF卡/U盘,制作Jetson nano系统镜像以及在需…

Java——《面试题——ElasticSearch篇》

目录 1、谈谈分词与倒排索引的原理 2、说说分段存储的思想 3、谈谈你对段合并的策略思想的认识 4、了解文本相似度 TF-IDF吗 5、能说说ElasticSearch 写索引的逻辑吗? 6、熟悉ElasticSearch 集群中搜索数据的过程吗? 7、了解ElasticSearch 深翻页的…

vsCode 创建新java项目(创建一个新java项目测试方法)

VSCODE环境配置-java之项目建立,非常适合刚准备使用VSCODE开发JAVA的人_vscode创建java项目_rainmenzhao的博客-CSDN博客 1 按 ctrl shift p 2 输入 create Java project 3 选 no build tools 4 选择 一个文件夹 存放 之后要 新建的文件 5 选完之后 自动返回主页…

获得Jolt 大奖的《持续交付》作者David Farley又一新作《现代软件工程》

戴维 法利 (David Farley) 是持续交付的先驱、思想领袖, 也是持续交付、 DevOps、 测试驱动开发和软件开发领域的专家。 从现代计算的早期开始,戴维曾担任过程序员、软件工程师、系统架构师和成功团 队的领导者,他掌握了计算机和软件开发的基…

ES基本操作(postman篇)

关系型数据库 -> Databases(库) -> Tables(表) -> Rows(行) -> Columns(列)。Elasticsearch -> Indeces(索引) -> Types(类型) -> Documents(文档) -> Fields(属性)。 需要注意的是:type的概念在es7.0之后已经删除了。 以下仅做刚入门学习…

矩阵对角线元素的和:揭秘数学之美,解密矩阵的隐秘密码

本篇博客会讲解力扣“1572. 矩阵对角线元素的和”的解题思路,这是题目链接。 本题的思路是:主对角线的下标满足i j,副对角线的下标满足i j size - 1,故只需要使用i遍历每一行,把(i, i)和(i, size - i - 1)的元素求和…