private void Start() { m = World.Active.EntityManager; LinkedEntityGroup group = new LinkedEntityGroup(); en1 = CraftEntity(new float3(Random.Range(-1f, 1f), 0, Random.Range(-1f, 1f))); en2 = CraftSphere(new float3(Random.Range(-1f, 1f), 0, Random.Range(-1f, 1f))); parent.onClick.AddListener(MergeEntitiesTogether(en1, en2)); move.onClick.AddListener(MoveEntities()); destroy.onClick.AddListener(delegate { m.DestroyEntity(en1); }); }
void CreatePlayerHitboxes(Entity player, EntityManager entityManager, int size) { var archetype = entityManager.CreateArchetype( typeof(Translation), typeof(Parent), typeof(Scale), typeof(LocalToParent), typeof(LocalToWorld), typeof(Hitbox), typeof(HitboxState)); var group = new NativeArray <LinkedEntityGroup>(size, Allocator.Temp); for (byte i = 0; i < size; i++) { var entity = entityManager.CreateEntity(archetype); entityManager.AddComponentData(entity, new Scale { Value = 1.0f }); entityManager.AddComponentData(entity, new Hitbox { Radius = 1, }); entityManager.AddComponentData(entity, new Parent { Value = player }); entityManager.AddComponentData(entity, new HitboxState { Player = player, ID = i, PlayerID = this.PlayerID, Enabled = false }); group[i] = new LinkedEntityGroup { Value = entity }; #if UNITY_EDITOR entityManager.SetName(entity, $"{name}, Hitbox {i + 1}"); #endif } entityManager.AddBuffer <LinkedEntityGroup>(player).AddRange(group); }