[5]Unity ECS 探路日记 官方Sample5

2024-05-11 01:58

本文主要是介绍[5]Unity ECS 探路日记 官方Sample5,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这个例子讲了如何把Mono的Prefab转换为Entiry的Prefab并且产生100*100个旋转的方块

README

此示例演示如何使用Prefab GameObject生成实体和组件。 场景产生了旋转立方体对的“场”。

##它显示了什么?

此示例使用HelloCube_02_IJobForEach中的组件和系统。

Unity.Entities提供GameObjectConversionUtility以将GameObject层次结构转换为其Entity表示。 使用此实用程序,您可以将预制件转换为实体表示,并使用该表示在需要时生成新实例。

当您实例化实体预制件时,整个预制件表示被克隆为一个组,就像基于GameObjects实例化预制件一样。

HelloSpawnMonoBehaviour类将Prefab转换为Start()方法中的Entity表示,然后实例化旋转对象的字段。

直奔主题 我们来看一下HelloSpawnMonoBehaviour.cs 并讲一下主要的代码

在Start方法的第一行 就把Prefab转换为了Entity的Prefab

// Create entity prefab from the game object hierarchy once
Entity prefab = GameObjectConversionUtility.ConvertGameObjectHierarchy(Prefab, World.Active);

随后使用World.Active.EntityManager的 Instantiate方法实例化Entiry Prefab

最后用World.Active.EntityManager.SetComponentData方法设置了 物体的位置

上代码:

using Unity.Entities;
using Unity.Mathematics;
using Unity.Transforms;
using UnityEngine;namespace Samples.HelloCube_05
{public class HelloSpawnMonoBehaviour : MonoBehaviour{public GameObject Prefab;public int CountX = 100;public int CountY = 100;void Start(){// Create entity prefab from the game object hierarchy onceEntity prefab = GameObjectConversionUtility.ConvertGameObjectHierarchy(Prefab, World.Active);var entityManager = World.Active.EntityManager;for (int x = 0; x < CountX; x++){for (int y = 0; y < CountX; y++){// Efficiently instantiate a bunch of entities from the already converted entity prefabvar instance = entityManager.Instantiate(prefab);// Place the instantiated entity in a grid with some noisevar position = transform.TransformPoint(new float3(x * 1.3F, noise.cnoise(new float2(x, y) * 0.21F) * 2, y * 1.3F));World.Active.EntityManager.SetComponentData(instance, new Translation {Value = position});}}}}    
}

 

这篇关于[5]Unity ECS 探路日记 官方Sample5的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/978192

相关文章

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

Adblock Plus官方规则Easylist China说明与反馈贴(2015.12.15)

-------------------------------特别说明--------------------------------------- 视频广告问题:因Adblock Plus的局限,存在以下现象,优酷、搜狐、17173黑屏并倒数;乐视、爱奇艺播放广告。因为这些视频网站的Flash播放器被植入了检测代码,而Adblock Plus无法修改播放器。 如需同时使用ads

Temu官方宣导务必将所有的点位材料进行检测-RSL资质检测

关于饰品类产品合规问题宣导: 产品法规RSL要求 RSL测试是根据REACH法规及附录17的要求进行测试。REACH法规是欧洲一项重要的法规,其中包含许多对化学物质进行限制的规定和高度关注物质。 为了确保珠宝首饰的安全性,欧盟REACH法规规定,珠宝首饰上架各大电商平台前必须进行RSLReport(欧盟禁限用化学物质检测报告)资质认证,以确保产品不含对人体有害的化学物质。 RSL-铅,

Unity Post Process Unity后处理学习日志

Unity Post Process Unity后处理学习日志 在现代游戏开发中,后处理(Post Processing)技术已经成为提升游戏画面质量的关键工具。Unity的后处理栈(Post Processing Stack)是一个强大的插件,它允许开发者为游戏场景添加各种视觉效果,如景深、色彩校正、辉光、模糊等。这些效果不仅能够增强游戏的视觉吸引力,还能帮助传达特定的情感和氛围。 文档

Unity协程搭配队列开发Tips弹窗模块

概述 在Unity游戏开发过程中,提示系统是提升用户体验的重要组成部分。一个设计良好的提示窗口不仅能及时传达信息给玩家,还应当做到不干扰游戏流程。本文将探讨如何使用Unity的协程(Coroutine)配合队列(Queue)数据结构来构建一个高效且可扩展的Tips弹窗模块。 技术模块介绍 1. Unity协程(Coroutines) 协程是Unity中的一种特殊函数类型,允许异步操作的实现

Cortex-A7:ARM官方推荐的嵌套中断实现机制

0 参考资料 ARM Cortex-A(armV7)编程手册V4.0.pdf ARM体系结构与编程第2版 1 前言 Cortex-M系列内核MCU中断硬件原生支持嵌套中断,开发者不需要为了实现嵌套中断而进行额外的工作。但在Cortex-A7中,硬件原生是不支持嵌套中断的,这从Cortex-A7中断向量表中仅为外部中断设置了一个中断向量可以看出。本文介绍ARM官方推荐使用的嵌套中断实现机

Unity 资源 之 Super Confetti FX:点亮项目的璀璨粒子之光

Unity 资源 之 Super Confetti FX:点亮项目的璀璨粒子之光 一,前言二,资源包内容三,免费获取资源包 一,前言 在创意的世界里,每一个细节都能决定一个项目的独特魅力。今天,要向大家介绍一款令人惊艳的粒子效果包 ——Super Confetti FX。 二,资源包内容 💥充满活力与动态,是 Super Confetti FX 最显著的标签。它宛如一位

Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(4)

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正​​ Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(3)-CSDN博客  这节就是真正的存储数据了   理清一下思路: 1.存储路径并检查 //2进制文件类存储private static string Data_Binary_Pa

长虹官方刷机包和刷机教程

为了解决部分朋友因应用引起的电视死机、无法开机、系统被破坏等情形,长虹电视团队特开此帖为朋友们提供刷机方法,但刷机有风险,如完全不懂刷机技巧的朋友需要谨慎操作哦,如有疑问可以微信留言给我们。       下面是按照电视机型、刷机方式、刷机包链接这样的方式提供的(目前暂放热门型号刷机教程)。

Unity Adressables 使用说明(一)概述

使用 Adressables 组织管理 Asset Addressables 包基于 Unity 的 AssetBundles 系统,并提供了一个用户界面来管理您的 AssetBundles。当您使一个资源可寻址(Addressable)时,您可以使用该资源的地址从任何地方加载它。无论资源是在本地应用程序中可用还是存储在远程内容分发网络上,Addressable 系统都会定位并返回该资源。 您