Unity-简易水果老虎机

 首先先在ConfigManager中解析Json,在UIManager中点击启动按钮,根据下标随机抽取一个物体,5秒结束随机选择之后获得物品。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Newtonsoft.Json;

public class TigerData
{
    public string id;
    public string name;
    public string des;
    public string type;
    public string count;
    public string icon;
}
public class ConfigManager : MonoBehaviour
{
    public List<TigerData> tigerDatas = new List<TigerData>();
    public void Config()
    {
        tigerDatas = JsonConvert.DeserializeObject<List<TigerData>>(Resources.Load<TextAsset>("11").text);
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using static UnityEditor.Progress;

public class UIManager : MonoBehaviour
{
    public List<GameObject> icons = new List<GameObject>();
    public List<GameObject> backgrounds = new List<GameObject>();
    ConfigManager configManager;
    public Button button_start;
    public float chixuTimer = 5f;
    //持续时间
    public float meigeTimer = 0.5f;
    //每隔0.5f变一次
    public Image image_tip, image_icon;
    public Text text_tip;
    public Button button_queding;//确定按钮
    void Start()
    {
        configManager = new ConfigManager();
        configManager.Config();
        for (int i = 0; i < icons.Count; i++)
        {
            icons[i].GetComponent<Image>().sprite = Resources.Load<Sprite>(configManager.tigerDatas[i].icon);
        }
        button_start.onClick.AddListener(ClickStartButton);
    }
    private void ClickStartButton()
    {
        StartCoroutine(ZhuanPan());
    }

    IEnumerator ZhuanPan()
    {
        float yanchiTimeer = 0f; //延迟时间
        while (yanchiTimeer < chixuTimer)
        {
            int randomIndex = UnityEngine.Random.Range(0, backgrounds.Count);
            foreach (var item in backgrounds)
            {
                item.gameObject.SetActive(false);
            }
            backgrounds[randomIndex].gameObject.SetActive(true);
            yield return new WaitForSeconds(meigeTimer);
            yanchiTimeer += meigeTimer;
            if (yanchiTimeer == chixuTimer)
            {
                Debug.Log(randomIndex);
                image_tip.gameObject.SetActive(true);
                image_icon.GetComponent<Image>().sprite = Resources.Load<Sprite>(configManager.tigerDatas[randomIndex].icon);
                text_tip.text = configManager.tigerDatas[randomIndex].count.ToString();
                button_queding.onClick.AddListener(() =>
                {
                    image_tip.gameObject.SetActive(false);
                });
            }
        }
    }

    private void Update()
    {
        
    }
}

原始构建图:

运行效果图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值