【问题标题】:how to make the rotation in clockwise direction如何使顺时针方向旋转
【发布时间】: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
}    
}

现在也开始旋转了,时间一到就突然停了,怎么弄的,像减速一样停

【问题讨论】:

    标签: rotation unity5


    【解决方案1】:

    替换此代码:

    transform.eulerAngles = new Vector3 (0.0f, 0.0f, angle + startAngle);
    

    在:

    transform.eulerAngles = new Vector3 (0.0f, 0.0f, startAngle - angle);
    

    【讨论】:

      【解决方案2】:

      我想你的问题的一个非常简单的解决方案是替换:

      transform.eulerAngles = new Vector3 (0.0f, 0.0f, angle + startAngle);
      

      与:

      transform.eulerAngles = new Vector3 (0.0f, 0.0f, -(angle + startAngle));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-08-19
        • 1970-01-01
        • 2012-05-16
        • 2012-05-09
        • 1970-01-01
        • 1970-01-01
        • 2015-09-29
        相关资源
        最近更新 更多