16 [Tooltip(
"The object's distance to scale against, default: Main Camera")]
19 [Tooltip(
"The object to scale")]
22 [Tooltip(
"A game object that contains an Interactive to handle air taps")]
25 [Tooltip(
"How far away should the object be at 100%")]
26 public float ScaleDistance = 1;
28 [Tooltip(
"Auto start? or status")]
31 [Tooltip(
"scaling speed : higher is faster")]
32 public float ScaleSpeed = 3;
34 [Tooltip(
"Minimum scale")]
35 public float MinimumScale = 0.3f;
38 private Vector3 mStartScale;
40 private float mCurrentScale = 1;
42 private float mDeltaScale;
44 private float mStartDistance;
51 if (TargetObject == null)
53 TargetObject = this.gameObject;
56 if (ReferenceObject == null)
67 mStartScale = TargetObject.transform.localScale;
68 mStartDistance = Vector3.Distance(TargetObject.transform.position, ReferenceObject.transform.position);
73 mCurrentScale = mDeltaScale;
76 if (ReferenceInteractive != null)
88 if (ReferenceInteractive != null)
100 float ratio = (Vector3.Distance(TargetObject.transform.position, ReferenceObject.transform.position) - mStartDistance) / ScaleDistance;
101 mDeltaScale = Mathf.Max(mCurrentScale + ratio, MinimumScale);
102 Vector3 targetScale = mStartScale * mDeltaScale;
103 TargetObject.transform.localScale = Vector3.Lerp(TargetObject.transform.localScale, targetScale, Time.deltaTime * ScaleSpeed);