一度に複数のEntityを生成するSystem

IBufferElementData について

参考 【Unity】 ECS まとめ(前編) - エフアンダーバー 【Unity】ECSで配列を格納する Dynamic Buffers - テラシュールブログ Interface IBufferElementData | Package Manager UI website

ISharedComponentData について

保存と復元を可能にするためにシリアライズ可能である必要があるので必ず[Serializable]をつける。 共有のために同一性判定が必要なため、 参照型を含む場合にはSystem.IEquatable<T>の実装とGetHashCodeのオーバーライドが必須 (現在のバージョンEntities0.8.0</t>…

Unity DOTSで衝突時に何らかの処理を行う時のテンプレ

環境 Unity Entities 0.5.1 Unity Physics 0.2.5 コード

Authoring コンポーネントのテンプレ

using Unity.Entities; using UnityEngine; public class AnyAuthoring : MonoBehaviour, IConvertGameObjectToEntity { public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem) { dstManager.AddComp…

ただのMonoBehaviorでEntityをいじる方法

using Unity.Collections; using Unity.Entities; using UnityEngine; public class TestBehavior : MonoBehaviour { private EntityManager _entityManager; private EntityQuery _entityQuery; private void Awake() { _entityManager = World.DefaultGame…

World.DefaultGameObjectInjectionWorld とは

バージョン Entities 0.6.0 Worldとは 必要な部分だけ抜き出すとこんな感じ public partial class World : IDisposable { public static World DefaultGameObjectInjectionWorld { get; set; } private EntityManager m_EntityManager; public string Name {…

Unity DOTSにおけるUnitTest

Test Runnerを開く Window -> General -> Test Runner でTest Runnerを開く フォルダを作成 EditModeタブでCreate EditMode Test Assembly Folderでテスト用のフォルダを作成 Testスクリプトを作成 Create Test Scripts in current folderでスクリプトを作成…

最初にEntityを1つ作る方法

public static class InitializeAnyEntity { [RuntimeInitializeOnLoadMethod] public static void CreateAnyEntity() { var entityManager = World.DefaultGameObjectInjectionWorld.EntityManager; entityManager.CreateEntity(/*ComponentDataを指定*/); }…