구현완료 영상

 

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();
    }
}

 

+ Recent posts