话不多说,直接上代码
具体代码使用,可观看视频附视频链接
如果您觉得有用,记得点赞收藏哦!
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;
}
}
}
}