【发布时间】:2016-10-31 09:14:17
【问题描述】:
我已经创建了一个轮子并添加了旋转现在它沿逆时针方向旋转,如何使它沿顺时针方向旋转
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class Rotate : MonoBehaviour {
public List<int> prize;
public List<AnimationCurve> animationCurves;
private bool spinning;
private float anglePerItem;
private int randomTime;
private int itemNumber;
void Start(){
spinning = false;
anglePerItem = 360/prize.Count;
}
void Update ()
{
if (Input.GetKeyDown (KeyCode.Space) && !spinning) {
randomTime = Random.Range (5, 10);
itemNumber = Random.Range (0, prize.Count);
float maxAngle = 360 * randomTime + (itemNumber * anglePerItem);
StartCoroutine (SpinTheWheel (1 * randomTime, maxAngle));
}
}
IEnumerator SpinTheWheel (float time, float maxAngle)
{
spinning = true;
float timer = 0.0f;
float startAngle = transform.eulerAngles.z;
maxAngle = maxAngle - startAngle;
int animationCurveNumber = Random.Range (0, animationCurves.Count);
Debug.Log ("Animation Curve No. : " + animationCurveNumber);
while (timer < time) {
//to calculate rotation
float angle = maxAngle * animationCurves [animationCurveNumber].Evaluate (timer / time) ;
transform.eulerAngles = new Vector3 (0.0f, 0.0f, angle + startAngle);
timer += Time.deltaTime;
yield return 0;
}
transform.eulerAngles = new Vector3 (0.0f, 0.0f, maxAngle + startAngle);
spinning = false;
Debug.Log ("Prize: " + prize [itemNumber]);//use prize[itemNumnber] as per requirement
}
}
现在也开始旋转了,时间一到就突然停了,怎么弄的,像减速一样停
【问题讨论】: