Esempio n. 1
0
    public void TryAutomaticGrowingSettings()
    {
        Hirarchy hirarchy = GetHirarchy(transform);

        while (true)
        {
            List <GrowingPart> currentGrowingParts = hirarchy.NextParts();

            for (int index = 0; index < currentGrowingParts.Count; index++)
            {
                var currentPart = currentGrowingParts[index];
                currentPart.currentBaseStateIndex = StateOrder.Count;
                currentPart.UpdateMinMaxTime(this);

                currentPart.startTime = currentPart.minTime +
                                        hirarchy.CurrentProzent * (currentPart.maxTime - currentPart.minTime);

                currentPart.endTime = currentPart.startTime +
                                      hirarchy.ProzentPerPart * (currentPart.maxTime - currentPart.minTime);

#if UNITY_EDITOR
                EditorUtility.SetDirty(currentPart);
#endif
            }

            if (hirarchy.IsLast)
            {
                break;
            }
        }
    }
Esempio n. 2
0
    public Hirarchy GetHirarchy(Transform trans)
    {
        Hirarchy hirarchy = new Hirarchy();

        AddPartsForLevel(trans, hirarchy, 0);

        return(hirarchy);
    }
Esempio n. 3
0
    public void AddPartsForLevel(Transform searchTransform, Hirarchy hirarchy, int index)
    {
        int nextIndex = index;

        foreach (Transform childTransform in searchTransform)
        {
            if (childTransform.GetComponent <GrowingPart>())
            {
                if (nextIndex == index)
                {
                    nextIndex++;
                }

                hirarchy.AddPart(childTransform.GetComponent <GrowingPart>(), index);
            }

            AddPartsForLevel(childTransform, hirarchy, nextIndex);
        }
    }