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 System.Net.Http; public class GetWeaponsData : MonoBehaviour { public Dropdown NamesDropDown; public Slider AttackSlider; public Slider DefenceSlider; public Slider SpeedSlider; WeaponsData weaponsData = null; async void Awake() { string url = "https://hostspace.github.io/mockapi/weapons.json"; using(var httpClient = new HttpClient()) { var response = await httpClient.GetAsync(url); if (response.IsSuccessStatusCode) { string json = await response.Content.ReadAsStringAsync(); weaponsData = JsonUtility.FromJson<WeaponsData>(json); } else Debug.LogError(response.ReasonPhrase); } 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; } }