Unity抽奖转盘制作代码

本文介绍了一个简单的Unity抽奖转盘实现方法,通过挂载TheLuckyRoller脚本到目标对象,利用Unity的Transform组件来控制转盘的旋转。文章提供了具体的C#脚本代码,包括初始化设置、按钮事件响应及每帧更新处理等关键部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

话不多说,直接上代码
具体代码使用,可观看视频附视频链接
如果您觉得有用,记得点赞收藏哦!

using UnityEngine;
using UnityEngine.UI;

/// <summary>
/// 想让谁转,就挂载给谁,
/// </summary>
public class TheLuckyRoller: MonoBehaviour
{

    private Transform roolPointer;

    private float initSpeed;
    [Header("每帧降低的速度")]
    public float changeSpeed = 1f;
    [Header("随机速度的取值区间,x要小于y")]
    public int x = 800;
    public int y = 1300;
      
    private bool isPause = true;

    private Button button;

    void Awake()
    {
        //获取幸运转盘指针父对象的Transform
        roolPointer = GetComponent<Transform>();

        //获取button按钮 自动赋值的
        button = transform.parent.Find("Button").GetComponent<Button>();
    }

    /// <summary>
    /// 开始抽奖,注册OnClick事件
    /// </summary>
    void OnEnable()
    {
        //清空button注册事件
        button.onClick.RemoveAllListeners();
        //注册OnClick事件
        button.onClick.AddListener(OnButtonClick);
    }

    /// <summary>
    /// 点击事件
    /// </summary>
    public void OnButtonClick()
    {
        if (isPause)
        {
            //随机生成一个初始速度
            initSpeed = Random.Range(800, 1300);

            //开始旋转
            isPause = false;
        }
    }

    void Update()
    {
        if (!isPause)
        {
            //转动转盘(-1为顺时针,1为逆时针)
            roolPointer.Rotate(new Vector3(0, 0, -1) * initSpeed * Time.deltaTime);

            //让转动的速度缓缓降低
            initSpeed -= changeSpeed;

            //当转动的速度为0时转盘停止转动
            if (initSpeed <= 0)
            {
                //转动停止
                isPause = true;
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unity_九八

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值