2024.09.06 ビバ三日坊主

想定はしていたがやはり三日坊主。続かない。まぁ思い出したときに書けばいいや。

ここんとこやったこと

UIの仮組み立て

セリフ部分の割といい感じ具合と、スライダーのダサさの差が凄い。どうしたらもうちょいマシになるのかもよくわからん。右端斜めに切れば多少マシ?

Blenderの配列モディファイアを再現

取り敢えずスケールを掛けることはなさそうだから、数と位置と回転だけで作った。ContextMenuで、エディターから関数を呼び出せるようにしたのと、複製したオブジェクト群の命名規則をBlender風に名前.001~にした。

public class ArrayModifier : MonoBehaviour {
    // 複製するターゲットオブジェクト
    [SerializeField] private GameObject targetObject;
    // オブジェクトの名前
    [SerializeField] private string objectName;
    // 複製するオブジェクトの数
    [SerializeField] private int count;
    // オブジェクト間のオフセット
    [SerializeField] private Vector3 offset;
    // オブジェクトの回転
    [SerializeField] private Vector3 rotation;

    // コンテキストメニューから呼び出せるメソッドとして設定
    [ContextMenu("Create Array")]
    public void CreateArray() {
        // 親オブジェクトの名前を設定する
        this.gameObject.name = "parent." + objectName;

        // countの数だけループする
        for (int i = 0; i < count; i++) {
            // 新しい位置を計算する
            Vector3 newPosition = transform.position + i * offset;
            // オブジェクトを複製して新しい位置に配置する
            GameObject newObject = Instantiate(targetObject, newPosition, Quaternion.Euler(rotation));
            // このスクリプトを持つオブジェクトの子として設定する
            newObject.transform.parent = this.transform;
            // 複製したオブジェクトの名前を設定する
            newObject.name = objectName + "." + (i + 1).ToString("D3");
        }
    }
}

まとめ

UnityのUIにテキスト追加するとめちゃくちゃ解像度荒くなるのなんでなんだろう。

この記事が気に入ったらサポートをしてみませんか?