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

Unity DOTS从入门到精通之 自定义Authoring类

文章目录

    • 前言
    • 安装 DOTS 包
    • 什么是Authoring
    • 1. 实体组件
    • 2. Authoring类

前言

DOTS(面向数据的技术堆栈)是一套由 Unity 提供支持的技术,用于提供高性能游戏开发解决方案,特别适合需要处理大量数据的游戏,例如大型开放世界游戏。
我们今天来讲一下,Dots框架中,Authoring类的创建和使用。

  • Unity 2022.3.52f1
  • Entities 1.3.10

安装 DOTS 包

要安装 DOTS 包,请按照以下步骤操作:

(1)从菜单“窗口 → 包管理器”打开包管理器。
(2)搜索“ Entities” 并安装 Entities和Entities Graphics。
(3)搜索“ Universal RP” 并安装 Universal RP,并设置Graphics/Scriptable Render Pipeline Settings。

这会添加“实体”作为依赖项,并递归添加它所依赖的关联包( Burst、Collections、Jobs、Mathematics等)。

在这里插入图片描述

什么是Authoring

Authoring 类通常用于定义和管理实体和组件的元数据以及如何进行编辑和创建。
这一类主要的功能包括:

1.实体和组件定义:Authoring 类可以用于声明或定义在游戏中使用的不同实体和组件。这使得开发者可以方便地创建和配置其对应的数据结构。

2.编辑器集成:这些类通常与 Unity 编辑器相结合,使开发者可以在编辑模式下直观地创建和配置游戏实体。它们提供了可视化的工具,以便非程序员也可以参与设计游戏内容。

3.数据管理:Authoring 类帮助管理数据的加载、保存和版本控制。它们可以帮助开发者组织复杂的数据结构,使得资源管理更加高效。

4.转换为运行时组件:这些类通常还包括逻辑,将数据在编辑器中设置的状态转换为运行时可以使用的实体和组件。这一转化通常伴随着实体的创建和初始化过程。

1. 实体组件

新建一个Rotator的ComponentData组件

using Unity.Entities;public struct Rotator : IComponentData
{public float speed;
}

2. Authoring类

using UnityEngine;
using Unity.Entities;public class RotatorAuthoring : MonoBehaviour
{public float Speed;//将 MonoBehaviour 的 RotatorAuthoring 组件数据(如 Speed)//转换为 ECS 的 Rotator 组件数据(IComponentData)public class RotatorBaker : Baker<RotatorAuthoring>{public override void Bake(RotatorAuthoring authoring){//通过Bake方式,把当前游戏对象转换为Entityvar entity = GetEntity(TransformUsageFlags.Dynamic);//给Entity添加数据组件AddComponent(entity, new Rotator { speed = authoring.Speed });}}
}

在这里插入图片描述

相关文章:

Unity DOTS从入门到精通之 自定义Authoring类

文章目录 前言安装 DOTS 包什么是Authoring1. 实体组件2. Authoring类 前言 DOTS&#xff08;面向数据的技术堆栈&#xff09;是一套由 Unity 提供支持的技术&#xff0c;用于提供高性能游戏开发解决方案&#xff0c;特别适合需要处理大量数据的游戏&#xff0c;例如大型开放世…...

linux 软件安装(上)

一、基础环境准备 1.1、安装VM 1.2、在VM上导入linux iso镜像&#xff0c;装好linux系统 华为centos镜像下载地址 https://mirrors.huaweicloud.com/centos/ https://mirrors.huaweicloud.com/centos/7.9.2009/isos/x86_64/ 网易centos镜像下载地址 htt…...

php虚拟站点提示No input file specified时的问题及权限处理方法

访问站点&#xff0c;提示如下 No input file specified. 可能是文件权限有问题&#xff0c;也可能是“.user.ini”文件路径没有配置对&#xff0c;最简单的办法就是直接将它删除掉&#xff0c;还有就是将它设置正确 #配置成自己服务器上正确的路径 open_basedir/mnt/qiy/te…...

【江协科技STM32】ADC数模转换器-学习笔记

ADC简介 ADC&#xff08;Analog-Digital Converter&#xff09;模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量&#xff0c;建立模拟电路到数字电路的桥梁&#xff0c;ADC是一种将连续的模拟信号转换为离散的数字信号的设备或模块12位逐次逼近型…...

QT系列教程(20) Qt 项目视图便捷类

视频连接 https://www.bilibili.com/video/BV1XY41127t3/?vd_source8be9e83424c2ed2c9b2a3ed1d01385e9 Qt项目视图便捷类 Qt项目视图提供了一些便捷类&#xff0c;包括QListWidget, QTableWidget&#xff0c; QTreeWidget等。我们分别介绍这几个便捷类。 我们先创建一个Qt …...

git worktree的使用

git worktree 是 Git 提供的一个强大功能&#xff0c;允许你在同一个仓库中同时创建多个工作目录&#xff0c;每个目录对应一个分支&#xff0c;从而实现并行开发。以下是 git worktree 的常用命令和使用方法&#xff1a; 1. 创建新的工作目录&#xff08;Worktree&#xff09…...

Spring Boot+RabbitMQ+Canal 解决数据一致性

目录大纲 一、环境配置1.1 docker-compose.yml 配置1.2 docker-compose 常用命令1.3 镜像服务启动状态 二、MySQL binlog 配置2.1 docker-compose command 配置 binlog2.2 创建canal用户&#xff0c;以及查看是否开启binlog 三、canal 相关配置文件3.1 canal.properties 完整文…...

Java高频面试之集合-08

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天来报道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面试官&#xff1a;详细说说CopyOnWriteArrayList CopyOnWriteArrayList 详解 CopyOnWriteArrayList 是 Java 并发包&#xff08;java.util…...

C#实现高性能异步文件下载器(支持进度显示/断点续传)

一、应用场景分析 异步文件下载器用处很大&#xff0c;当我们需要实现以下功能时可以用的上&#xff1a; 大文件下载&#xff08;如4K视频/安装包&#xff09; 避免UI线程阻塞&#xff0c;保证界面流畅响应多任务并行下载 支持同时下载多个文件&#xff0c;提升带宽利用率后台…...

【数据分析】转录组基因表达的KEGG通路富集分析教程

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍差异分析(limma)KEGG富集分析(enrichKEGG)可视化加载R包数据下载导入数据基因差异分析火山图KEGG通路富集分析可视化通路结果另一个案例总结系统信息参考介绍 KEGG富集分析,可…...

【由技及道】API契约的量子纠缠术:响应封装的十一维通信协议(全局的返回结果封装)【人工智障AI2077的开发日志012】

摘要&#xff1a;在API通信的量子混沌中&#xff0c;30种返回格式如同平行宇宙的物理定律相互碰撞。本文构建的十一维通信协议&#xff0c;通过时空锚点&#xff08;ApiResult&#xff09;、量子过滤器&#xff08;ResponseWrapper&#xff09;和湮灭防护罩&#xff08;Jackson…...

STM32 ——系统架构

3个被动单元 SRAM 存储程序运行时用到的变量 Flash&#xff08;内部闪存存储器&#xff09; 存储下载的程序 程序执行时用到的常量 桥接1和桥接2 AHB到APB的桥&#xff08;AHBtoAPBx) 桥1 通过APB2总线连接到APB2上的外设。 高速外设&#xff0c;最高72MHz。 桥2 通过…...

算法 之 树形dp 树的中心、重心

文章目录 重心实践题目小红的陡峭值 在树的算法中&#xff0c;求解树的中心和重心是一类十分重要的算法 求解树的重心 树的重心的定义&#xff1a;重心是树中的一个节点&#xff0c;如果将这个点删除后&#xff0c;剩余各个连通块中点数的最大值最小&#xff0c;那么这个节点…...

如何利用 Excel 表格实现精准文件批量重命名教程

在处理大量文件时&#xff0c;有时需要根据特定规则对文件名进行调整。如果您的文件名和新名称之间存在一对多的关系&#xff0c;并且这种关系可以通过 Excel 表格来管理&#xff0c;那么使用“简鹿文件批量重命名”软件中的“匹配对应名称命名”功能将是一个高效的选择。接下来…...

ACE协议学习1

在多核系统或复杂SoC&#xff08;System on Chip&#xff09;中&#xff0c;不同处理器核心或IP&#xff08;Intellectual Property&#xff09;模块之间需要保持数据的一致性。常用的是ACE协议or CHI。 先对ACE协议进行学习 ACE协议&#xff08;Advanced Microcontroller Bu…...

【实战ES】实战 Elasticsearch:快速上手与深度实践-5.1.1热点分片识别与均衡策略

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 5.1.1 Filebeat Logstash ES Kibana 全链路配置实1. 架构设计与组件选型1.1 技术栈对比分析1.2 硬件配置推荐 2. Filebeat 高级配置2.1 多输入源配置2.2 性能优化参数 3.…...

Kubernetes 的正式安装

1.基础的网络结构说明 软件路由器 ikuai 当然同一个仅主机模式 相当于在 同一个我们所谓的广播域内 所以相当于它们的几张网卡 是被连接起来的 为了防止出现问题 我们可以把第二块网卡临时关闭一下 2.准备路由器 ikuai 爱快 iKuai-商业场景网络解决方案提供商 (ikuai8.com)…...

初阶数据结构(C语言实现)——4.2队列

目录 2.队列2.1队列的概念及结构2.2队列的实现2.2.1 初始化队列2.2.2 销毁队列2.2.3 队尾入队列2.2.4 队头出队列2.2.5获取队列头部元素2.2.6 获取队列队尾元素2.2.7获取队列中有效元素个数2.2.8 检测队列是否为空&#xff0c;如果为空返回非零结果&#xff0c;如果非空返回0 3…...

Mysql主从复制和Mysql高可用以及负载均衡配置

需要先配置MySQL主从复制&#xff0c;然后再在主MySQL服务器上配置MySQL Router。以下是详细说明和步骤&#xff1a; 1. 为什么需要先配置MySQL主从复制&#xff1f; MySQL主从复制是MySQL高可用性和负载均衡的基础&#xff0c;通过将数据从主服务器实时同步到从服务器&#…...

c#中使用时间戳转换器

在C#中,时间戳转换器通常用于将时间戳(通常是一个表示自某一特定时间点(如1970年1月1日UTC)以来的毫秒数的长整型值)转换为DateTime对象,或者将DateTime对象转换回时间戳。以下是几种实现这一功能的方法: 1. 使用DateTime的构造函数 将时间戳转换为DateTime long tim…...

4sapi 企业级实战:统一模型网关与全生命周期管理解决方案

引言随着大模型技术在企业中的广泛应用&#xff0c;越来越多的企业开始面临 "模型碎片化" 的挑战。不同部门、不同业务线各自对接不同的大模型厂商&#xff0c;使用不同的 API 接口&#xff0c;导致企业内部出现了多个独立的 AI 孤岛&#xff0c;带来了一系列严重的问…...

从SMP到NUMA:聊聊多核CPU时代Linux内存管理是怎么‘进化’的

从SMP到NUMA&#xff1a;多核CPU时代的内存管理演进之路 2000年代初&#xff0c;当单核CPU的主频竞赛逐渐触及物理极限时&#xff0c;计算机架构师们面临一个关键抉择&#xff1a;如何在芯片上堆叠更多晶体管&#xff1f;答案最终指向了多核设计。但随之而来的内存访问瓶颈&…...

告别龟速下载!用这个离线驱动包5分钟搞定DBeaver连接所有数据库

5分钟极速配置&#xff1a;DBeaver全量离线驱动包实战指南 每次打开DBeaver准备连接新数据库时&#xff0c;那个转个不停的驱动下载进度条是不是让你抓狂&#xff1f;尤其是在企业内网环境或网络不稳定时&#xff0c;等待驱动下载的过程简直能让人把咖啡喝成凉茶。今天要分享的…...

从CelebA数据集到落地应用:一份给新手的MTCNN训练数据制作与模型训练全指南

从CelebA数据集到落地应用&#xff1a;MTCNN训练数据制作与模型训练全指南 人脸检测作为计算机视觉的基础任务&#xff0c;其精度直接影响后续的人脸识别、表情分析等应用效果。MTCNN&#xff08;Multi-task Cascaded Convolutional Networks&#xff09;作为经典的多任务级联人…...

三菱FX3U串口通讯无协议编程与RS指令实现Modbus协议

引言 在工业自动化系统中&#xff0c;PLC与上位机之间的通讯至关重要。Modbus RTU协议 作为一种广泛应用的通讯协议&#xff0c;通常用于不同设备之间的数据交换。 对于三菱 FX3U系列PLC 来说&#xff0c;虽然它没有直接内置完整的Modbus RTU从站功能&#xff08;早期型号需通过…...

最新OpenClaw 2.7.1 Windows 环境快速部署教程

Windows 一键部署 OpenClaw v2.7.1 教程&#xff5c;5 分钟搭建本地 AI 智能体 在开源 AI 工具持续更新的当下&#xff0c;OpenClaw&#xff08;小龙虾&#xff09;凭借本地运行、零代码操控、自动化执行等特点&#xff0c;成为广受用户欢迎的本地 AI 智能体&#xff0c;GitHu…...

ARM AMBA总线演进史:从AHB到AXI,再到CHI和ACE,我们经历了什么?

ARM AMBA总线演进史&#xff1a;从AHB到AXI&#xff0c;再到CHI和ACE的技术脉络解析 二十年前&#xff0c;当ARM首次提出AMBA总线架构时&#xff0c;恐怕很少有人能预见它会在今天的SoC设计中占据如此核心的地位。从最初的AHB到如今的CHI&#xff0c;AMBA总线的每一次迭代都精准…...

从ANSI到EBCDIC:跨越地域与时代的字符编码全景解析

1. 字符编码的前世今生&#xff1a;从ASCII到EBCDIC 第一次在Windows记事本里保存文件时&#xff0c;看到"ANSI"这个选项我就懵了——这玩意儿和ASCII有什么关系&#xff1f;后来在跨国项目里处理日文数据时&#xff0c;更被SJIS和EUC-JP搞得焦头烂额。字符编码就像…...

从‘前后台’到‘多任务’:用UCOSIII官方例程理解RTOS内核如何接管你的单片机

从裸机到实时操作系统&#xff1a;UCOSIII内核如何重构单片机开发思维 第一次接触实时操作系统(RTOS)的嵌入式开发者&#xff0c;往往会被那些看似复杂的任务调度、优先级机制搞得一头雾水。我们习惯了在main函数里写一个无限循环&#xff0c;在中断服务例程(ISR)里处理紧急事件…...

Simulink仿真报错‘积分器发散’?别慌,试试把ode45换成ode3并固定步长

Simulink仿真中积分器发散问题的深度解析与实战解决方案 当你在Simulink中进行控制系统仿真时&#xff0c;突然弹出一条令人不安的错误信息——"Derivative not finite"或"singularity"&#xff0c;这往往意味着你的仿真遇到了积分器发散问题。这种报错不…...