WeaponsData.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; using System; [Serializable] public class WeaponsData { public List<Weapon> Weapons; } [Serializable] public class Stats { public int Attack; public int Defence; public int Speed; } [Serializable] public class Weapon { public string Name; public Stats Stats; }
GetWeaponsData.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.Networking; public class GetWeaponsData : MonoBehaviour { public Dropdown NamesDropDown; public Slider AttackSlider; public Slider DefenceSlider; public Slider SpeedSlider; WeaponsData weaponsData = null; void Awake() { StartCoroutine(GetData()); } IEnumerator GetData() { string url = "https://hostspace.github.io/mockapi/weapons.json"; using(var request = UnityWebRequest.Get(url)) { yield return request.SendWebRequest(); if (request.isHttpError || request.isNetworkError) Debug.LogError(request.error); else { string json = request.downloadHandler.text; weaponsData = JsonUtility.FromJson<WeaponsData>(json); } } if(weaponsData != null && weaponsData.Weapons.Count>0) { NamesDropDown.options.Clear(); foreach (var weapon in weaponsData.Weapons) { NamesDropDown.options.Add(new Dropdown.OptionData(weapon.Name)); } NamesDropDown.value = 0; NamesDropDown.onValueChanged.AddListener(WeaponSelectEvent); WeaponSelectEvent(0); } } void WeaponSelectEvent(int index) { var stats = weaponsData.Weapons[index].Stats; AttackSlider.value = stats.Attack; DefenceSlider.value = stats.Defence; SpeedSlider.value = stats.Speed; } }