If you use UdonSharp, you don't need to commit to learn Editor Scripting.
It's likely that you already know how to use Editor Scripting. Being able to use Editor Scripting at the right time can give you a productivity boost. Learn in small chunks.
To get started, it takes a couple minutes:
MyStuff
, and click Create.using UnityEngine;
public class MyStuff : MonoBehaviour
{
public float myValue;
}
Editor/
somewhere.
The name of the folder must be exactly Editor
. It can be located in any folder.MyStuffEditor
using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(MyStuff))]
public class MyStuffEditor : Editor
{
public override void OnInspectorGUI()
{
DrawDefaultInspector();
if (GUILayout.Button("Run"))
{
Run();
}
}
private void Run()
{
var myValue = ((MyStuff)target).myValue;
Debug.Log($"The value is {myValue}");
}
}
Your inspector now has a button labelled Run that you can click, and it will print the value of a field from that object.
There is much more than that possible but this simple script should already get you places.
Think of some of the UdonBehaviours that you run in-game, that you could run one time within the Editor instead.
Placing the Editor script a folder called exactly Editor/
is important because it will prevent the build from crashing, as this depends on UnityEditor
.
It is possible to detect when a VRChat build is going to start, using the IVRCSDKBuildRequestedCallback
callback interface.