구현완료 영상
ranking Script
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ranking : MonoBehaviour
{
public GameObject uiListPrefab;
public RectTransform contents2;
private void Start()
{
Protocols_Packets.Packets.ranking_info[] arr = Protocols.GetInstance().GetRanking();
foreach(Protocols_Packets.Packets.ranking_info info in arr)
{
Debug.LogFormat("{0} {1}", info.nick_name, info.score);
var go = Instantiate<GameObject>(this.uiListPrefab);
// uiList 프리팹의 클론
go.transform.SetParent(this.contents2);
// contents2의 자식으로 붙어지게 생성
var uiListItem = go.GetComponent<UIList>();
uiListItem.Init(info);
}
}
}
Protocols Scripts
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Newtonsoft.Json;
public partial class Protocols
{
public static Protocols instance;
private Protocols()
// 생성자
{
}
public static Protocols GetInstance()
// 싱글톤
{
if(Protocols.instance == null)
{
Protocols.instance = new Protocols();
}
return Protocols.instance;
}
public Protocols_Packets.Packets.ranking_info[] GetRanking()
// 통신방법
{
string json = Resources.Load<TextAsset>("ranking").text;
//서버로부터 응답을 받는다.
return JsonConvert.DeserializeObject<Protocols_Packets.Packets.ranking_info[]>(json);
// 역직렬화
}
}
Protocols_Packets Script
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public partial class Protocols_Packets
{
public class Packets
{
public class ranking_info
{
public int rank;
public string thumb_name;
public string country;
public string nick_name;
public int score;
}
}
}
UIList Scripts
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class UIList : MonoBehaviour
{
public Text txtRank;
public Text txtThumbName;
public Text txtCountry;
public Text txtNickName;
public Text txtScore;
public void Init(Protocols_Packets.Packets.ranking_info info)
{
this.txtRank.text = info.rank.ToString();
this.txtThumbName.text = info.thumb_name;
this.txtCountry.text = info.country;
this.txtNickName.text = info.nick_name;
this.txtScore.text = info.score.ToString();
}
}
'Unity3D > UI' 카테고리의 다른 글
게임 데일리 이벤트 구현영상 (0) | 2021.01.05 |
---|---|
게임 데일리이벤트 UI만들기(JSON데이터 사용) (0) | 2021.01.05 |
<UI> ScrollView & Sprite Atlas 상점 UI구현하기 (0) | 2020.12.03 |
<UI> 유저 레벨 & 경험치 바 & 보스 이중 HP바 (0) | 2020.11.30 |
<UI> TextMeshPro 사용 (0) | 2020.11.30 |