5 using System.Collections.Generic;
23 public enum AlignmentTypes { None, TopLeft, Top, TopRight, CenterLeft, Center, CenterRight, BottomLeft, Bottom, BottomRight }
25 [Tooltip(
"Where to set this object's center point in relation to the Anchor's center point")]
28 [Tooltip(
"A pixel to Unity unit conversion, Default: 2048x2048 pixels covers a 1x1 Unity Unit or default primitive size")]
29 public float BasePixelSize = 2048;
31 [Tooltip(
"The transform this object should be linked and aligned to")]
34 [Tooltip(
"Offset this object's position based on the same pixel based size ratio")]
37 [Tooltip(
"Ignore the anchor's z scaling when positioning this object")]
50 Anchor = this.transform;
59 mAnchorScale = Anchor.localScale;
60 mAnchorPosition = Anchor.localPosition;
71 Vector3 horizontalVector = Vector3.right;
72 Vector3 verticalVector = Vector3.up;
73 Vector3 startPosition = mAnchorPosition;
76 float xMagnitude = AnchorOffset.x / BasePixelSize;
77 float yMagnitude = AnchorOffset.y / BasePixelSize;
78 float zMagnitude = AnchorOffset.z / BasePixelSize;
84 Vector3 newPosition = startPosition + horizontalVector * xMagnitude + verticalVector * yMagnitude + Vector3.forward * zMagnitude;
85 transform.localPosition = newPosition;
93 horizontalVector = Vector3.right;
94 verticalVector = Vector3.down;
95 startPosition.x = mAnchorPosition.x - mAnchorScale.x * 0.5f;
96 startPosition.y = mAnchorPosition.y + mAnchorScale.y * 0.5f;
99 horizontalVector = Vector3.right;
100 verticalVector = Vector3.down;
101 startPosition.x = mAnchorPosition.x;
102 startPosition.y = mAnchorPosition.y + mAnchorScale.y * 0.5f;
105 horizontalVector = Vector3.left;
106 verticalVector = Vector3.down;
107 startPosition.x = mAnchorPosition.x + mAnchorScale.x * 0.5f;
108 startPosition.y = mAnchorPosition.y + mAnchorScale.y * 0.5f;
111 horizontalVector = Vector3.right;
112 verticalVector = Vector3.up;
113 startPosition.x = mAnchorPosition.x - mAnchorScale.x * 0.5f;
114 startPosition.y = mAnchorPosition.y;
117 horizontalVector = Vector3.right;
118 verticalVector = Vector3.up;
119 startPosition.x = mAnchorPosition.x;
120 startPosition.y = mAnchorPosition.y;
123 horizontalVector = Vector3.left;
124 verticalVector = Vector3.up;
125 startPosition.x = mAnchorPosition.x + mAnchorScale.x * 0.5f;
126 startPosition.y = mAnchorPosition.y;
129 horizontalVector = Vector3.right;
130 verticalVector = Vector3.up;
131 startPosition.x = mAnchorPosition.x - mAnchorScale.x * 0.5f;
132 startPosition.y = mAnchorPosition.y - mAnchorScale.y * 0.5f;
135 horizontalVector = Vector3.right;
136 verticalVector = Vector3.up;
137 startPosition.x = mAnchorPosition.x;
138 startPosition.y = mAnchorPosition.y - mAnchorScale.y * 0.5f;
141 horizontalVector = Vector3.left;
142 verticalVector = Vector3.up;
143 startPosition.x = mAnchorPosition.x + mAnchorScale.x * 0.5f;
144 startPosition.y = mAnchorPosition.y - mAnchorScale.y * 0.5f;
153 startPosition.z = mAnchorPosition.z - mAnchorScale.z * 0.5f;
156 transform.localPosition = startPosition + horizontalVector * xMagnitude + verticalVector * yMagnitude + Vector3.forward * zMagnitude;