Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/liortal53/ucmd
UCmd improves Unity's command line execution by supporting methods with parameters
https://github.com/liortal53/ucmd
cli command-line editor executemethod terminal unity unity-build unity-editor unity3d unity3d-editor unity3d-plugin
Last synced: 3 months ago
JSON representation
UCmd improves Unity's command line execution by supporting methods with parameters
- Host: GitHub
- URL: https://github.com/liortal53/ucmd
- Owner: liortal53
- Created: 2020-04-25T05:27:32.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-04-01T04:33:31.000Z (almost 2 years ago)
- Last Synced: 2024-09-22T11:30:27.592Z (3 months ago)
- Topics: cli, command-line, editor, executemethod, terminal, unity, unity-build, unity-editor, unity3d, unity3d-editor, unity3d-plugin
- Language: C#
- Homepage: https://assetstore.unity.com/packages/tools/utilities/ucmd-125946
- Size: 162 KB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# UCmd
Supercharge Unity's command line execution, allowing execution of methods with arguments.![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)
## Features
[Command Line Execution](#command-line-execution) - Run Unity from the command line, execute methods with arguments.
## Quick Start Guide
### Installation
#### Unity Asset Store
Install directly from the [Unity Asset Store](https://assetstore.unity.com/packages/tools/utilities/ucmd-125946) (FREE).#### Installing from GitHub Repo
1. Visit the [Releases page](https://github.com/liortal53/UCmd/releases) and download the latest `UCmd.dll`.
2. Open Unity and place this file in an Editor folder.### Usage
#### Command Line Execution
Unity can be launched from the [command line](https://docs.unity3d.com/Manual/EditorCommandLineArguments.html). This is useful for CI/CD cases (automatically building your project on a build server).It works by supplying the name of a static method using the *-executeMethod* argument:
Unity -executeMethod MyClass.MyStaticMethod
*MyStaticMethod* must be defined without any arguments, so if the build requires any additional data, it must be extract from the command line arguments inside this method:
```csharp
private static void MyStaticMethod()
{
// Extract any additional arguments from the command line
var platform = GetOptionFromCommandLine("platform");
var data = GetOptionFromCommandLine("data");
}
```With UCmd, the same syntax is used, but the method executed is UCmd.Run:
Unity -executeMethod UCmd.Run MyClass.MyStaticMethod
Now it's possible to execute methods that take additional arguments.
UCmd acts as a "middle man", using reflection to invoke the required method and passing it the arguments from the command line:
Unity -executeMethod UCmd.Run MyClass.MyStaticMethod "Android" "1.0.0" "data"
And the method definition:```csharp
private static void MyStaticMethod(string platform, string version, string data)
{
// Build code here
}
```## Contact
For support or any additional feature requests, please report an issue, or conact me directly: [email protected]