private void spawnTargetEntity(float x, float y, float z) { var info = new TurretInfo(); info.definition = turret; info.facing = transform.forward; info.position = new float3(x, y, z); TurretInstantiator.instantiate(team, info, null); }
private Entity instantiate(Entity template) { var entityManager = World.Active.EntityManager; var entity = entityManager.Instantiate(template); entityManager.SetComponentData( entity, new Translation { Value = transform.TransformPoint(0, 0, 0) } ); entityManager.SetComponentData( entity, new Rotation { Value = transform.rotation } ); TeamTag tag = unitDef.team.toComponent(); entityManager.SetComponentData( entity, new PhysicsVelocity { Linear = unitDef.initialVelocity } ); tag.AssignToEntity(entityManager, entity); var baseRotation = entityManager.GetComponentData <Rotation>(entity); foreach (TurretInfo turret in unitDef.turretPositionInfo) { Entity turretEntity = TurretInstantiator.instantiate(unitDef.team, turret, baseRotation); entityManager.AddComponent(turretEntity, typeof(LocalToParent)); entityManager.AddComponent(turretEntity, typeof(Parent)); entityManager.SetComponentData <Parent>(turretEntity, new Parent { Value = entity }); } return(entity); }
void Start() { TurretInstantiator.instantiate(team, definition, null); }