【Unity3D】ECS入门学习(八)块组件 ArchetypeChunk

全局唯一组件,修改数值后不会产生新的组件,而是全部实体的块组件内容都同步变化。

cs 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.Entities;
public struct MyChunkComponentData : IComponentData
{
    public int num;
}
cs 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.Entities;
public class ChunkTest : MonoBehaviour
{
    private void Start()
    {
        EntityManager entityManager = World.DefaultGameObjectInjectionWorld.EntityManager;
        //创建Chunk类型
        EntityArchetype type = entityManager.CreateArchetype(ComponentType.ChunkComponent(typeof(MyChunkComponentData)));
        //创建Chunk实体1
        Entity chunkEntity = entityManager.CreateEntity(type);
        //创建Chunk实体2
        Entity chunkEntity2 = entityManager.CreateEntity(type);
        //获取实体1的Chunk类对象
        ArchetypeChunk chunk = entityManager.GetChunk(chunkEntity);
        //修改Chunk值
        entityManager.SetChunkComponentData(chunk, new MyChunkComponentData() { num = 10 });
    }
}

修改其中一个Chunk对象的值其他实体的Chunk组件也会同步修改。

相关推荐
我想我不够好。2 小时前
学到的知识点 1.8
学习
lingxiao168882 小时前
WebApi详解+Unity注入--下篇:Unity注入
unity·c#·wpf
世洋Blog3 小时前
面经-CPU、内存、GPU的性能优化
unity·性能优化
旖旎夜光3 小时前
Linux(9)
linux·学习
浩瀚地学3 小时前
【Java】常用API(二)
java·开发语言·经验分享·笔记·学习
chao_6666664 小时前
解决 PowerShell 中文乱码问题
网络·学习·powershell
喵了meme4 小时前
Linux学习日记24:Linux网络编程基础
linux·网络·学习
BullSmall4 小时前
《庄子》导读
学习
HL_风神4 小时前
设计原则之迪米特
c++·学习·设计模式
HL_风神4 小时前
设计原则之合成复用
c++·学习·设计模式