public void spawn(ref float3 position, ref quaternion rotation, ref RandomLocal random, ref AtomicFloatResource float_resource) { var entity_manager = Unity.Entities.World.Active.GetOrCreateManager <Unity.Entities.EntityManager>(); var entity = entity_manager.CreateEntity(archetype_); entity_manager.SetComponentData(entity, new Position { Value = position, }); entity_manager.SetComponentData(entity, new Rotation { Value = rotation, }); entity_manager.SetComponentData(entity, new RigidbodyRotation(10f /* damper */)); entity_manager.SetComponentData(entity, random.create()); entity_manager.SetComponentData(entity, new SphereCollider { offset_position_ = new float3(0f, 0f, 0f), radius_ = 1f, }); entity_manager.SetComponentData(entity, AlivePeriod.Create(Time.GetCurrent(), 6f /* period */)); var enemy = Enemy.Create(ref float_resource); entity_manager.SetComponentData(entity, enemy); entity_manager.SetComponentData(entity, new Zako { target_position_ = new float3(random.range(-20f, 20f), random.range(-20f, 20f), 0f), }); entity_manager.SetComponentData(entity, new MeshRenderBounds { Center = new float3(0f, 0f, 0f), Radius = 0.5f, }); var renderer = new MeshInstanceRenderer { mesh = mesh_, material = material_, subMesh = 0, castShadows = UnityEngine.Rendering.ShadowCastingMode.On, receiveShadows = true, }; entity_manager.SetSharedComponentData(entity, renderer); for (var i = 0; i < locktarget_list_.Length; ++i) { LockTargetManager.CreateEntity(entity_manager, locktarget_list_[i].localPosition, locktarget_list_[i].localRotation, ref enemy.life_, entity, ref random); } }
void spawn(ref LockTarget lt, ref float3 pos, ref quaternion rot, ref RandomLocal random, int i, Entity entity, float arrive_period) { ECSLaserManager.spawn(command_buffer_, ref lt, ref pos, ref rot, ref random, i, entity, arrive_period); }
public static void spawn(EntityCommandBuffer.Concurrent command_buffer, ref LockTarget lt, ref float3 position, ref quaternion rotation, ref RandomLocal random, int index, Entity target, float arrive_period) { Instance.spawn_internal(command_buffer, ref lt, ref position, ref rotation, ref random, index, target, arrive_period); }
protected override void OnCreateManager(int capacity) { base.OnCreateManager(capacity); random_ = RandomMaker.create(); enumerator_ = act(); }