KNT529
@KNT529 (熊ノ 輝)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

unityのinspector内で配列をプルダウンで選択できるようにしたいです。

解決したいこと

Unityのinspector内で配列にボタンやオブジェクトを格納して、その格納したものをinspector内のプルダウンで選択できるようにしたいのですが、配列に格納することはできましたが、配列内の情報を読み取ってプルダウンで選択できるようにすることができません。
プルダウンで選択できるようにするにはどうすればいいですか?スクリーンショット 2022-01-22 164204.png
UI Buttonのsizeで必要分を作成して、その中にボタンを入れています。
First ButtonではUI Buttonを参照して格納されているものをプルダウンで選択できるようにしたいのですが、格納する方法がわかりません。

現在のコード

    public Button[] UIButtun;       //メニューなどのボタンを格納するための配列変数

    public enum FirstButtun
    {

    }
    [SerializeField] FirstButtun firstButtun;    //プルダウン化
0

1Answer

Editorスクリプトで実装すれば良いかと思います。

using System;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
#if UNITY_EDITOR
using UnityEditor;
#endif
public class ButtonManager : MonoBehaviour
{
    public Button[] Buttons;

    [HideInInspector]
    public int SelectButton;

    private Button UseButton
    {
        get
        {
            if(this.Buttons == null)
            {
                throw new Exception("ボタンのリストがNull");
            }
            if (this.Buttons.Length <= this.SelectButton)
            {
                throw new IndexOutOfRangeException("Indexが超えている");
            }
            return this.Buttons[this.SelectButton];
        }
    }

#if UNITY_EDITOR
    [CustomEditor(typeof(ButtonManager))]
    public class EditorButtonManager : Editor
    {
        public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();

            ButtonManager manager = (ButtonManager)this.target;
            // 未セットの場合はnullがありえる
            if (manager.Buttons == null)
            {
                return;
            }

            manager.SelectButton = EditorGUILayout.Popup(
                manager.SelectButton, 
                manager.Buttons.Select((x) => x.name.ToString()).ToArray()
                );
        }
    }
#endif
}

以下画像のように表示されます。
manager.PNG

以下参考
https://tsu-games.hatenablog.com/entry/popup-duplication

0Like

Your answer might help someone💌