[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

相关文章

【Unity Shader】片段着色器(Fragment Shader)的概念及其使用方法

在Unity和图形编程中,片段着色器(Fragment Shader)是渲染管线中的一个阶段,负责计算屏幕上每个像素(片段)的颜色和特性。片段着色器通常在顶点着色器和任何几何处理之后运行,是决定最终像素颜色的关键步骤。 Fragment Shader的概念: 像素处理:片段着色器处理经过顶点着色器和几何着色器处理后,映射到屏幕空间的像素。颜色计算:它计算每个像素的颜色值,这可能包括纹理采样、光

【Unity Shader】Alpha Blend(Alpha混合)的概念及其使用示例

在Unity和图形编程中,Alpha Blend(也称为Alpha混合)是一种用于处理像素透明度的技术。它允许像素与背景像素融合,从而实现透明或半透明的效果。Alpha Blend在渲染具有透明度的物体(如窗户、玻璃、水、雾等)时非常重要。 Alpha Blend的概念: Alpha值:Alpha值是一个介于0(完全透明)和1(完全不透明)的数值,用于表示像素的透明度。混合模式:Alpha B

如何给MySQL设置远程访问?(官方校正版)

在现代数据驱动的世界中,数据库的灵活性和可访问性变得尤为重要。设置MySQL的远程访问不仅仅是为了方便,还为企业和开发者提供了多种优势。无论是在分布式团队协作、跨地域数据管理,还是在系统集成和实时数据访问方面,远程访问都能显著提升效率和生产力。 目录 1. 修改MySQL配置文件 2. 重启MySQL服务 3. 创建远程访问用户 4. 配置防火墙 a. 使用UFW(适用于Ubun

Unity Meta Quest 开发:关闭 MR 应用的安全边界

社区链接: SpatialXR社区:完整课程、项目下载、项目孵化宣发、答疑、投融资、专属圈子 📕教程说明 这期教程我将介绍如何在应用中关闭 Quest 系统的安全边界。 视频讲解: https://www.bilibili.com/video/BV1Gm42157Zi 在 Unity 中导入 Meta XR SDK,进行环境配置后,打开 Assets > Plugins > An

Google Code Jam 2014(附官方题解)

2014年Google编程挑战赛 Problem A. Magic Trick Confused? Read the quick-start guide. Small input 6 points You have solved this input set. Note: To advance to the next rounds, you will need to s

Codeforces April Fools Day Contest 2014(附官方题解)

Codeforces2014年愚人节的坑题。。。但还是感觉挺好玩的。。。 A. The Great Game time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Two teams mee

2024.06.23 刷题日记

〇、前言 今天重点刷了回溯,以及常见的题目。 46. 全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例 2: 输入:nums = [0,1] 输出:[[0,1]

2024.06.22 刷题日记

199. 二叉树的右视图 这道题目的思路就是层次遍历,然后每次处理每一层所有的元素,如果是第一个就收集到答案中: class Solution {public:vector<int> rightSideView(TreeNode* root) {if (!root)return {};queue<TreeNode*> que;vector<int> ans;que.push(root);Tr

Unity 字体创建时候容易导致字体文件不正确的一种情况

上面得到了两种字体格式,一种是TextMeshPro的,另一种是Unity UI系统中默认使用的字体资源。其原因是创建的位置不同导致的。 1.下面是TextMeshPro字体创建的位置 2:下面是Unity UI系统中默认使用的字体资源

ultralytics官方更新 | 添加YOLOv10到ultralytics

💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡  专栏目录:《YOLOv8改进有效涨点》专栏介绍 & 专栏目录 | 目前已有40+篇内容,内含各种Head检测头、损失函数Loss、Backbone、Neck、NMS等创新点改进 对YOLOv10感兴趣的同学可以先看YOLOv8,因为改进方式大部分一样,我也会尽快更新相关的教程  论文地址:YOLOv10: Real