Beispiel #1
0
 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.");
         }
     }
 }
Beispiel #2
0
        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);
            }
        }