Odin Inspector 練習問題①

Unity

UnityでOdin Inspectorを使うと、エディタの表示やデバッグが非常に便利になります。ここでは、初心者向けの実践的な練習問題を出しながら学んでいきましょう。


Odin Inspector 練習問題まとめ

導入手順

1️⃣ Unity Package Manager を開く

2️⃣ 「My Assets」から Odin Inspector を選択し「Download」→「Import」


レベル1:基本的な属性の使い方

練習問題①:Inspectorを整理する

元のコード

using UnityEngine;

public class Player : MonoBehaviour
{
    public string playerName;
    public int level;
    public int hp;
    public int attack;
    public int defense;
    public string secretNote;
}

目標

playerName, level, hp, attack, defense → BoxGroup(“ステータス”)でまとめる

secretNote → Inspectorで非表示([HideInInspector])

ポイント

  • using Sirenix.OdinInspector; を必ず追加

正解例

using UnityEngine;
using Sirenix.OdinInspector;

public class Player : MonoBehaviour
{
    [BoxGroup("ステータス")]
    public string playerName;

    [BoxGroup("ステータス")]
    public int level;

    [BoxGroup("ステータス")]
    public int hp;

    [BoxGroup("ステータス")]
    public int attack;

    [BoxGroup("ステータス")]
    public int defense;

    [HideInInspector]
    public string secretNote;
}

レベル2:表示・制御ロジック

練習問題②:条件付き表示

元のコード

using UnityEngine;

public class Weapon : MonoBehaviour
{
    public string weaponName;
    public bool isLegendary;
    public int legendaryPower;
}

目標

legendaryPower → isLegendary が true のときだけ表示([ShowIf(“isLegendary”)])

正解例

using UnityEngine;
using Sirenix.OdinInspector;

public class Weapon : MonoBehaviour
{
    public string weaponName;
    public bool isLegendary;

    [ShowIf("isLegendary")]
    public int legendaryPower;
}

レベル3:インライン編集と配列表示

練習問題③:装備のリストを管理しよう

元のコード

using System.Collections.Generic;
using UnityEngine;

public class EquipmentManager : MonoBehaviour
{
    public List<Equipment> equipmentList;
}

[System.Serializable]
public class Equipment
{
    public string name;
    public int rarity;
}

目標

Equipment クラス → [InlineProperty]

equipmentList → [TableList]

正解例

using System.Collections.Generic;
using UnityEngine;
using Sirenix.OdinInspector;

public class EquipmentManager : MonoBehaviour
{
    [TableList]
    public List<Equipment> equipmentList;
}

[System.Serializable]
[InlineProperty]
public class Equipment
{
    public string name;
    public int rarity;
}

レベル4:関数ボタンでデバッグ

練習問題④:Inspectorから関数実行

元のコード

using UnityEngine;

public class TestTool : MonoBehaviour
{
    public int value = 10;

    public void DoubleValue()
    {
        value *= 2;
        Debug.Log("Value doubled: " + value);
    }
}

目標

DoubleValue() → [Button] 属性をつけて、Inspector上のボタンで実行できるようにする

正解例

using UnityEngine;
using Sirenix.OdinInspector;

public class TestTool : MonoBehaviour
{
    public int value = 10;

    [Button]
    public void DoubleValue()
    {
        value *= 2;
        Debug.Log("Value doubled: " + value);
    }
}

ポイントまとめ

  • Odin の基本属性:
    • [BoxGroup]:まとまりを作る
    • [ShowIf]:条件で表示切替
    • [InlineProperty]:インライン表示
    • [TableList]:表形式に
    • [Button]:Inspectorから関数実行

最後に

Odinは使いこなせるととても便利です。私自身まだ全然使いこなせていませんが、今日紹介した基本属性が使えるだけでもだいぶ見やすくなるので頑張っていきましょう!

コメント

タイトルとURLをコピーしました