Esempio n. 1
0
    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);
    }