Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jcs090218/unity.mx
M-x for Unity
https://github.com/jcs090218/unity.mx
command command-palette m-x unity
Last synced: 3 months ago
JSON representation
M-x for Unity
- Host: GitHub
- URL: https://github.com/jcs090218/unity.mx
- Owner: jcs090218
- License: mit
- Created: 2023-09-22T22:03:21.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-08-23T10:00:29.000Z (5 months ago)
- Last Synced: 2024-10-03T12:44:57.221Z (4 months ago)
- Topics: command, command-palette, m-x, unity
- Language: C#
- Homepage: https://openupm.com/packages/com.jcs090218.mx/
- Size: 36 MB
- Stars: 30
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
> 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](#๐-features)
- [๐ Commands](#๐-commands)
- [๐พ Installation](#๐พ-installation)
- [๐จ Usage](#๐จ-usage)
- [โ How to define your own command?](#โ-how-to-define-your-own-command)
- [โ `Interactive` Attribute's Properties](#โ-interactive-attributes-properties)
- [๐งช summary (`string`)](#๐งช-summary-string)
- [๐งช icon (`string`)](#๐งช-icon-string)
- [๐งช tooltip (`string`)](#๐งช-tooltip-string)
- [๐งช enabled (`boolean`)](#๐งช-enabled-boolean)
- [๐งฐ Advanced Usage](#๐งฐ-advanced-usage)
- [โ CompletingRead (`prompt`, `collection`, `callback`, `hover`, `requiredMatch`)](#โ-completingread-prompt-collection-callback-hover-requiredmatch)
- [โ ReadString (`prompt`, `callback`)](#โ-readstring-prompt-callback)
- [โ ReadNumber (`prompt`, `callback`)](#โ-readnumber-prompt-callback)
- [โ YesOrNo (`prompt`, `callback`)](#โ-yesorno-prompt-callback)
- [๐ Credits](#๐-credits)
- [๐ See Also](#๐-see-also)
- [License](#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 `EditorPrefs` and `PlayerPrefs`
- Visually see things in action (hover event)
- Configurable & Extensibleand more!
## ๐พ Installation
Go to our [release page](https://github.com/jcs090218/Unity.Mx/releases) and download the latest `.unitypackage`.
Then simply import it to your project!Or install it through [OpenUPM](https://openupm.com/packages/com.jcs090218.mx/):
```sh
$ 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`.
```cs
[Interactive(summary: "Print Hello World!")]
private static void PrintHelloWorld()
{
Debug.Log("Hello World!~");
}
```But you need to define under a class inherit `Mx`!
```cs
using UnityEngine;
using Mx; // For InteractiveAttribute.cspublic 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.
```cs
CompletingRead("What's your favorite animal: ",
new List() { "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.
```cs
ReadString("What is your name? ",
(answer, _) =>
{
Debug.Log("My name is " + answer);
});
```### โ ReadNumber (`prompt`, `callback`)
A function allows users to input an arbitrary number.
```cs
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`.
```cs
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 of `EditorPrefs`/`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](./LICENSE) for details.
[Assets/Mx/Editor/Commands]: https://github.com/jcs090218/Unity.Mx/tree/master/Assets/Mx/Editor/Commands
[unity-editor-icons]: https://github.com/halak/unity-editor-icons[Find Editor Tools]: https://github.com/phwitti/unity-find-editor-tools
[FlxCs]: https://github.com/jcs090218/FlxCs
[Prefs]: https://github.com/jcs090218/Unity.Prefs
[readme-typing-svg]: https://github.com/DenverCoder1/readme-typing-svg[ReUniter]: https://assetstore.unity.com/packages/tools/utilities/reuniter-better-search-for-unity-28691
[QuickSearch]: https://github.com/appetizermonster/Unity3D-QuickSearch