| | 1 | | using UnityEngine; |
| | 2 | |
|
| | 3 | | namespace DCL.Components |
| | 4 | | { |
| | 5 | | [System.Serializable] |
| | 6 | | public struct UIValue |
| | 7 | | { |
| | 8 | | public enum Unit |
| | 9 | | { |
| | 10 | | PERCENT, |
| | 11 | | PIXELS |
| | 12 | | } |
| | 13 | |
|
| | 14 | | public float value; |
| | 15 | | public Unit type; |
| | 16 | |
|
| | 17 | | public void SetPixels(float value) |
| | 18 | | { |
| 0 | 19 | | this.type = Unit.PIXELS; |
| 0 | 20 | | this.value = value; |
| 0 | 21 | | } |
| | 22 | |
|
| | 23 | | public void SetPercent(float value) |
| | 24 | | { |
| 0 | 25 | | this.type = Unit.PERCENT; |
| 0 | 26 | | this.value = value; |
| 0 | 27 | | } |
| | 28 | |
|
| | 29 | | public UIValue(float value, Unit unitType = Unit.PIXELS) |
| | 30 | | { |
| 2752 | 31 | | this.value = value; |
| 2752 | 32 | | this.type = unitType; |
| 2752 | 33 | | } |
| | 34 | |
|
| | 35 | | public float GetScaledValue(float parentSize) |
| | 36 | | { |
| 1024 | 37 | | if (type == Unit.PIXELS) |
| 925 | 38 | | return value; |
| | 39 | |
|
| | 40 | | // Prevent division by zero |
| 99 | 41 | | if (parentSize <= Mathf.Epsilon) |
| 0 | 42 | | parentSize = 1; |
| | 43 | |
|
| 99 | 44 | | return value / 100 * parentSize; |
| | 45 | | } |
| | 46 | | } |
| | 47 | | } |