Scroll View 동적생성
Unity/수업내용 2019. 5. 28. 09:48UGUI를 이용, json 파일을 통해서 scroll view의 항목들을 동적으로 생성해보았다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.U2D; public class TestUGUI : MonoBehaviour { public SpriteAtlas atlas; public RectTransform contents; public MissionListItem listItemPrefab; private DataManager dm; void Start() { this.dm = DataManager.GetInstance(); dm.LoadData<mission_data>("Data/mission_data"); dm.LoadData<reward_data>("Data/reward_data"); var mission0 = dm.GetData<mission_data>(0); Debug.LogFormat(mission0.sprite_name); dm.GetCount(); this.CreateListItem(); } private void CreateListItem() { for (int i = 0; i<5; i++) { var data = this.dm.GetData<mission_data>(i); var listItemGo = Instantiate(this.listItemPrefab); var script = listItemGo.GetComponent<MissionListItem>(); script.Init(data.id, this.dm.GetData<reward_data>(data.reward_id).sprite_name, data.sprite_name, data.reward_val, data.mission_name, data.goal_val, this.dm.GetData<reward_data>(data.reward_id).hex_color); } } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.U2D; public class MissionListItem : MonoBehaviour { public int id; public Image rewardIcon, Thumb; public Image[] Stars; public Text rewardText, MissionName; public GameObject bg; public Button claim; public void Init(int id, string rewardIcon, string Thumb, int rewardText, string MissionName, int goalValue, string hex_color) { this.Claim(); this.gameObject.transform.SetParent(GameObject.Find("Contents").transform); var atlas = GameObject.FindObjectOfType<TestUGUI>().atlas; this.bg.SetActive(false); this.id = id; this.rewardIcon.sprite = atlas.GetSprite(rewardIcon); this.Thumb.sprite = atlas.GetSprite(Thumb); this.rewardText.text = rewardText.ToString(); Color color; ColorUtility.TryParseHtmlString(hex_color, out color); this.rewardText.color = color; this.MissionName.text = string.Format(MissionName,goalValue.ToString()); } private void Claim() { this.claim.onClick.AddListener(() => { var dm = DataManager.GetInstance(); Debug.LogFormat("id : {0}, reward : {1}, reward_Value : {2}", this.id, this.rewardIcon.name, this.rewardText.text); }); } } | cs |
1 2 3 4 5 6 7 8 9 10 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class RawData { public int id; } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class mission_data : RawData { public string sprite_name; public string mission_name; public int goal_val; public int reward_id; public int reward_val; } | cs |
1 2 3 4 5 6 7 8 9 10 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class reward_data : RawData { public string sprite_name; public string hex_color; } | cs |
'Unity > 수업내용' 카테고리의 다른 글
UGUI를 이용해 Scroll View UI 만들기 (0) | 2019.05.24 |
---|---|
Raycast, Collider, Rigidbody, Joystick 이용 캐릭터 이동하기 (0) | 2019.04.25 |