2017-01-03 27 views
-1
  • 我有一个10级的旋转轮。如何提高纺车转速时的转速一致

  • 旋转从按钮单击的随机位置开始。我不想在第10师停止旋转轮。

    void Start() 
    { 
    Panel = GameObject.FindGameObjectWithTag("Panel1"); 
    Panel.SetActive (false); 
    
    maxAngle = Random.Range (1440.0f, 3600.0f); 
    //print("maxAngle"+maxAngle); 
    spinning = false; 
    anglePerItem = 360/prize.Count; 
    myStartAngle = (maxAngle % 360)*2; 
    //print("myStartAngle"+myStartAngle); 
    transform.eulerAngles = new Vector3 (0.0f, 0.0f, myStartAngle); 
    
    } 
    
    
    
    public void Onclick() 
    { 
    
    if (!spinning) { 
    
        randomTime = Random.Range (20, 25); 
        itemNumber = Random.Range (1, prize.Count); 
        //float maxAngle = 360 * randomTime + (itemNumber * anglePerItem); 
    // float maxAngle = 360; 
        StartCoroutine (SpinTheWheel (1 * randomTime, maxAngle)); 
    } 
    } 
    
    
    IEnumerator SpinTheWheel (float time, float maxAngle) 
    { 
    spinning = true; 
    
    SpinsEligibleFrSpinner = PlayerPrefs.GetInt ("SpinsEligibleFrSpinner"); 
    SpinsEligibleFrSpinner = SpinsEligibleFrSpinner - 1; 
    PlayerPrefs.SetInt ("SpinsEligibleFrSpinner",SpinsEligibleFrSpinner); 
    
    float timer = 0.0f;   
    
    float startAngle =myStartAngle; 
    
    
    int animationCurveNumber = 0; 
    
    int i=0; 
    while (timer < time) { 
        //to calculate rotation 
    
        timer += Time.deltaTime; 
        angle = maxAngle * animationCurves [animationCurveNumber].Evaluate (timer/time) ; 
        if(i==0) 
        { 
         //print ("angle---"+angle); 
        } 
        i = i + 1; 
    
        transform.eulerAngles = new Vector3 (0.0f, 0.0f, angle); 
    
    
    
        yield return 0; 
    } 
    
    
    spinning = false; 
    
    
    } 
    

我怎么能做到这一点,因为使用随机是我没有得到任何想法

  • 是有可能增加的速度,如果旋转车轮转动如果在要 结束第十师。

回答

1

你可以使用Random初始化initial speed和你的车轮deceleration。然后,您的Update()方法只是在给定车轮转速值的情况下旋转车轮。

float _speed; //in m/s 
float _deceleration; //in m/s^2 
bool _spin; 

void Update() 
{ 
    if (_spin) 
    { 
     transform.Rotate(_speed * Vector3.up * Time.deltaTime, Space.Self); 
     _speed -= _deceleration * Time.deltaTime; 

     //Stop when too slow. 
     if (_speed < minSpeed) 
     { 
     if (//wheel is at 10th position) 
      _speed += minSpeed; //Push it a little more. You can use random here too. 
     else 
      _spin = false; 
     } 

    } 
} 

void OnClick() 
{ 
    if (!_spin) 
    { 
     _spin = true; 
     _speed = Random.Range(speedFloor, speedCeiling); 
     _deceleration = Random.Range(decFloor, decCeiling); 
    } 
} 
+0

soo它永远不会在第10师结束? @Lincoln –

+0

是的,编辑。没有意识到你不想让它停在第10师。 – Lincoln