🎮

Unity 球状にグリッドをつくる 1

2024/04/11に公開

まずは原点から光り輝く放射線

世界地図上にグリッド、は、うまくいった。
今回は地球儀上にガイドラインを引きたい。
前回、prefabを回転させる方法を学んだので、応用してみる。

prefabの種として、y軸上に細なが〜〜いシリンダーを置く

位置は(0, 0, 0,)、これはCylinderの中央に来る。
なので、Cylinderの長さが球の直径になる感じ。

例によって、CSVでprefabの変身メニューを書く。
これを読むScriptはこんな感じ。

using UnityEngine;
using System.Collections.Generic;
using System.IO;

public class RotationImporter : MonoBehaviour
{
    public GameObject radialPrefab; // プレハブを指定
    public string fileName = "Rotation"; // CSVファイル名

    void Start()
    {
        // CSVファイルを読み込み、行ごとに分割する
        TextAsset csvData = Resources.Load<TextAsset>(fileName);
        string[] lines = csvData.text.Split('\n');
        for (int i = 1; i < lines.Length; i++)
        {
            string[] parts = lines[i].Split(',');
            if(parts.Length < 2) continue; 

            float rx = float.Parse(parts[0]);
            float rz = float.Parse(parts[1]);

            // オブジェクトを生成し、回転を設定。
            GameObject columnObject = Instantiate(radialPrefab, new Vector3(0, 0, 0), Quaternion.Euler(rx, 0, rz));
 
        }
    }
}

空のobjectをつくって、Managerにして、attach。
で、こんな感じ。30°ごとに引いたんだけど、ちょっと過剰かなあ・・・

グリッドの安心感がないのは、まだ横線がないから。
でも今回は、それは、緯線と経線になるので、
どうやって表示すればよいのか・・・。

いっそ同心球を書く方がはやいか?

Discussion