unity做一个抽奖转盘
首先创建一个canvas,然后创建一个panel,panel底下有image,button按钮,还有point指针,还有show空白图片和hint文本然后在canvas上挂载代码
代码如下:
using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class DialRotation : MonoBehaviour
{
public Transform _dial;//转盘
public GameObject _showResult;
public Text _hintText;
private bool _isPause = true;//是否为停止状态
private int _last = 0;//上次旋转的 %360
private int _cyclesNum = 10;//旋转的整圈数
private float _duration = 3;//旋转的持续时长
private void Start()
{
_hintText = GameObject.Find("Hint").GetComponent<Text>();
_showResult.gameObject.SetActive(false);
}
public void RotationOnClick()
{
_showResult.gameObject.SetActive(false);
if (_isPause)
{
_isPause = false;
int a = 0;
//随机60度的倍数
int rotNum = Random.Range(1, 7);
a = _cyclesNum * 360 + rotNum * 60;
Debug.Log("本次旋转的度数: " + (a - _last) + "\r\n" + "本次随机的结果: " + rotNum);
//本次旋转的度数
_dial.DORotate(new Vector3(0, 0, a - _last), _duration, RotateMode.FastBeyond360).SetEase(Ease.OutQuad).OnComplete(delegate {
_isPause = true;
//因为每次旋转后转盘没有归零,就必须减去上次的%360度数
_last = rotNum * 60;
_showResult.gameObject.SetActive(true);
switch (rotNum)
{
case 1:
_hintText.text = "获得纪念T恤一件";
Debug.Log("获得纪念T恤一件"); break;
case 2:
_hintText.text = "获得50元代金券";
Debug.Log("获得50元代金券"); break;
case 3:
_hintText.text = "谢谢惠顾";
Debug.Log("谢谢惠顾"); break;
case 4:
Debug.Log("获得20元代金券");
_hintText.text = "获得20元代金券"; break;
case 5:
Debug.Log("获得万能接口一个");
_hintText.text = "获得万能接口一个"; break;
case 6:
Debug.Log("获得t2手机一部");
_hintText.text = "获得t2手机一部"; break;
default:
break;
}
});
}
}
}
将doween插件随后将他们拖进去并把他的按钮点击
链接:https://pan.baidu.com/s/1D5Ozr0GFI23Q5Uvm027pbw
提取码:qzlg
复制这段内容后打开百度网盘手机App,操作更方便哦
感谢大家的关注,博主收到了😋,我深刻的体会到了那句话:
你们的关注是我写下去的动力。 😘