Build TravelRun intro and tutorial flow
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class FlowIntroFloatMotion : MonoBehaviour
|
||||
{
|
||||
public Vector2 amplitude = Vector2.zero;
|
||||
public Vector2 frequency = Vector2.one;
|
||||
public float phase = 0f;
|
||||
public float scalePulse = 0f;
|
||||
|
||||
private RectTransform rectTransform;
|
||||
private Vector2 basePosition;
|
||||
private Vector3 baseScale;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
rectTransform = GetComponent<RectTransform>();
|
||||
if(rectTransform != null)
|
||||
{
|
||||
basePosition = rectTransform.anchoredPosition;
|
||||
baseScale = rectTransform.localScale;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
if(rectTransform == null)
|
||||
{
|
||||
rectTransform = GetComponent<RectTransform>();
|
||||
}
|
||||
|
||||
if(rectTransform != null)
|
||||
{
|
||||
basePosition = rectTransform.anchoredPosition;
|
||||
baseScale = rectTransform.localScale;
|
||||
}
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if(rectTransform == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
float time = Time.unscaledTime + phase;
|
||||
Vector2 offset = new Vector2(
|
||||
Mathf.Sin(time * frequency.x) * amplitude.x,
|
||||
Mathf.Sin(time * frequency.y) * amplitude.y);
|
||||
|
||||
rectTransform.anchoredPosition = basePosition + offset;
|
||||
|
||||
if(scalePulse > 0f)
|
||||
{
|
||||
float scale = 1f + (Mathf.Sin(time * 5.2f) * scalePulse);
|
||||
rectTransform.localScale = baseScale * scale;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user