用Unity做一个抽奖系统(娱乐)

本文分享了一款使用Unity开发的抽奖系统代码,该系统仅使用UI组件,代码精简,包含循环显示名字、显示剩余人数等功能,并介绍了如何通过二进制生成TXT文件保存抽奖结果。

首先,感谢3月份在Unity.cn和Connect App上面支持我的小伙伴,粉丝福利已经在2020年4月10日以B站直播方式抽取完毕,获奖的小伙伴请尽快在B站联系我哦!获奖名单在文章最后

既然大家都是学习Unity的,抽奖自然不会用任何其他平台和工具了!(硬撑) 所以简单做了一个抽奖系统,虽然有很多不足,不过娱乐性和实用性还是可以的,这里分享给大家代码和项目,效果如下:
这个项目完全只使用到了UI的组件,代码也只精简的写了一个,所以集合了很多方法也包括了用二进制生成TXT保存文件确保抽奖结果不会因为软件问题而丢失。
代码只挂在了Controller上,所有的按钮也都调用这个代码里的函数方法。
上代码:
public enum Gift { 背包, 鼠标垫, 马克杯, 数据线, 丝巾, T恤 } private Gift gift; public Text nameText; //循环显示的名字 public Text countNum; //显示列表当中当前剩余人数 public Text awardText; //获奖名单 public TextAsset textFile;//用一个TXT来保存参与抽奖的名字,每个名字一行 public bool isClick; List<string> textLine = new List<string>(); public void Start() { awardText.text = null; var tempLineData = textFile.text.Split('\n'); foreach (var line in tempLineData) { textLine.Add(line); } countNum.text = textLine.Count.ToString(); } public void Update() { if (isClick) //如果按键按下则开始执行随机名字显示 { int index = Random.Range(0, textLine.Count); nameText.text = textLine[index]; } } public void ButtonClicked() { isClick = !isClick; } public void ConfirmButton() { textLine.Remove(nameText.text); countNum.text = textLine.Count.ToString(); awardText.text += nameText.text + " 获得: " + gift + '\n'; SaveData(); } public void SaveData() //确保每次按下确认按键后保存抽奖结果 { if (!Directory.Exists(Application.persistentDataPath + "/March")) { Directory.CreateDirectory(Application.persistentDataPath + "/March"); } BinaryFormatter formatter = new BinaryFormatter(); FileStream file = File.Create(Application.persistentDataPath + "/March/Award.txt"); formatter.Serialize(file, awardText.text); file.Close(); } #region Gift Button //每一个奖品的按钮都调用这里的方法 public void Gift1() { gift = Gift.背包; } public void Gift2() { gift = Gift.鼠标垫; } public void Gift3() { gift = Gift.T恤; } public void Gift4() { gift = Gift.马克杯; } public void Gift5() { gift = Gift.丝巾; } public void Gift6() { gift = Gift.数据线; } #endregion
}
  • 小技巧分享给大家
由于奖品类别也是按键UI组件,但是每次点选一个物品后如果再次点选其他按钮则会使‘选中’效果消失,所以这里在按键的 Event 里,除了调用了Gift切换的方法以外,也直接触发了改变Alpha值得为0.5,达到永久变暗来区分是否按下。

如果你也希望跟朋友玩一下抽奖,或者聚会的时候你做一个自己的抽取游戏,相信一定会很有意思呢!

获奖名单如下:

再次感谢大家支持,希望4月也有机会给大家抽取粉丝福利!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值