Files
gpd-924-en/UnityMultithreading/Assets/Scripts/Animations/ThreadAnimation.cs
T

36 lines
1.0 KiB
C#

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();
}
}
}