【unity】商と余りの活用 (1次元配列を2次元配列に)

【unity】商と余りの活用 (配列ループ)

でループ処理を行いましたが別のパターンとして1次元配列を2次元配列で表現する場合です。

例えばニュースの一覧APIで取得してそれを2行7列の配置するなどはあるかもしれません。

ゲーム的にはショップで課金アイテムを並べる感じになります。

考えかたは同じです。

using UnityEngine;
using TMPro;

public class Array12 : MonoBehaviour
{
    const int YOKO = 7;
    [SerializeField] TextMeshProUGUI m_Prefab;
    [SerializeField] Transform m_Parent;
    private string[] array = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m" };
    // Start is called before the first frame update
    void Start()
    {
        for (int i = 0; i < array.Length; i++)
        {
            int tate = i / YOKO;
            int yoko = i % YOKO;
            TextMeshProUGUI text = Instantiate(m_Prefab, m_Parent, false);
            text.gameObject.SetActive(true);
            text.text = array[i];
            text.transform.localPosition = new Vector3(-350 + (yoko * 100), -(tate * 100));
        }
    }
}

雑にテキストで並べてみました。

take,yokoがそのまま二次元[tate][yoko]として代入もできるでしょう。

コメント