public static SecondaryColorSource LerpInstantiate(ColorSource parent1, ColorSource parent2, float t, Transform parentTransform) { SecondaryColorSource lerpedColorSource = Instantiate(Resources.Load <SecondaryColorSource>("Secondary Color Source Template"), parentTransform); lerpedColorSource.Parent1 = parent1; lerpedColorSource.Parent2 = parent2; lerpedColorSource.LerpOnParents(t); return(lerpedColorSource); }
public void RegisterColorSource(ColorSource colorSource) { if (colorSource is SecondaryColorSource) { return; } foreach (ColorSource otherColorSource in PrimaryColorSources) { SecondaryColorSources.Add(SecondaryColorSource.LerpInstantiate(colorSource, otherColorSource, 0.5F, this.transform)); } PrimaryColorSources.Add(colorSource); }
public void UnregisterColorSource(ColorSource colorSource) { if (colorSource is SecondaryColorSource) { SecondaryColorSources.Remove(colorSource); return; } for (int i = 0; i < SecondaryColorSources.Count; ++i) { SecondaryColorSource current = SecondaryColorSources[i] as SecondaryColorSource; if (current.Parent1 == colorSource || current.Parent2 == colorSource) { Destroy(current.gameObject); } } SecondaryColorSources.RemoveAll(secondaryCS => (secondaryCS as SecondaryColorSource).Parent1 == colorSource || (secondaryCS as SecondaryColorSource).Parent2 == colorSource); PrimaryColorSources.Remove(colorSource); }