MIF_E31222569/Assets/ToothyV/GUIPackCartoon/Demo/Scripts/SpinWheel.cs

46 lines
1.4 KiB
C#

// Copyright (C) 2015 ricimi - All rights reserved.
// This code can only be used under the standard Unity Asset Store End User License Agreement.
// A Copy of the Asset Store EULA is available at http://unity3d.com/company/legal/as_terms.
using System.Collections;
using UnityEngine;
namespace Ricimi
{
// This class manages the rotation of the example spin wheel in the demo.
public class SpinWheel : MonoBehaviour
{
// This animation curve drives the spin wheel motion.
public AnimationCurve AnimationCurve;
private bool m_spinning = false;
public void Spin()
{
if (!m_spinning)
StartCoroutine(DoSpin());
}
private IEnumerator DoSpin()
{
m_spinning = true;
var timer = 0.0f;
var startAngle = transform.eulerAngles.z;
var time = 3.0f;
var maxAngle = 270.0f;
while (timer < time)
{
var angle = AnimationCurve.Evaluate(timer / time) * maxAngle;
transform.eulerAngles = new Vector3(0.0f, 0.0f, angle + startAngle);
timer += Time.deltaTime;
yield return new WaitForEndOfFrame();
}
transform.eulerAngles = new Vector3(0.0f, 0.0f, maxAngle + startAngle);
m_spinning = false;
}
}
}