rabidus-test/Assets/LeanTween/Examples/Scripts/Following.cs

92 lines
3.8 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Following : MonoBehaviour {
public Transform planet;
public Transform followArrow;
public Transform dude1;
public Transform dude2;
public Transform dude3;
public Transform dude4;
public Transform dude5;
public Transform dude1Title;
public Transform dude2Title;
public Transform dude3Title;
public Transform dude4Title;
public Transform dude5Title;
private Color dude1ColorVelocity;
private Vector3 velocityPos;
private void Start()
{
followArrow.gameObject.LeanDelayedCall(3f, moveArrow).setOnStart(moveArrow).setRepeat(-1);
// Follow Local Y Position of Arrow
LeanTween.followDamp(dude1, followArrow, LeanProp.localY, 1.1f);
LeanTween.followSpring(dude2, followArrow, LeanProp.localY, 1.1f);
LeanTween.followBounceOut(dude3, followArrow, LeanProp.localY, 1.1f);
LeanTween.followSpring(dude4, followArrow, LeanProp.localY, 1.1f, -1f, 1.5f, 0.8f);
LeanTween.followLinear(dude5, followArrow, LeanProp.localY, 50f);
// Follow Arrow color
LeanTween.followDamp(dude1, followArrow, LeanProp.color, 1.1f);
LeanTween.followSpring(dude2, followArrow, LeanProp.color, 1.1f);
LeanTween.followBounceOut(dude3, followArrow, LeanProp.color, 1.1f);
LeanTween.followSpring(dude4, followArrow, LeanProp.color, 1.1f, -1f, 1.5f, 0.8f);
LeanTween.followLinear(dude5, followArrow, LeanProp.color, 0.5f);
// Follow Arrow scale
LeanTween.followDamp(dude1, followArrow, LeanProp.scale, 1.1f);
LeanTween.followSpring(dude2, followArrow, LeanProp.scale, 1.1f);
LeanTween.followBounceOut(dude3, followArrow, LeanProp.scale, 1.1f);
LeanTween.followSpring(dude4, followArrow, LeanProp.scale, 1.1f, -1f, 1.5f, 0.8f);
LeanTween.followLinear(dude5, followArrow, LeanProp.scale, 5f);
// Titles
var titleOffset = new Vector3(0.0f, -20f, -18f);
LeanTween.followDamp(dude1Title, dude1, LeanProp.localPosition, 0.6f).setOffset(titleOffset);
LeanTween.followSpring(dude2Title, dude2, LeanProp.localPosition, 0.6f).setOffset(titleOffset);
LeanTween.followBounceOut(dude3Title, dude3, LeanProp.localPosition, 0.6f).setOffset(titleOffset);
LeanTween.followSpring(dude4Title, dude4, LeanProp.localPosition, 0.6f, -1f, 1.5f, 0.8f).setOffset(titleOffset);
LeanTween.followLinear(dude5Title, dude5, LeanProp.localPosition, 30f).setOffset(titleOffset);
// Rotate Planet
var localPos = Camera.main.transform.InverseTransformPoint(planet.transform.position);
LeanTween.rotateAround(Camera.main.gameObject, Vector3.left, 360f, 300f).setPoint(localPos).setRepeat(-1);
}
private float fromY;
private float velocityY;
private Vector3 fromVec3;
private Vector3 velocityVec3;
private Color fromColor;
private Color velocityColor;
private void Update()
{
// Use the smooth methods to follow variables in which ever manner you wish!
fromY = LeanSmooth.spring(fromY, followArrow.localPosition.y, ref velocityY, 1.1f);
fromVec3 = LeanSmooth.spring(fromVec3, dude5Title.localPosition, ref velocityVec3, 1.1f);
fromColor = LeanSmooth.spring(fromColor, dude1.GetComponent<Renderer>().material.color, ref velocityColor, 1.1f);
Debug.Log("Smoothed y:" + fromY + " vec3:" + fromVec3 + " color:" + fromColor);
}
private void moveArrow()
{
LeanTween.moveLocalY(followArrow.gameObject, Random.Range(-100f, 100f), 0f);
var randomCol = new Color(Random.value, Random.value, Random.value);
LeanTween.color(followArrow.gameObject, randomCol, 0f);
var randomVal = Random.Range(5f, 10f);
followArrow.localScale = Vector3.one * randomVal;
}
}