public void createMachine(string machineName, params GOFactoryOption[] options) { if (machineName != "") { if (!machines.ContainsKey(machineName)) { var m = new GOFactoryMachine(); m.MachineName = machineName; m.Factory = this; machines.Add(machineName, m); setMachineOptions(m, options); } else { Debug.LogError("[GOF]There is already a machine responsible for prefabs with this name : " + machineName + ". Please call 'configureMachine' if you want to change its configuration."); } } }
private void setMachineOptions(GOFactoryMachine m, params GOFactoryOption[] options) { int preInstant = 0; foreach (GOFactoryOption option in options) { switch (option.type) { case GOFactoryOptionEnum.position: m.DefaultPos = option.v3; break; case GOFactoryOptionEnum.prefab: m.Prefab = option.obj; break; case GOFactoryOptionEnum.inactiveLifeSpan: m.InactiveLifeSpan = option.f; break; case GOFactoryOptionEnum.lifeSpan: m.LifeSpan = option.f; break; case GOFactoryOptionEnum.preInstantiate: preInstant = option.i; break; default: break; } } if (preInstant > 0) { preInstantiate(m.MachineName, preInstant); } }