public static Entity CreateEntity(EntityManager entity_manager, UnityEngine.Vector3 localPos, UnityEngine.Quaternion localRot, ref AtomicFloat life, Entity parent_entity, ref RandomLocal random) { var entity = entity_manager.CreateEntity(archetype_); entity_manager.SetComponentData(entity, LockTarget.Create(ref life)); entity_manager.SetComponentData(entity, new Position { Value = localPos, }); entity_manager.SetComponentData(entity, new Rotation { Value = localRot, }); entity_manager.SetComponentData(entity, random.create()); var attach_entity = entity_manager.CreateEntity(typeof(Attach)); entity_manager.SetComponentData(attach_entity, new Attach { Parent = parent_entity, Child = entity, }); return(entity); }
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); } }
public static RandomLocal create() { return(base_random_.create()); }