Пример #1
0
    private List <PetalLocalData> DistributePetalLocalData(FlowerLocalData flower, PetalData petalData)
    {
        List <PetalLocalData> dataList = new List <PetalLocalData>();

        int PetalLayerCount = flower.PetalLayerCount;

        int[] PetalCounts          = flower.PetalCounts;
        float PetalMinClosedTime   = petalData.MinClosedTime;
        float PetalMaxClosedTime   = petalData.MaxClosedTime;
        float PetalMinOpenTime     = petalData.MinOpenTime;
        float PetalMaxOpenTime     = petalData.MaxOpenTime;
        float PetalRandomTimeValue = petalData.RandomTimeValue;

        for (int i = 0; i < flower.PetalLayerCount; i++)
        {
            float petalLayerClosedTime = (PetalMaxClosedTime - PetalMinClosedTime) / PetalLayerCount * i + PetalMinClosedTime;
            float petalLayerOpenTime   = (PetalMaxOpenTime - PetalMinOpenTime) / PetalLayerCount * i + PetalMinOpenTime;
            for (int j = 0; j < flower.PetalCounts[i]; j++)
            {
                PetalLocalData petalLocalData = new PetalLocalData();

                float RandomValue = Util.RandomRange(PetalRandomTimeValue);

                petalLocalData.Rotation   = (360 / PetalCounts[i] * j) + i * 30;
                petalLocalData.PetalLayer = i;
                petalLocalData.PetalIndex = j;
                petalLocalData.StartTime  = petalLayerClosedTime + RandomValue;
                petalLocalData.EndTime    = petalLayerOpenTime + RandomValue;
                petalLocalData.Color      = flower.PetalColor;

                dataList.Add(petalLocalData);
            }
        }
        return(dataList);
    }
Пример #2
0
    private FlowerLocalData DistributeFlowerLocalData(PetalData petalData, ColorData colorData)
    {
        FlowerLocalData data = new FlowerLocalData();

        Vector2Int petalLayerCountRange = petalData.PetalLayerCountRange;
        Vector2Int petalCountRange      = petalData.PetalCountRange;

        int tempPetalLayerCount = UnityEngine.Random.Range(petalLayerCountRange.x, petalLayerCountRange.y + 1);

        data.PetalLayerCount     = tempPetalLayerCount;
        data.PetalCounts         = Util.DistributeRandomIntArray(tempPetalLayerCount, petalCountRange);
        data.TotalPetalCount     = Util.SumArray(data.PetalCounts);
        data.PetalFallPercentage = petalData.FallPercentage;
        data.PetalColor          = !colorData.isRandom ? colorData.Color : Util.GetColorFromRange(colorData.ColorRange1, colorData.ColorRange2);


        return(data);
    }