/// <summary> /// Define FactorData separate of the MonoBehavior component. This lets us test/simulate outside of Unity more easily. /// </summary> /// <param name="values">Just use new FactorData(params)</param> /// <returns>The component created on a new game object</returns> private EnvFactor AddNewEnvironmentFactor(FactorData values) { GameObject go = new GameObject(); EnvFactor newFactor = go.AddComponent <EnvFactor>(); go.transform.SetParent(transform); newFactor.AssignFactorData(values); return(newFactor); }
private void RegisterNewEnvironmentFactor(FactorData newFactor) { EnvFactor newEnvFactor = AddNewEnvironmentFactor(newFactor); //We track the dictionary for easy references factors.Add(newFactor.Key, newEnvFactor); //But we also have two lists to make it cheaper to iterate. Iterating over a dictionary is very expensive. FactorNames.Add(newFactor.Key); AllFactors.Add(newEnvFactor); }