基于Unity hdrp制作的转盘抽奖程序

这篇博客分享了如何使用Unity的HDRP制作一个转盘抽奖程序。通过动画设计和随机函数控制指针的停止时间,实现了加权抽奖效果。博主提供了核心代码,并指出程序能适应不同数量抽奖者的场景,利用Blender创建圆柱形模型并用Unity的Shader进行材质处理。
摘要由CSDN通过智能技术生成

因为社团里活动需要,所以用unity简单做了一个小抽奖程序,因为想玩sp所以贴了一堆乱七八糟的材质准备搞个废土风不过好像有点违和)。

抽奖的核心在于Unity中动画的设计,在前半段固定好的指针转速缓速变慢之后,最后也就是最慢的一圈会变成匀速旋转,这一圈内将由随机函数指定停止时间,借此便实现了转盘的效果。

核心代码(确实就这么点):

void Update()
{
    if (Input.GetKeyDown(KeyCode.Return) && !anim.GetBool("isRoll") && music.isPlaying)
    //当动画没有在进行且设置好的音乐正常播放时按下回车将开始随机
    {
        anim.SetBool("isRoll", true);
        music.Pause();
        roll.Play();//更换为转盘时的bgm
        float s = Random.Range(12f, 19f);
        Invoke("Stop", s);//将在计算好的时间段内随机停下指针的动画
    }
}
void Stop()
{
    over.Play();
    roll.Stop();
    anim.speed = 0f;
    Invoke("Open", 7);
}

由于本次抽奖形式为加权抽奖,因此为转盘的不同结果设计了不同的大小(即抽中概率),此外为了适应多种情况,程序内准备了多种转盘预设,可在程序内按键切换:

分别是8、7、6、5、4位抽奖者的情况(当然需要提前得出排名来加权)

<

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值