跳转到主内容
极星编程网:以代码为星,赴技术山海!

如何在Unity中实现幸运转轮?

大家好,我是苏承栈。今天咱们来聊聊如何在Unity中实现那个让人又爱又恨的幸运转轮!如果你想在你的游戏中加入这样一个炫酷的元素,那今天的内容你可千万别错过。

场景设置转轮:

  • 在场景视图中放置幸运轮,确保每个部分大小一致。
  • 在幸运轮边缘创建圆形的小碰撞器,并将它们作为子游戏物体存放。
  • 为箭头添加BoxCollider 2D和HingeJoint2D组件,设置好铰链属性。

接下来,我们看看如何用代码来控制转轮的旋转。

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class SpinWheel : MonoBehaviour
{
    public List prize;
    public List 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 (1, 4);
            itemNumber = Random.Range(0, prize.Count);
            float maxAngle = 360 * randomTime + (itemNumber * anglePerItem);
            
            StartCoroutine (SpinTheWheel (5 * 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 (
                            

相关文章