using System.Threading; using UnityEngine; namespace Animations { public class ThreadAnimation : MonoBehaviour { private void Start() { // CAUTION: you can not access Unity Objects from a thread which is not the main thread, e.g. transforms // WARNING: never ever put the main thread to sleep // Thread thread = new Thread(() => // { float time = 0.0f; // move while (time < 1.0f) { transform.position = Vector3.Lerp(Vector3.zero, Vector3.forward * 5.0f, time); Thread.Sleep(100); time += 0.1f; } // scale time = 0.0f; while (time < 1.0f) { transform.localScale = Vector3.Lerp(Vector3.one, Vector3.one * 2.0f, time); Thread.Sleep(100); time += 0.1f; } // }); // thread.Start(); } } }