Dots Entity 删除
生活随笔
收集整理的這篇文章主要介紹了
Dots Entity 删除
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
由于ECS大部分情況下都是對其感興趣的組件進行便利,這就要求我門在循環的時候記錄下來需要刪除的Entity或組件,在循環結束以后進行刪除操作,但是我門也可以采用監聽系統狀態組件來實現刪除
具體操作:在實體創建出來后,為其加上一個系統狀態組件,然后將建一個系統監聽這個組件,當某個Entity上只有系統組件時,就把這個系統狀態自建刪除,系統就會自動刪除這個Entity
using Unity.Entities;public struct EntityLifeStateData : ISystemStateComponentData
{}public struct EntityLifeData : IComponentData
{}
using Unity.Entities;public class EntityDestorySystem : ComponentSystem
{protected override void OnUpdate(){//當監測到Entity只有系統狀態組件時就可以刪除系統狀態組件Entities.WithNone<EntityLifeData>().WithAll<EntityLifeStateData>().ForEach((Entity e) =>{PostUpdateCommands.RemoveComponent<EntityLifeStateData>(e);});}
}
using Unity.Entities;
using UnityEngine;public class EntityDestoryExample : MonoBehaviour,IConvertGameObjectToEntity
{public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem){dstManager.AddComponentData(entity, new EntityLifeData());dstManager.AddComponentData(entity, new EntityLifeStateData());}
}
總結
以上是生活随笔為你收集整理的Dots Entity 删除的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ValueError: With n_s
- 下一篇: java获取微秒时间,java获取当前时