【Unity3D】ECS入门学习(六)状态组件 ISystemStateComponentData

当需要获知组件是否被销毁时,ECS是没有回调告知的,因此可以将组件继承于ISystemStateComponentData接口,这样即使组件的实体被销毁了,该组件本身是不会消失的,所以可以通过在组件实体销毁后,去设置状态组件的数据来标记为已销毁状态,从而得知该组件的实体已销毁。

cs 复制代码
using Unity.Entities;

[GenerateAuthoringComponent]
public struct MarkStateComponentData : ISystemStateComponentData
{
    public int state;
}
cs 复制代码
//(6)状态组件
//查询状态组件
EntityManager entityManager = World.DefaultGameObjectInjectionWorld.EntityManager;
var query = entityManager.CreateEntityQuery(typeof(MarkStateComponentData));
//销毁组件实体,但由于挂载的是状态组件,故实体并未真正销毁
entityManager.DestroyEntity(query);

//遍历实体 修改state=-1标记为已销毁
foreach(var v in query.ToEntityArray(Allocator.TempJob))
{
    entityManager.SetComponentData(v, new MarkStateComponentData() { state = -1 });
}
相关推荐
一棵开花的树,枝芽无限靠近你2 小时前
【PPTist】表格功能
前端·笔记·学习·编辑器·ppt·pptist
yuwinter3 小时前
鸿蒙HarmonyOS学习笔记(8)
笔记·学习
Ricciflows4 小时前
MIT线性代数教材:Linear Algebra and Its Applications
人工智能·学习·线性代数·机器学习·数学建模·矩阵
计科土狗4 小时前
离散数学第二章笔记
学习
美式小田4 小时前
Cadence学习笔记 12 PCB初始化设置
笔记·嵌入式硬件·学习·cadence
席万里5 小时前
【MySQL学习笔记】关于索引
笔记·学习·mysql
深蓝海拓6 小时前
使用sam进行零样本、零学习的分割实践
人工智能·深度学习·学习·目标检测·计算机视觉
滴_咕噜咕噜6 小时前
学习笔记(prism--视频【WPF-prism核心教程】)--待更新
笔记·学习·wpf
ghostwritten6 小时前
学习 Python 编程的规则与风格指南
python·学习
两水先木示6 小时前
【Unity3D】ECS入门学习(七)缓存区组件 IBufferElementData
学习·unity·ecs