Unity.Mx
Unity.Mx copied to clipboard
M-x for Unity
M-x for Unity
Mx (or Meta-X) is a command-based completion framework. It allows you to execute
all kinds of tasks based on your design. Mx is an alternate to attribute
MenuItem; by contrast, doing multiple tasks is possible. It gives you the
option to choose and explore unnoticed commands.
Table of Contents
- ๐ Features
- ๐ Commands
- ๐พ Installation
- ๐จ Usage
- โ How to define your own command?
- โ
InteractiveAttribute's Properties- ๐งช summary (
string) - ๐งช icon (
string) - ๐งช tooltip (
string) - ๐งช enabled (
boolean)
- ๐งช summary (
- ๐งฐ Advanced Usage
- โ CompletingRead (
prompt,collection,callback,hover,requiredMatch) - โ ReadString (
prompt,callback) - โ ReadNumber (
prompt,callback) - โ YesOrNo (
prompt,callback)
- โ CompletingRead (
- ๐ Credits
- ๐ See Also
- License
๐ Features
This part of the document explains what Mx is trying to aim for!
- Search Assets
- Search GameObjects by various way (
Type,tag,name, etc) - Execute Menu
- Get/Set
EditorPrefsandPlayerPrefs - Visually see things in action (hover event)
- Configurable & Extensible
and more!
๐พ Installation
Go to our release page and download the latest .unitypackage.
Then simply import it to your project!
Or install it through OpenUPM:
$ openupm add com.jcs090218.mx
This package requires the Visual Scripting package to be installed.
Make sure you have it installed!
๐จ Usage
Hit Alt+x!
โ How to define your own command?
Here is a simple example that prints out "Hello World!~" with Debug.Log.
[Interactive(summary: "Print Hello World!")]
private static void PrintHelloWorld()
{
Debug.Log("Hello World!~");
}
But you need to define under a class inherit Mx!
using UnityEngine;
using Mx; // For InteractiveAttribute.cs
public class DummyCommands : Mx.Mx
{
// Place your command function here!
}
You can see all more advanced examples in our source code, under Assets/Mx/Editor/Commands!
โ Interactive Attribute's Properties
This part of the document explains all properties inside the Interactive
attribute.
๐งช summary (string)
A brief description of your command. It will appear on the right of your command name.
๐งช icon (string)
The name of the icon.
See the full list of icons in unity-editor-icons.
๐งช tooltip (string)
The full description of your command. It will appear in the popup window when you hover with your mouse.
๐งช enabled (boolean)
Enable/Disable your command. If the value is false, it will not be shown
inside the completion window.
๐งฐ Advanced Usage
Mx provides some functions to accomplish more complex tasks.
โ CompletingRead (prompt, collection, callback, hover, requiredMatch)
Allows you to receive input from the user but limits their answer to the prompt.
CompletingRead("What's your favorite animal: ",
new List<string>() { "Cat", "Dog" },
(answer, _) =>
{
Debug.Log("My favorite animal is " + answer);
});
This is the most commonly used function since you can accomplish any task with it.
โ ReadString (prompt, callback)
A function allows users to input an arbitrary string.
ReadString("What is your name? ",
(answer, _) =>
{
Debug.Log("My name is " + answer);
});
โ ReadNumber (prompt, callback)
A function allows users to input an arbitrary number.
ReadNumber("What is your age? ",
(answer, _) =>
{
Debug.Log("My age is " + answer);
});
The result is a string, but you can parse it with int.Parse or float.Parse.
โ YesOrNo (prompt, callback)
The simplest function that only accepts Yes or No.
YesOrNo("Do you like Cat? ",
(answer, _) =>
{
switch (answer)
{
case "Yes":
Debug.Log("Great! I like it too!");
break;
case "No":
// Do something else
break;
}
});
๐ Credits
This part of the document lists projects that I've used as references to develop Mx.
- Find Editor Tools by
@phwitti- UI extracted here - FlxCs by
@jcs090218- Fuzzy matching library - Prefs by
@jcs090218- Retrieved list ofEditorPrefs/PlayerPrefs
Any other supported projects:
- readme-typing-svg by
@DenverCoder1
๐ See Also
- Find Editor Tools - Command Palette for Unity
- ReUniter - Better Search For Unity
- QuickSearch - A Command Palette for Unity
License
Copyright (c) Jen-Chieh Shen. All rights reserved.
See LICENSE for details.