コード例 #1
0
ファイル: Entity.Handle.Create.cs プロジェクト: atoris/ecs
        public static ent Create(string prefabID, ModelComposer model, Vector3 position, bool pooled = false)
        {
            int  id;
            byte age = 0;

            if (ent.entityStackLength > 0)
            {
                var  pop    = ent.entityStack.Dequeue();
                byte ageOld = pop.age;
                id = pop.id;
                unchecked
                {
                    age = (byte)(ageOld + 1);
                }

                ent.entityStackLength--;
            }
            else
            {
                id = ent.lastID++;
            }

            var entity = new ent(id, age);

            Initialize(id, age, pooled);
            transforms[id] = pooled ? HelperFramework.SpawnInternal(Pool.Entities, prefabID, position) : HelperFramework.SpawnInternal(prefabID, position);
            model(entity, null);
            Delayed.Set(entity, 0, Delayed.Action.Activate);

            return(entity);
        }
コード例 #2
0
        internal void Launch(ModelComposer model)
        {
            int  id;
            byte age = 0;

            if (ent.entityStackLength > 0)
            {
                var  pop    = ent.entityStack.Dequeue();
                byte ageOld = pop.age;
                id = pop.id;
                unchecked
                {
                    age = (byte)(ageOld + 1);
                }

                ent.entityStackLength--;
            }
            else
            {
                id = ent.lastID++;
            }

                        #if UNITY_EDITOR
            _entity = id;
                        #endif

            entity = new ent(id, age);
            Entity.Initialize(id, age, isPooled);
            Entity.transforms[id] = transform;
            Setup();

            model(entity, this);
            Entity.Delayed.Set(entity, 0, Entity.Delayed.Action.Activate);
        }
コード例 #3
0
ファイル: Entity.Handle.Create.cs プロジェクト: atoris/ecs
        public static ent CreateFor(GameObject prefab, ModelComposer model, bool pooled = false)
        {
            int  id;
            byte age = 0;

            if (ent.entityStackLength > 0)
            {
                var  pop    = ent.entityStack.Dequeue();
                byte ageOld = pop.age;
                id = pop.id;
                unchecked
                {
                    age = (byte)(ageOld + 1);
                }

                ent.entityStackLength--;
            }
            else
            {
                id = ent.lastID++;
            }

            var entity = new ent(id, age);

            Initialize(id, age, pooled);
            transforms[id] = prefab.transform;
            model(entity, null);
            Delayed.Set(entity, 0, Delayed.Action.Activate);
            return(entity);
        }
コード例 #4
0
ファイル: Entity.Handle.Create.cs プロジェクト: atoris/ecs
        public static ent Create(ModelComposer model)
        {
            int  id;
            byte age = 0;

            if (ent.entityStackLength > 0)
            {
                var  pop    = ent.entityStack.Dequeue();
                byte ageOld = pop.age;
                id = pop.id;
                unchecked
                {
                    age = (byte)(ageOld + 1);
                }

                ent.entityStackLength--;
            }
            else
            {
                id = ent.lastID++;
            }

            var entity = new ent(id, age);

            Initialize(id, age);

            model(entity, null);
            Delayed.Set(entity, 0, Delayed.Action.Activate);

            return(entity);
        }
コード例 #5
0
 public ent Create(ModelComposer model)
 {
     processorEcs.Create(out var entity);
     model(entity);
     processorEcs.SetOperation(entity, -1, ProcessorEcs.Action.Activate);
     return(entity);
 }
コード例 #6
0
        public static ent Create(ModelComposer model)
        {
            int  id;
            byte age = 0;

            if (ent.entityStackLength > 0)
            {
                var  pop    = ent.entityStack.Dequeue();
                byte ageOld = pop.age;
                id = pop.id;
                unchecked
                {
                    age = (byte)(ageOld + 1);
                }

                ent.entityStackLength--;
            }
            else
            {
                id = ent.lastID++;
            }

            ent entity;

            entity.id  = id;
            entity.age = age;

            Initialize(id, age);

            model(entity);

            EntityOperations.Set(entity, -1, EntityOperations.Action.Activate);
            return(entity);
        }
コード例 #7
0
        public static ent Create(GameObject prefab, ModelComposer model, Vector3 position = default, bool pooled = false)
        {
            int  id;
            byte age = 0;

            if (ent.entityStackLength > 0)
            {
                var  pop    = ent.entityStack.Dequeue();
                byte ageOld = pop.age;
                id = pop.id;
                unchecked
                {
                    age = (byte)(ageOld + 1);
                }

                ent.entityStackLength--;
            }
            else
            {
                id = ent.lastID++;
            }


            ent entity;

            entity.id  = id;
            entity.age = age;

            Initialize(id, age, pooled);
            transforms[id] = pooled ? Obj.Spawn(Pool.Entities, prefab, position) : Obj.Spawn(prefab, position);
            model(entity);
            EntityOperations.Set(entity, -1, EntityOperations.Action.Activate);
            return(entity);
        }
コード例 #8
0
        public static Actor CreateFor(GameObject obj, ModelComposer model, bool pooled = false)
        {
            var actor = obj.transform.AddGetActor();

            actor.isPooled = pooled;
            actor.Launch(model);
            return(actor);
        }
コード例 #9
0
 public ent Create(string prefabID, ModelComposer model, Vector3 position = default, bool pooled = false)
 {
     processorEcs.Create(out var entity, pooled);
     entity.managed.transform = pooled ? layer.Obj.Create(Pool.Entities, prefabID, position) : layer.Obj.Create(prefabID, position);
     model(entity);
     processorEcs.SetOperation(entity, -1, ProcessorEcs.Action.Activate);
     return(entity);
 }
コード例 #10
0
 public ent CreateFor(GameObject go, ModelComposer model)
 {
     processorEcs.Create(out var entity, false);
     entity.managed.transform = go.transform;
     model(entity);
     processorEcs.SetOperation(entity, -1, ProcessorEcs.Action.Activate);
     return(entity);
 }
コード例 #11
0
 internal ent CreateForActor(Actor actor, ModelComposer model, bool pooled)
 {
     processorEcs.Create(out var entity, pooled);
     entity.managed.transform = actor.transform;
     model(entity);
     processorEcs.SetOperation(entity, -1, ProcessorEcs.Action.Activate);
     return(entity);
 }
コード例 #12
0
        public Actor Create(string prefabID, ModelComposer model, Vector3 position = default, bool pooled = false)
        {
            var transform = pooled ? layer.Obj.Create(Pool.Entities, prefabID, position) : layer.Obj.Create(prefabID, position);
            var actor     = transform.GetActor();

            actor.BootstrapCreated(layer, model);
            actor.entity.managed.isPooled = pooled;
            return(actor);
        }
コード例 #13
0
        public static Actor Create(string prefabID, ModelComposer model, bool pooled = false)
        {
            var tr    = pooled ? HelperFramework.SpawnInternal(Pool.Entities, prefabID) : HelperFramework.SpawnInternal(prefabID);
            var actor = tr.AddGetActor();

            actor.isPooled = pooled;
            actor.Launch(model);
            return(actor);
        }
コード例 #14
0
        public static Actor Create(GameObject prefab, ModelComposer model, Vector3 position, bool pooled = false)
        {
            var tr    = pooled ? HelperFramework.SpawnInternal(Pool.Entities, prefab, position) : HelperFramework.SpawnInternal(prefab, position);
            var actor = tr.AddGetActor();

            actor.isPooled = pooled;
            actor.Launch(model);
            return(actor);
        }
コード例 #15
0
        public static Actor Create(string prefabID, ModelComposer model, Vector3 position = default, bool pooled = false)
        {
            var tr    = pooled ? Obj.Spawn(Pool.Entities, prefabID, position) : Obj.Spawn(prefabID, position);
            var actor = tr.AddGetActor();

            actor.isPooled = pooled;
            actor.Launch(model);
            return(actor);
        }
コード例 #16
0
ファイル: ImplActor.cs プロジェクト: swordlegend/actors.unity
        public Actor Create(GameObject prefab, ModelComposer model, Vector3 position = default, bool pooled = false)
        {
            var transform = pooled ? layer.Obj.Create(Pool.Entities, prefab, position) : layer.Obj.Create(prefab, position);
            var actor     = transform.GetActor();

            //actor.isPooled = pooled;

            actor.BootstrapCreated(layer, model);
            return(actor);
        }
コード例 #17
0
ファイル: Actor.cs プロジェクト: iricwang/actors.unity
        internal void BootstrapCreated(Layer layer, ModelComposer model)
        {
            Layer = layer;
            if (!entity.exist)
            {
                entity = layer.Entity.CreateForActor(this, model, prefabReferenceName != string.Empty);
            }
#if UNITY_EDITOR
            _entity = entity.id;
#endif
            Setup();
            HandleEnable();
        }
コード例 #18
0
ファイル: Actor.cs プロジェクト: mofrison/actors.unity
        internal void BootstrapCreated(Layer layer, ModelComposer model)
        {
            Layer = layer;
            if (!entity.exist)
            {
                entity = layer.Entity.CreateForActor(this, model, isPooled);
            }
#if UNITY_EDITOR
            _entity = entity.id;
#endif
            Setup();
            HandleEnable();
        }
コード例 #19
0
        internal void Launch(ModelComposer model)
        {
            int  id;
            byte age = 0;

            if (ent.entityStackLength > 0)
            {
                var  pop    = ent.entityStack.Dequeue();
                byte ageOld = pop.age;
                id = pop.id;
                unchecked
                {
                    age = (byte)(ageOld + 1);
                }

                ent.entityStackLength--;
            }
            else
            {
                id = ent.lastID++;
            }

            entity.id  = id;
            entity.age = age;

                        #if UNITY_EDITOR
            _entity = id;
                        #if ACTORS_DEBUG
            var utils = GetComponent <ActorUtil>();
            if (utils == null)
            {
                utils = gameObject.AddComponent <ActorUtil>();
            }
            utils.Setup(entity, isActiveAndEnabled);
                        #endif
                        #endif

            Entity.Initialize(id, age, isPooled);
            Entity.transforms[id] = transform;
            model(entity);
            Setup();
            EntityOperations.Set(entity, -1, EntityOperations.Action.Activate);
        }