国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

Unity 2017使用UGUI實現大轉盤抽獎

2020-01-24 00:10:03
字體:
來源:轉載
供稿:網友

本文實例為大家分享了Unity 2017實現大轉盤抽獎的具體代碼,供大家參考,具體內容如下

涉及到的插件:Dotween

在“Hierarchy”面板創建一個Image,這個Image用來顯示大轉盤的那個圓盤,我用的UGUI里默認的那個圓圓的圖片,放大后很模糊,不過不打緊

這里寫圖片描述 

接著創建一個Panel名字改成“獎品組”,這個是獎品的父物體,記得吧Panel里的Image,Canvas Renderer組件刪了
然后在創建一個Panel名字改成“Awar”用制作獎品的,一樣的吧Image,CanvasRenderer組件刪除

然后在Awar中創建Image,Text,分別吧名字改為“Ico,desc”,然后設置一下自己想要的效果,我設置的Ico上方,Desc下方

如圖:

這里寫圖片描述 

結構圖:

這里寫圖片描述 

*需要注意的地方:把Awar的小藍點移動到圓盤的中心如圖:

如果這步沒做后面的自動生成代碼生成就不準嘍

然后寫一個代碼:生成的腳本

public class GenerateAwar:MonoBehaviour{ public GameObject AwarGameObject; //上面制作的Awar物體 public int Count = 10; // 生成個數,當你根據數據生成個數的時候記得修改 void OnEnable () {  var angle = 360 / Count; // 計算每個獎品的Z軸度數  var additionAngle = 0; //當前角度  for (var i = 0; i < Count; i++)  {   var obj = Instantiate(AwarGameObject);   additionAngle = angle + additionAngle;   obj.transform.Rotate(Vector3.forward,additionAngle);   Log.Error(obj.transform.localRotation.eulerAngles.z);   obj.transform.SetParent(transform,false);   obj.SetActive(true);  } }}

然后掛到”獎品組“身上
如:

這里寫圖片描述 

那個獎品就是Awar,我名字改不回來了,似乎是unity的問題,哇哈哈哈
然后運行,就能看到如圖效果:

這里寫圖片描述

然后創建一個指針放在中心編寫一個腳本:旋轉指針的腳本

//這個腳本掛在指針身上,//然后在抽獎按鈕的Button事件里拖入指針選擇這個類的SetTime方法public class RotatePointer : MonoBehaviour{ private bool _isRotate = false;//是否旋轉 public float ContinuousTime = 2;//旋轉時間 public float Speed = 2000;//旋轉速度 public float Angle = 0; // 這個是設置停止的角度 private float _time; // Update is called once per frame void Update () {  if (!_isRotate)return; //不旋轉結束  if (Time.time < _time) // 沒結束  {   transform.Rotate(Vector3.forward * Speed * Time.deltaTime);  }  else  {  //結束,使用DoTween旋轉到結束角度,耗時1秒  //這里有個360,使用來防止指針回轉的,如果不加這個360,你會看到指針倒退   transform.DORotate(new Vector3(0, 0, 360 + Angle), 1f, RotateMode.FastBeyond360);   _isRotate = false; // 設置不旋轉  } } //外部調用,初始化時間和打開旋轉 public void SetTime() {  _time = Time.time + ContinuousTime;  _isRotate = true; } //外部調用,設置停止角度 public void SetAngle(float angle) {  Angle = angle; }}

指針:

這里寫圖片描述 

開始按鈕:

這里寫圖片描述 

因為電腦上沒什么制作動圖的軟件,如果效果我就結束,旋轉個1張

旋轉:

這里寫圖片描述

結束:

這里寫圖片描述

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 婺源县| 亚东县| 皋兰县| 夏河县| 东丰县| 醴陵市| 新巴尔虎右旗| 翼城县| 石楼县| 阿拉善盟| 鹤岗市| 资中县| 苏尼特左旗| 河曲县| 桑日县| 鄂温| 乌拉特后旗| 临武县| 西充县| 广宁县| 广丰县| 平原县| 贵德县| 龙泉市| 葫芦岛市| 互助| 尼木县| 平度市| 积石山| 乐陵市| 理塘县| 佛教| 鄱阳县| 枞阳县| 湛江市| 平武县| 江山市| 兴城市| 鄂托克前旗| 太仓市| 聂荣县|