Unity「Select Icon」活用ガイド

1. 機能概要

Select Icon は、Hierarchy上のGameObjectにSceneビューで視認しやすいアイコンを付ける機能です。

特に以下のような場面で有効です:

  • 空のGameObject(Empty)で目印が必要なとき
  • 複数の管理用Transformの区別
  • ゲーム内では非表示のロジック用オブジェクト

2. アイコンの種類と意味

種類表示例用途例
ラベルアイコン(上段)シーン管理用の主要ポイント(例:スポーン地点)
ドットアイコン(中段)補助的な目印(例:パトロールポイント)
None(×マーク)表示なし非表示に戻す
Other…カスタム設定用スクリプト経由で独自に指定

3. 活用例(スクリーンショット付き)

3-1. 敵出現地点に赤アイコン

  • 用途:EnemySpawnPointの空オブジェクトに赤アイコンを設定
  • メリット:シーン全体で出現地点の位置が即座に視認できる

3-2. アイテム配置位置に緑アイコン

  • 用途:ItemDropPointに緑のラベルアイコン
  • メリット:後からレベルデザインを調整するときの目印に

3-3. カメラ注視点に青アイコン(ドット)

  • 用途:CinemachineTargetやLookAtのTransformに設定
  • メリット:プレイヤーが見ている方向を視覚的に把握できる


4. 設定方法

  1. Hierarchyから対象のGameObjectを選択
  2. Inspectorの上部にあるCubeアイコンをクリック
  3. 表示された「Select Icon」から希望のアイコンを選択

5. 運用上の注意

  • 意味のある色・形で統一的に使用することで、チーム開発でも混乱が起きにくい
  • 多用しすぎるとSceneビューが見づらくなるため、役割別に限定して使うのがベスト

6. 補足:スクリプトでの自動設定

エディタ拡張を使えば、特定タグや名前に応じてアイコンを自動で設定することも可能です。

#if UNITY_EDITOR
using UnityEditor;
using UnityEngine;

[InitializeOnLoad]
public class IconSetter
{
    static IconSetter()
    {
        foreach (GameObject obj in GameObject.FindGameObjectsWithTag("EnemySpawn"))
        {
            var icon = EditorGUIUtility.IconContent("sv_label_1").image as Texture2D;
            EditorGUIUtility.SetIconForObject(obj, icon);
        }
    }
}
#endif

このスクリプトをUnityで正しく機能させるためには、以下の前提条件・素材・準備が必要です。

1. タグ:EnemySpawn

  • スクリプト内のこの行が対象を指定しています:
GameObject.FindGameObjectsWithTag("EnemySpawn")
  • よって、タグ「EnemySpawn」を持つGameObjectがシーンに存在している必要があります。

設定手順:

  1. 対象のGameObject(例:EnemySpawnPoint)を選択
  2. Inspectorで「Tag」を「EnemySpawn」に設定
    • 存在しない場合は「Add Tag…」から作成 → その後選択

2. Unityエディタ上でのみ動作すること

  • このコードは #if UNITY_EDITOR で囲まれており、ビルド後のゲーム本番には影響しません
  • エディタ上でのみ自動で実行されます。

3. 適用するアイコン名(EditorGUIUtility.IconContent)

  • “sv_label_1" はUnityエディタ内部のプリセットアイコンです。
  • 他にも使用可能なアイコン名例:
    • “sv_label_0" ~ “sv_label_9″(色違いの丸ラベル)
    • “sv_icon_dot0" ~ “sv_icon_dot9″(色違いのドット)

色の対応表(ラベル):

アイコン名表示される色
sv_label_0灰色
sv_label_1
sv_label_2
sv_label_3

4. 配置場所

  • Editor フォルダ内に置く必要はありません(InitializeOnLoadのため)。
  • ただし、UnityEditorを参照しているので、ビルド対象に含めないように注意が必要です。
    • #if UNITY_EDITOR で囲まれていればどこに置いてもOKです。

補足:確認方法

  • シーンにタグ EnemySpawn を持つオブジェクトが1つでもあれば、自動的にアイコンが設定されます
  • Editorを再起動しなくても、スクリプトを保存した直後に反映されるはずです

まとめ:必要な素材リスト

種類内容
タグ“EnemySpawn" を Unity タグとして追加・設定済み
対象オブジェクトタグ “EnemySpawn" が付いた GameObject(EmptyでもOK)
使用アイコン“sv_label_1" など、EditorGUIUtility で使用可能な内部アイコン名
スクリプト条件#if UNITY_EDITOR でビルド対象から除外、Editor上で使用

Unity,デバッグ

Posted by hidepon