首先先在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()
{
}
}
原始构建图:
运行效果图: