【Unity】 RewiredのActionを管理する定数クラスを生成する

Rewired | Utilities Tools | Unity Asset Store
Use the Rewired from Guavaman Enterprises on your next project. Find this utility tool & more on the Unity Asset Store.

コード

GitHubにもソースコードがあります。https://github.com/noranokyoju256/RewiredConstantsCreator

using UnityEngine;
using UnityEditor;
using System.Collections.Generic;

namespace Norakyo.Internal
{
	internal sealed class RewiredConstantsCreator : EditorWindow
	{
		Rewired.InputManager inputManager;
		[MenuItem("Tools/Norakyo/RewiredConstantsCreator")]
		static void Open()
		{
			EditorWindow.GetWindow<RewiredConstantsCreator>("RewiredConstantsCreator");
		}

		private void OnGUI()
		{
			inputManager = (Rewired.InputManager)EditorGUILayout.ObjectField("ObjectField", inputManager, typeof(Rewired.InputManager), true);
			if (GUILayout.Button("Create") && inputManager != null)
			{
				var userData = inputManager.userData;
				Dictionary<string, int> actionDic = new Dictionary<string, int>();
				foreach (var id in userData.GetActionIds())
				{
					actionDic[userData.GetActionNameById(id)] = id;
				}
				ConstantsClassCreator.Create("ActionID", "Rewiredのアクション番号を定数で管理するクラス", actionDic);
			}
		}
	}
}

以下の記事を参考にしました。ConstantsClassCreatorはここからコピペしてきてください。

使い方

左上のメニューの Tools/Norakyo/RewiredConstantsCreator からウィンドウを開き

ObjectField に RewiredInputManager をセットして Create を押します。

そうしたら「Assets/Scripts/Constants/AutoCreating」に「ActionID」というクラスが作成されます。

生成されるクラス(例)

/// <summary>
/// Rewiredのアクション番号を定数で管理するクラス
/// </summary>
public static class ActionID
{
	  public const int JUMP             = 0;
	  public const int HORIZONTAL       = 1;
	  public const int VERTICAL         = 2;
	  public const int DASH             = 3;
	  public const int UIHORIZONTAL     = 5;
	  public const int UIVERTICAL       = 6;
	  public const int UISUBMIT         = 7;
	  public const int UICANCEL         = 8;
}

コメント

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