9 [RequireComponent(typeof(MeshFilter))]
18 private GameObject target;
23 public GameObject Target
47 return connectorFollowType;
52 connectorFollowType = value;
83 return pivotDirection;
88 pivotDirection = value;
101 return pivotDirectionOrient;
106 pivotDirectionOrient = value;
111 private Vector3 manualPivotDirection = Vector3.up;
115 public Vector3 ManualPivotDirection
119 return manualPivotDirection;
124 manualPivotDirection = value;
129 private Vector3 manualPivotLocalPosition = Vector3.up;
133 public Vector3 ManualPivotLocalPosition
137 return manualPivotLocalPosition;
142 manualPivotLocalPosition = value;
148 private float pivotDistance = 0.25f;
152 public float PivotDistance
156 return pivotDistance;
160 pivotDistance = Mathf.Min( 2.0f, Mathf.Max( 0,value));
164 private void OnEnable()
171 ManualPivotLocalPosition = transform.InverseTransformPoint (toolTip.
PivotPosition);
174 private bool FindToolTip()
176 toolTip = gameObject.EnsureComponent<
ToolTip>();
177 return toolTip != null;
180 private void UpdatePosition()
192 switch (connectorFollowType)
198 toolTip.
Anchor.transform.position = Target.transform.position;
203 toolTip.transform.position = Target.transform.position;
204 switch (PivotingMode)
207 Transform relativeTo = null;
208 switch (PivotDirectionOrient)
211 relativeTo = Camera.main.transform;
215 relativeTo = Target.transform;
218 toolTip.
PivotPosition = Target.transform.position + GetDirectionFromPivotDirection(
220 ManualPivotDirection,
221 relativeTo) * PivotDistance;
233 toolTip.transform.position = Target.transform.position;
234 Vector3 eulerAngles = Target.transform.eulerAngles;
237 toolTip.transform.eulerAngles = eulerAngles;
238 switch (PivotingMode)
241 Transform relativeTo = null;
242 switch (PivotDirectionOrient)
245 relativeTo = Camera.main.transform;
249 relativeTo = Target.transform;
252 Vector3 localPosition = GetDirectionFromPivotDirection(PivotDirection, ManualPivotDirection, relativeTo) * PivotDistance;
253 toolTip.
PivotPosition = Target.transform.position + localPosition;
265 toolTip.transform.position = Target.transform.position;
266 toolTip.transform.rotation = Target.transform.rotation;
267 switch (PivotingMode)
270 Transform relativeTo = null;
271 switch (PivotDirectionOrient)
274 relativeTo = Camera.main.transform;
278 relativeTo = Target.transform;
281 toolTip.
PivotPosition = Target.transform.position + GetDirectionFromPivotDirection(
283 ManualPivotDirection,
284 relativeTo) * PivotDistance;
295 private void Update()
300 private void OnDrawGizmos()
302 if (Application.isPlaying)
319 Vector3 dir = Vector3.zero;
320 switch (pivotDirection)
327 dir = Vector3.Lerp(Vector3.up, Vector3.right, 0.5f).normalized;
335 dir = Vector3.Lerp(Vector3.down, Vector3.right, 0.5f).normalized;
343 dir = Vector3.Lerp(Vector3.down, Vector3.left, 0.5f).normalized;
351 dir = Vector3.Lerp(Vector3.up, Vector3.left, 0.5f).normalized;
355 dir = Vector3.forward;
359 dir = manualPivotDirection.normalized;
363 return relativeTo.TransformDirection(dir);