ObjectPlacementBlockAutomaticRandomHeightAdjuster.cs 1.4 KB

123456789101112131415161718192021222324252627
  1. #if UNITY_EDITOR
  2. using UnityEngine;
  3. using System.Collections.Generic;
  4. namespace O3DWB
  5. {
  6. public class ObjectPlacementBlockAutomaticRandomHeightAdjuster
  7. {
  8. #region Public Methods
  9. public void AdjustHeightForSegments(List<ObjectPlacementBoxStackSegment> segments, int indexOfFirstSegmentToAdjust, int indexOfFirstStackToAdjust, ObjectPlacementBlockAutomaticRandomHeightAdjustmentSettings automaticRandomHeightAdjustmentSettings)
  10. {
  11. for (int segmentIndex = indexOfFirstSegmentToAdjust; segmentIndex < segments.Count; ++segmentIndex)
  12. {
  13. AdjustSegmentHeight(segments[segmentIndex], indexOfFirstStackToAdjust, automaticRandomHeightAdjustmentSettings);
  14. }
  15. }
  16. public void AdjustSegmentHeight(ObjectPlacementBoxStackSegment segment, int indexOfFirstStackToAdjust, ObjectPlacementBlockAutomaticRandomHeightAdjustmentSettings automaticRandomHeightAdjustmentSettings)
  17. {
  18. Range<int> randomValueRange = new Range<int>(automaticRandomHeightAdjustmentSettings.MinHeight, automaticRandomHeightAdjustmentSettings.MaxHeight);
  19. int numberOfStacksToAdjust = segment.NumberOfStacks - indexOfFirstStackToAdjust;
  20. segment.SetHeightForStacksStartingAt(indexOfFirstStackToAdjust, RandomValueGeneration.GenerateIntRandomValuesInRange(randomValueRange, numberOfStacksToAdjust));
  21. }
  22. #endregion
  23. }
  24. }
  25. #endif