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); }
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); }