Unity DOTS【000】 入门介绍:环境配置
Unity DOTS 一文开启ECS大门
- 前言
- 环境
- 过程
- 新建URP项目
- 导入Entity等插件包
- 开启Entity Debugger窗口
- 编写第一个Entity脚本
- 为Entity添加Component
- 创建一个System
- 参考
前言
Unity DOTS 已经迎来1.0版本更新,但是目前开发DOTS还得用Entity 0.51.0版本比较合适,资料相对较多,Bug相对较少。下文就从最基本的开始,创建一个Entity+Component+System。
环境
软件 版本 Unity 2021.3.8f1 Visual Studio 2019 软件包 版本 URP 12.1.7 Entity 0.51.1-preview.21 Rendering.Hybrid 0.51.1-preview.21 physics 0.51.1-preview.21 过程
新建URP项目
导入Entity等插件包
项目创建完成后,在任务管理器中打开工程目录,找到Packages
文件夹,打开文件夹,找到manifest.json
文件,然后添加:
"com.unity.entities": "0.51.1","com.unity.physics": "0.51.1","com.unity.rendering.hybrid": "0.51.1",
更改
Enable Pre-release Packages
Show Despendencies
两项的设置
开启Entity Debugger窗口
开启Entity Debugger窗口便于查看。
编写第一个Entity脚本
创建脚本Spawer
并挂载
在脚本中编写以下代码 :
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.Entities;
using Unity.Transforms;
using Unity.Rendering;
using Unity.Mathematics;public class Spawer : MonoBehaviour
{void Start(){MakeEntities();}private void MakeEntities(){//拿到默认世界中的实体管理器EntityManager entityManager = World.DefaultGameObjectInjectionWorld.EntityManager;//创建一个实体Entity myEntity = entityManager.CreateEntity();}
}
保存并回到Unity,点击运行
可以在Debugger窗口中看到我们刚创建的Entity
其中
Entity 0 为 PhysicsSystem
WorldTime 为 游戏时间
GameObject Scene 为 游戏场景
为Entity添加Component
创建脚本LevelComponent并添加以下代码
Tip:不需要拖拽到场景物体上
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.Entities;
public struct LevelComponent : IComponentData
{public float level;
}
修改Spawer脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.Entities;
using Unity.Transforms;
using Unity.Rendering;
using Unity.Mathematics;public class Spawer : MonoBehaviour
{void Start(){MakeEntities();}private void MakeEntities(){//拿到默认世界中的实体管理器EntityManager entityManager = World.DefaultGameObjectInjectionWorld.EntityManager;//创建一个原型 用来给实体分配数据EntityArchetype archetype = entityManager.CreateArchetype(//移动typeof(Translation),//旋转typeof(Rotation),//关卡组件typeof(LevelComponent));//根据原型创建一个实体Entity myEntity = entityManager.CreateEntity(archetype);}
}
运行场景
可以看到我们创建的Entity已经挂载了LevelComponent
创建一个System
创建一个System来控制LevelComponent中的值
创建LevelSystem脚本,并添加以下内容
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.Entities;
public class LevelSystem : ComponentSystem
{protected override void OnUpdate(){Entities.ForEach((ref LevelComponent levelComponent) => {levelComponent.level += 1f * Time.DeltaTime;});}
}
保存并运行场景
可以看到Level的值在不断变化
至此Entity Component System系统全部正常运行。
参考
https://docs.unity3d.com/Packages/com.unity.entities@0.51/manual/index.html
https://docs.unity3d.com/Packages/com.unity.rendering.hybrid@0.51/manual/requirements-and-compatibility.html
Unity DOTS【000】 入门介绍:环境配置相关推荐
- WinPcap网络编程入门——0. 环境配置及系列介绍
WinPcap网络编程入门--0. 环境配置及系列介绍 系列教程章节直达: Winpcap网络编程入门--1. 获取设备列表: 说明:本教程适用于网络编程开发人员入门,将从底层分析 WinPcap 的 ...
- 【Jetson Nano 入门】环境配置汇总
文章目录 前言 一.镜像烧写 二.PWM风扇自动调速 三.使用MicroUSB在电脑打开终端 四.VNC实现局域网及网线直连通信 五.SSH文件传输 六.状态监控软件Jtop 七.检查CUDA.Ope ...
- 云计算入门教程环境配置
###########严重声明################# 本人支持一切正规软件开发行为,接受知识付费理念. 并坚决抵制盗版行为,用于学习交流的非盈利目的的,且法律允许且支持的条件下,可以进行相 ...
- 【PIE-Earth】入门介绍和配置开发环境
文章目录 0.前言 1. PIE-Earth总体介绍 1.1 基于多源异构时空数据 1.2 空间分析 1.3 定制开发 2. 功能介绍 2.1 二三维可视化 2.2 空间分析 2.3 定制开发 3. ...
- 【Unity + Google Cardboard】 VR环境配置
翻译一下google cardboard接unity的开发文档 前面 一直想尝试开发一个VR游戏试试-- Unity的官方文档在这里 一开始看的时候分不清各种VR设备,如果你也是的话--比如只有一个能 ...
- webpack入门+react环境配置
小结放在前:这篇文章主要是为下一篇的react提前铺好路,webpack是一个前端资源模块化管理和打包工具,说白了就是方便我们管理自己的常用的一些代码,比如你开发中用到sass以及jade同时用到es ...
- webpack入门+react环境配置 1
小结放在前:这篇文章主要是为下一篇的react提前铺好路,webpack是一个前端资源模块化管理和打包工具,说白了就是方便我们管理自己的常用的一些代码,比如你开发中用到sass以及jade同时用到es ...
- Unity 2021.1.15 ARCore环境配置与样例开发
前言 首先这个文档是基于Unity2018及以上的,由于实习需要做AR相关的内容,但是AR Core之前的教程大多是基于SDK的,而这一功能已不在Unity更高版本中支持,同时楼主又是个Unity小白 ...
- 机器学习入门编程环境配置
1. 安装 Python3(可以直接安装anaconda而不用再去安装python和单独进行环境变量配置,并且在所有的新电脑上想要安装python,最好也是选择直接安装anaconda,不然后面用到其 ...
- day68_淘淘商城项目_01_电商介绍 + 互联网术语 + SOA + 分布式 + 集群介绍 + 环境配置 + 框架搭建_匠心笔记
淘淘商城项目_01 1.电商行业的背景介绍--电子商务 1.1.11.11 1.2.电商行业技术特点 2.淘淘商城的系统架构 2.1.淘淘商城介绍 2.2.功能介绍 2.3.系统架构 2.3.1.传统 ...
最新文章
- 用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
- MYSQL delete 从多人表中删除
- go语言php编译,Golang模板编译引擎FET
- 【Java】为什么java构造函数的构造器只能在第一行写this() 或者super() ?
- python计算机代码_python告白代码,只属于程序员的浪漫
- Zabbix---3 监控主机内存使用率
- 微信支付可以在App Store购买应用了 附绑定教程
- chroot环境的快速构建
- 在IntelliJ IDEA下编辑jspx文件(转)
- Geeks 面试题:Fibonacci numbers 优化为lgn效率
- python爬取天天基金历史净值_python爬取天天基金网全部基金的历史全部净值
- 世界著名半导体公司及其官网
- nvidia控制面板点了没反应win7_nvidia控制面板点击没反应 - 卡饭网
- 椭圆周长c语言,怎么计算上椭圆周长,下椭圆周长,和展开面周长
- 如何查看linux的系统配置,多少个核心,多少个线程?CPU的主频 查看内存
- AcWing 95. 费解的开关(推理)
- 回到那个夏天(千与千寻)
- 闲扯Maven项目代码组织形式
- 零基础转行,你要不要去编程培训班?
- 前后端传输加密代码-java
热门文章
- 疫情降低财务和社交幸福感;洲际酒店集团发起全球清洁安全承诺 | 美通企业日报...
- stable diffusion 入门 视频和教程
- Google 程序员都是怎么研究 AI 的?
- 深入设计模式06---建造者模式
- 公网ip与私网ip区别联系
- 拯救者Y7000系列 笔记本键盘点击 只响但是没有反应的问题
- 写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)
- 超详细【百分百拿offer】的面试教程,集合5000多家软件测试公司面试题。
- iOS - 设备扬声器听筒切换,静音模式播放音频
- 【职业发展类】程序员职业生涯的四重境界,你处于哪一重?