100个 Unity小游戏系列 - 第二个Unity实现转盘核心逻辑解释

一、背景 

为了颜色unity 实现转盘抽奖的核心玩法,在这里ui简单实现,主要讲解逻辑部分

二、制作流程
2.1、创建一个image,选择我们的转盘背景图;
2.2、创建一个空物体,位于转盘的正中心,因为我们的转盘指针的旋转中心是根据空物体进行的中心进行旋转的,所以需要把指针作为空物体的子对象;
2.3、然后创建一个Button,名字修改一下;
2.4、然后在转盘指针的父物体也就是空物体上面创建脚本,内容如下

三、脚本逻辑

using UnityEngine;2 using UnityEngine.UI;3 4 /// <summary>5 /// 脚本位于指针的父对象,空物体6 /// </summary>7 public class TheLuckyRoller8  : MonoBehaviour9 {
10     /// <summary>
11     /// 幸运转盘指针父对象的Transform
12     /// </summary>
13     private Transform roolPointer;
14 
15     /// <summary>
16     /// 初始旋转速度
17     /// </summary>
18     private float initSpeed;
19 
20     /// <summary>
21     /// 速度变化值
22     /// </summary>
23     private float changeSpeed = 0.5f;
24 
25     /// <summary>
26     /// 转盘是否暂停
27     /// </summary>
28     private bool isPause = true;
29 
30     /// <summary>
31     /// button事件,控制指针
32     /// </summary>
33     private Button button;
34 
35     void Awake()
36     {
37         //获取幸运转盘指针父对象的Transform
38         roolPointer = GetComponent<Transform>();
39 
40         //获取button按钮
41         button = transform.parent.Find("Button").GetComponent<Button>();
42     }
43 
44     /// <summary>
45     /// 开始抽奖,注册OnClick事件
46     /// </summary>
47     void OnEnable()
48     {
49         //清空button注册事件
50         button.onClick.RemoveAllListeners();
51         //注册OnClick事件
52         button.onClick.AddListener(OnButtonClick);
53     }
54 
55     /// <summary>
56     /// 点击事件
57     /// </summary>
58     public void OnButtonClick()
59     {
60         if (isPause)
61         {
62             //随机生成一个初始速度
63             initSpeed = Random.Range(100, 500);
64 
65             //开始旋转
66             isPause = false;
67         }
68     }
69 
70     void Update()
71     {
72         if (!isPause)
73         {
74             //转动转盘(-1为顺时针,1为逆时针)
75             roolPointer.Rotate(new Vector3(0, 0, -1)*initSpeed*Time.deltaTime);
76 
77             //让转动的速度缓缓降低
78             initSpeed -= changeSpeed;
79 
80             //当转动的速度为0时转盘停止转动
81             if (initSpeed <= 0)
82             {
83                 //转动停止
84                 isPause = true;
85             }
86         }
87     }
88 }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/838288.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java字符型常量和字符串常量的区别?

在Java中&#xff0c;字符型常量和字符串常量是两种不同的常量类型&#xff0c;它们在形式、含义和内存占用等方面存在显著区别。理解这些区别对于掌握Java的基本概念和编写高效代码至关重要。 形式 字符常量&#xff1a;由单引号 引起的一个字符。 char letter A; 字符串常…

数字孪生GIS数据获取与处理(未完回头再整理)

高德矢量 http://webrd01.is.autonavi.com/appmaptile?x{x}&y{y}&z{z}&langzh_cn&size1&scale1&style8 高德影像 https://webst01.is.autonavi.com/appmaptile?style6&x{x}&y{y}&z{z} 腾讯矢量 http://rt0.map.gtimg.com/realtimerender…

第33次CSP认证Q3:化学方程式配平

&#x1f344;题目描述 为了配平一个化学方程式&#xff0c;我们可以令方程式中各物质的系数为未知数&#xff0c;然后针对涉及的每一种元素&#xff0c;列出关于系数的方程&#xff0c;形成一个齐次线性方程组。然后求解这个方程组&#xff0c;得到各物质的系数。这样&#x…

MySQL---JSON的用法讲解

一、概述 1.1MySQL的JSON概述 JSON 数据类型是 MySQL 5.7.8 开始支持的。在此之前&#xff0c;只能通过字符类型&#xff08;CHAR&#xff0c;VARCHAR 或 TEXT &#xff09;来保存 JSON 文档。 MySQL 8.0版本中增加了对JSON类型的索引支持。可以使用CREATE INDEX语句创建JSO…

百度百舸 AIAK-LLM 的大模型训练和推理加速实践

本文整理自 4 月 16 日的 2024 百度 Create 大会的公开课分享《百舸 AIAK-LLM&#xff1a;大模型训练和推理加速实践》。 今天要分享的主题是 AI Infra 相关的内容&#xff0c;主要内容分为四部分。 首先和大家一起讨论大模型给基础设施带来的挑战。第二部分则是向大家介绍一个…

[蓝桥杯 2021 国 ABC] 123(java)——前缀和,思维

目录 题目 解析 代码 这么久了&#xff0c;我终于能不看别人代码完整写出来了&#xff0c;呜呜呜。虽然过程也是很曲折。 题目 解析 这个题&#xff0c;找其中数列的规律&#xff0c;1,1,2,1,2,3,1,2,3,4&#xff0c;...&#xff0c;因此我们把拆分成行列&#xff0c;如下…

MT3036 第一节离数课后

思路&#xff1a; 这道题与之前的表达式求值题目不同的是&#xff0c;有not这个单目运算符。而且如果表达式错误&#xff0c;要输入error。 把true和false成为操作数&#xff0c;把and or not成为运算符。 考虑error的情况&#xff1a; 1.and 和 or是双目运算符&#xff0c…

【Flask项目结构搭建】

项目结构搭建 创建一个Flask项目 第一步 先创建一个python Package 起名叫做app第二步 把static文件夹和template文件夹放入app文件夹中第三步 创建settings.py配置文件 """ ENV "development" DEBUG True SQLALCHEMY_DATABASE_URI"mysql…

小程序蓝牙连接ESP32通信(可直接拿来用)

小程序中的蓝牙能力 在小程序中&#xff0c;要使用蓝牙能力&#xff08;Beacon 除外&#xff09;必须首先调用 wx.openBluetoothAdapter 初始化蓝牙适配器模块&#xff0c;其生效周期为调用 wx.openBluetoothAdapter 至调用 wx.closeBluetoothAdapter 或小程序被销毁为止。只有…

评价决策类-层次分析法

师从江北 问题引出 归一化处理&#xff1a;指标的数组[a b c]归一化处理得到[a/(abc),b/(abc),c/(abc)] 因为每个指标的重要性不同&#xff0c;所以要加上一个权重 如何科学的确定权重&#xff0c;就要用到层次分析法&#xff08;AHP&#xff09; 模型原理 建立递阶层次结构模…

VMware17虚拟机安装Kali Linux2024详解

目录 简介 一、环境搭建 二、下载ISO镜像 三、新建虚拟机 为虚拟机选择合适的操作系统类型和版本 分配适当的内存、硬盘空间和其他虚拟机配置选项 四、硬件配置 编辑虚拟机设置 选择安装介质 五、界面化安装配置 简介 Kali Linux是一个基于Debian的Linux发行版&#…

【记录】docker笔记(五):Docker网络-Network Namespace

Docker 网络理论基础 要了解docker网络&#xff0c;先了解如下基础概念。 Network Namespace Docker 网络的底层原理是 Linux 的 Network Namespace &#xff0c;所以对于 Linux Network Namespace 的理解对 Docker 网络底层原理的理解非常重要。 简介 Network Name…

【董晓算法】动态规划之线性DP问题

前言&#xff1a; 本系列是看的B站董晓老师所讲的知识点做的笔记 董晓算法的个人空间-董晓算法个人主页-哔哩哔哩视频 (bilibili.com) 树塔-记忆化搜索 特点&#xff08;前提&#xff09;&#xff1a;从上向下的累加和是不能重复使用的&#xff0c;从下向上的累加和是可以重…

C++进阶:哈希(2)位图与布隆过滤器

目录 1. 位图&#xff08;bitset&#xff09;1.1 引子&#xff1a;海量整形数据的处理1.2 结构描述1.3 位图实现1.4 位图相关题目练习 2. 布隆过滤器&#xff08;BloomFilter&#xff09;2.1 引子&#xff1a;海量非int类型数据处理&#xff08;string&#xff09;2.2 结构描述…

文心一言 VS 讯飞星火 VS chatgpt (252)-- 算法导论18.2 5题

五、因为叶结点无需指向孩子结点的指针&#xff0c;那么对同样大小的磁盘页面&#xff0c;可选用一个与内部结点不同的(更大的) t 值。请说明如何修改 B 树的创建和插人过程来处理这个变化。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 当我们在B树&#xff…

搭载全新升级viaim AI,讯飞会议耳机Pro 2首销价1399元起

2024年5月15日&#xff0c;人工智能硬件公司未来智能发布了讯飞会议耳机Pro 2、iFLYBUDS 2以及Kit 2三款旗舰新品&#xff0c;为用户带来全新升级的viaim AI&#xff0c;也为AIGC智能耳机树立了新标杆。 在发布会上&#xff0c;未来智能CEO马啸表示&#xff1a;在AIGC领域&…

【C++ 高阶数据结构 Test】AVL ~ 二叉搜索树

文章目录 1. AVL 树概念2. AVL 树节点的定义3. AVL树的插入4. AVL树的旋转4.1 新节点插入较高左子树的左侧---左左&#xff1a;右单旋4.2 新节点插入较高右子树的右侧---右右&#xff1a;左单旋4.3 新节点插入较高左子树的右侧---左右&#xff1a;先左单旋再右单旋4.4 新节点插…

【JAVA入门】Day05 - 面向对象

【JAVA入门】Day05 - 面向对象 文章目录 【JAVA入门】Day05 - 面向对象一、对象的设计和使用1.1 类和对象1.2 类的分类 二、封装三、private 关键字四、this 关键字五、构造方法六、JavaBean七、对象的内存图7.1 一个对象的内存图7.2 两个对象的内存图7.3 两个引用指向同一个对…

【练习】分治--快排思想

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f525;个人专栏&#xff1a;算法(Java)&#x1f4d5;格言&#xff1a;吾愚多不敏&#xff0c;而愿加学欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 颜色分类 题目描述 题解 代码实现 排序数组 题目描述 题解 代码…

战网国际服下载教程 暴雪战网客户端一键下载安装教程分享

战网国际服务平台&#xff0c;又名Battle.net环球版&#xff0c;是暴雪娱乐操作的跨国界游戏交流平台&#xff0c;它消除了地域的隔阂&#xff0c;向全球范围内的游戏爱好者提供服务。与仅服务于特定地区的版本不同&#xff0c;国际版赋予了玩家自由穿梭于暴雪众多标志性游戏的…