|
|
|
// This code is part of the Fungus library (http://fungusgames.com) maintained by Chris Gregan (http://twitter.com/gofungus).
|
|
|
|
// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE)
|
|
|
|
|
|
|
|
using UnityEditor;
|
|
|
|
|
|
|
|
namespace Fungus
|
|
|
|
{
|
|
|
|
[CustomEditor (typeof(LuaScript))]
|
|
|
|
public class LuaScriptEditor : Editor
|
|
|
|
{
|
|
|
|
protected SerializedProperty luaEnvironmentProp;
|
|
|
|
protected SerializedProperty luaFileProp;
|
|
|
|
protected SerializedProperty luaScriptProp;
|
|
|
|
protected SerializedProperty runAsCoroutineProp;
|
|
|
|
|
|
|
|
protected virtual void OnEnable()
|
|
|
|
{
|
|
|
|
luaEnvironmentProp = serializedObject.FindProperty("luaEnvironment");
|
|
|
|
luaFileProp = serializedObject.FindProperty("luaFile");
|
|
|
|
luaScriptProp = serializedObject.FindProperty("luaScript");
|
|
|
|
runAsCoroutineProp = serializedObject.FindProperty("runAsCoroutine");
|
|
|
|
}
|
|
|
|
|
|
|
|
public override void OnInspectorGUI()
|
|
|
|
{
|
|
|
|
serializedObject.Update();
|
|
|
|
|
|
|
|
EditorGUILayout.PropertyField(luaEnvironmentProp);
|
|
|
|
EditorGUILayout.PropertyField(luaFileProp);
|
|
|
|
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
|
|
|
|
|
|
EditorGUILayout.PropertyField(luaScriptProp);
|
|
|
|
|
|
|
|
if (EditorGUI.EndChangeCheck() &&
|
|
|
|
EditorApplication.isPlaying)
|
|
|
|
{
|
|
|
|
// Reinitialise if the Lua script is changed while running in editor
|
|
|
|
LuaScript luaScript = target as LuaScript;
|
|
|
|
luaScript.Initialised = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
EditorGUILayout.PropertyField(runAsCoroutineProp);
|
|
|
|
|
|
|
|
serializedObject.ApplyModifiedProperties();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|