Browse Source

Use Lua text file in ExecuteLua command

master
Chris Gregan 9 years ago
parent
commit
204ce467d8
  1. 43
      Assets/Fungus/Lua/Scripts/Commands/ExecuteLua.cs
  2. 4
      Assets/Fungus/Lua/Scripts/LuaExtensions.cs
  3. 80
      Assets/Fungus/Thirdparty/FungusLua/Scripts/LuaEnvironment.cs
  4. 2
      Assets/Fungus/Thirdparty/FungusLua/Scripts/LuaScript.cs
  5. 77
      Assets/Tests/Lua/FungusTests.unity
  6. 235
      Assets/Tests/Lua/LuaEnvironmentTests.unity
  7. 3
      Assets/Tests/TestAssets/Text/TestLua.txt
  8. 8
      Assets/Tests/TestAssets/Text/TestLua.txt.meta

43
Assets/Fungus/Lua/Scripts/Commands/ExecuteLua.cs

@ -14,8 +14,11 @@ namespace Fungus
[Tooltip("Lua Environment to use to execute this Lua script")]
public LuaEnvironment luaEnvironment;
[Tooltip("A text file containing Lua script to execute.")]
public TextAsset luaFile;
[TextArea(10,100)]
[Tooltip("Lua script to execute. Use {$VarName} to insert a Flowchart variable in the Lua script.")]
[Tooltip("Lua script to execute. This text is appended to the contents of Lua file (if one is specified).")]
public string luaScript;
[Tooltip("Execute this Lua script as a Lua coroutine")]
@ -30,7 +33,10 @@ namespace Fungus
protected string friendlyName = "";
protected bool initialised ;
protected bool initialised;
// Stores the compiled Lua code for fast execution later.
protected Closure luaFunction;
protected virtual void Start()
{
@ -55,19 +61,38 @@ namespace Fungus
luaEnvironment = LuaEnvironment.GetLua();
}
initialised = true;
string s = GetLuaString();
luaFunction = luaEnvironment.LoadLuaString(s, friendlyName);
// Always initialise when playing in the editor.
// Allows the user to edit the Lua script while the game is playing.
if ( !(Application.isPlaying && Application.isEditor) )
{
initialised = true;
}
}
protected virtual string GetLuaString()
{
if (luaFile == null)
{
return luaScript;
}
return luaFile.text + "\n" + luaScript;
}
public override void OnEnter()
{
InitExecuteLua();
// Note: We can't pre compile the Lua script in this command because we want to
// support variable substitution in the Lua string.
// If this is too slow, consider using a LuaScript object and calling OnExecute() on it instead.
string subbed = GetFlowchart().SubstituteVariables(luaScript);
luaEnvironment.DoLuaString(subbed, friendlyName, runAsCoroutine, (returnValue) => {
if (luaFunction == null)
{
Continue();
}
luaEnvironment.RunLuaFunction(luaFunction, GetLuaString(), runAsCoroutine, (returnValue) => {
StoreReturnVariable(returnValue);
if (waitUntilFinished)
{

4
Assets/Fungus/Lua/Scripts/LuaExtensions.cs

@ -41,7 +41,7 @@ namespace Fungus
if (callBack != null)
{
luaEnvironment.RunLuaCoroutine(callBack, text);
luaEnvironment.RunLuaFunction(callBack, text, true);
}
});
@ -89,7 +89,7 @@ namespace Fungus
if (callBack != null)
{
luaEnvironment.RunLuaCoroutine(callBack, "menutimer");
luaEnvironment.RunLuaFunction(callBack, "menutimer", true);
}
}
}

80
Assets/Fungus/Thirdparty/FungusLua/Scripts/LuaEnvironment.cs vendored

@ -196,16 +196,43 @@ namespace Fungus
}
/// <summary>
/// Load and run a string containing Lua script. May be run as a coroutine.
/// Loads and compiles a string containing Lua script, returning a closure (Lua function) which can be executed later.
/// <param name="luaString">The Lua code to be run.</param>
/// <param name="friendlyName">A descriptive name to be used in error reports.</param>
/// <param name="runAsCoroutine">Run the Lua code as a coroutine to support asynchronous operations.</param>
/// <param name="onComplete">Method to callback when the Lua code finishes exection. Supports return parameters.</param>
/// </summary>
public virtual void DoLuaString(string luaString, string friendlyName, bool runAsCoroutine, Action<DynValue> onComplete = null)
public virtual Closure LoadLuaString(string luaString, string friendlyName)
{
Closure fn = LoadLuaString(luaString, friendlyName);
InitEnvironment();
// Load the Lua script
DynValue res = null;
try
{
res = interpreter.LoadString(luaString, null, friendlyName);
}
catch (InterpreterException ex)
{
LogException(ex.DecoratedMessage, luaString);
}
if (res.Type != DataType.Function)
{
UnityEngine.Debug.LogError("Failed to create Lua function from Lua string");
return null;
}
return res.Function;
}
/// <summary>
/// Load and run a previously compiled Lua script. May be run as a coroutine.
/// <param name="fn">A previously compiled Lua function.</param>
/// <param name="luaString">The Lua code to display in case of an error.</param>
/// <param name="runAsCoroutine">Run the Lua code as a coroutine to support asynchronous operations.</param>
/// <param name="onComplete">Method to callback when the Lua code finishes exection. Supports return parameters.</param>
/// </summary>
public virtual void RunLuaFunction(Closure fn, string luaString, bool runAsCoroutine, Action<DynValue> onComplete = null)
{
if (fn == null)
{
if (onComplete != null)
@ -219,7 +246,7 @@ namespace Fungus
// Execute the Lua script
if (runAsCoroutine)
{
StartCoroutine(RunLuaCoroutineInternal(fn, luaString, onComplete));
StartCoroutine(RunLuaCoroutine(fn, luaString, onComplete));
}
else
{
@ -241,43 +268,16 @@ namespace Fungus
}
/// <summary>
/// Loads and compiles a string containing Lua script, returning a closure (Lua function) which can be executed later.
/// Load and run a string containing Lua script. May be run as a coroutine.
/// <param name="luaString">The Lua code to be run.</param>
/// <param name="friendlyName">A descriptive name to be used in error reports.</param>
/// <param name="runAsCoroutine">Run the Lua code as a coroutine to support asynchronous operations.</param>
/// <param name="onComplete">Method to callback when the Lua code finishes exection. Supports return parameters.</param>
/// </summary>
public virtual Closure LoadLuaString(string luaString, string friendlyName)
{
InitEnvironment();
// Load the Lua script
DynValue res = null;
try
{
res = interpreter.LoadString(luaString, null, friendlyName);
}
catch (InterpreterException ex)
{
LogException(ex.DecoratedMessage, luaString);
}
if (res.Type != DataType.Function)
{
UnityEngine.Debug.LogError("Failed to create Lua function from Lua string");
return null;
}
return res.Function;
}
/// <summary>
/// Starts a Unity coroutine which updates a Lua coroutine each frame.
/// <param name="closure">A MoonSharp closure object representing a function.</param>
/// <param name="debugInfo">Debug text to display if an exception occurs (usually the Lua code that is being executed).</param>
/// <param name="onComplete">A delegate method that is called when the coroutine completes. Includes return parameter.</param>
/// </summary>
public virtual void RunLuaCoroutine(Closure closure, string debugInfo, Action<DynValue> onComplete = null)
public virtual void DoLuaString(string luaString, string friendlyName, bool runAsCoroutine, Action<DynValue> onComplete = null)
{
StartCoroutine(RunLuaCoroutineInternal(closure, debugInfo, onComplete));
Closure fn = LoadLuaString(luaString, friendlyName);
RunLuaFunction(fn, luaString, runAsCoroutine, onComplete);
}
/// <summary>
@ -286,7 +286,7 @@ namespace Fungus
/// <param name="debugInfo">Debug text to display if an exception occurs (usually the Lua code that is being executed).</param>
/// <param name="onComplete">A delegate method that is called when the coroutine completes. Includes return parameter.</param>
/// </summary>
protected virtual IEnumerator RunLuaCoroutineInternal(Closure closure, string debugInfo, Action<DynValue> onComplete = null)
protected virtual IEnumerator RunLuaCoroutine(Closure closure, string debugInfo, Action<DynValue> onComplete = null)
{
DynValue co = interpreter.CreateCoroutine(closure);

2
Assets/Fungus/Thirdparty/FungusLua/Scripts/LuaScript.cs vendored

@ -138,7 +138,7 @@ namespace Fungus
}
else
{
luaEnvironment.RunLuaCoroutine(luaFunction, luaScript);
luaEnvironment.RunLuaFunction(luaFunction, luaScript, runAsCoroutine);
}
}
}

77
Assets/Tests/Lua/FungusTests.unity

@ -813,12 +813,15 @@ MonoBehaviour:
errorMessage:
indentLevel: 0
luaEnvironment: {fileID: 0}
luaFile: {fileID: 4900000, guid: 6cbce76ae849c40cb86ed0bb1b6e1a95, type: 3}
luaScript: '-- Test executing Lua script from a Fungus command
-- Test Flowchart variable substitution
-- Test Flowchart public variable substitution
check("{$StringVar}" == "it worked")
local s = sub("{$StringVar}")
check(s == "it worked")
pass()'
@ -852,7 +855,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
nodeRect:
serializedVersion: 2
x: 67
x: 68
y: 70
width: 120
height: 40
@ -910,7 +913,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 4580f28dd8581476b810b38eea2f1316, type: 3}
m_Name:
m_EditorClassIdentifier:
scope: 0
scope: 1
key: StringVar
value: it worked
--- !u!1 &95979348
@ -1201,7 +1204,7 @@ MonoBehaviour:
check (s.value == "a string")
t = gettime()
t = time.timeSinceLevelLoad
-- Execute a block to change the variable
@ -1211,7 +1214,7 @@ MonoBehaviour:
runwait( b.Execute() )
check(gettime() - t >= 1)
check(time.timeSinceLevelLoad - t >= 1)
-- Check the new value of StringVar
@ -5376,6 +5379,7 @@ MonoBehaviour:
errorMessage:
indentLevel: 0
luaEnvironment: {fileID: 0}
luaFile: {fileID: 0}
luaScript: return true
runAsCoroutine: 0
waitUntilFinished: 1
@ -5491,6 +5495,7 @@ MonoBehaviour:
errorMessage:
indentLevel: 0
luaEnvironment: {fileID: 0}
luaFile: {fileID: 0}
luaScript: return 1.0
runAsCoroutine: 0
waitUntilFinished: 1
@ -5510,6 +5515,7 @@ MonoBehaviour:
errorMessage:
indentLevel: 0
luaEnvironment: {fileID: 0}
luaFile: {fileID: 0}
luaScript: return 2
runAsCoroutine: 0
waitUntilFinished: 1
@ -5529,6 +5535,7 @@ MonoBehaviour:
errorMessage:
indentLevel: 0
luaEnvironment: {fileID: 0}
luaFile: {fileID: 0}
luaScript: return "a string"
runAsCoroutine: 0
waitUntilFinished: 1
@ -5604,6 +5611,7 @@ MonoBehaviour:
errorMessage:
indentLevel: 0
luaEnvironment: {fileID: 0}
luaFile: {fileID: 0}
luaScript: 'local c = factory.color(1, 0.5, 1, 1)
@ -5626,6 +5634,7 @@ MonoBehaviour:
errorMessage:
indentLevel: 0
luaEnvironment: {fileID: 0}
luaFile: {fileID: 0}
luaScript: return testgameobject
runAsCoroutine: 0
waitUntilFinished: 1
@ -5673,6 +5682,7 @@ MonoBehaviour:
errorMessage:
indentLevel: 0
luaEnvironment: {fileID: 0}
luaFile: {fileID: 0}
luaScript: return testmaterial
runAsCoroutine: 0
waitUntilFinished: 1
@ -5706,6 +5716,7 @@ MonoBehaviour:
errorMessage:
indentLevel: 0
luaEnvironment: {fileID: 0}
luaFile: {fileID: 0}
luaScript: return testgameobject
runAsCoroutine: 0
waitUntilFinished: 1
@ -5739,6 +5750,7 @@ MonoBehaviour:
errorMessage:
indentLevel: 0
luaEnvironment: {fileID: 0}
luaFile: {fileID: 0}
luaScript: return mushroom
runAsCoroutine: 0
waitUntilFinished: 1
@ -5772,6 +5784,7 @@ MonoBehaviour:
errorMessage:
indentLevel: 0
luaEnvironment: {fileID: 0}
luaFile: {fileID: 0}
luaScript: 'local v = factory.vector2(1,1)
@ -5808,6 +5821,7 @@ MonoBehaviour:
errorMessage:
indentLevel: 0
luaEnvironment: {fileID: 0}
luaFile: {fileID: 0}
luaScript: return mousepointer
runAsCoroutine: 0
waitUntilFinished: 1
@ -5841,6 +5855,7 @@ MonoBehaviour:
errorMessage:
indentLevel: 0
luaEnvironment: {fileID: 0}
luaFile: {fileID: 0}
luaScript: 'local v = factory.vector3(1,1,1)
return v'
@ -7965,7 +7980,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!114 &1676590048
MonoBehaviour:
m_ObjectHideFlags: 0
@ -8325,7 +8340,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!114 &1730192709
MonoBehaviour:
m_ObjectHideFlags: 0
@ -8359,7 +8374,6 @@ Transform:
m_Children:
- {fileID: 56584889}
- {fileID: 2134815026}
- {fileID: 2090444089}
m_Father: {fileID: 0}
m_RootOrder: 11
--- !u!1 &1736454666
@ -8859,7 +8873,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 61dddfdc5e0e44ca298d8f46f7f5a915, type: 3}
m_Name:
m_EditorClassIdentifier:
selectedFlowchart: {fileID: 807616590}
selectedFlowchart: {fileID: 56584893}
--- !u!4 &1791050794
Transform:
m_ObjectHideFlags: 1
@ -9951,49 +9965,6 @@ Canvas:
m_SortingLayerID: 0
m_SortingOrder: 1
m_TargetDisplay: 0
--- !u!1 &2090444088
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 2090444089}
- 114: {fileID: 2090444090}
m_Layer: 0
m_Name: LuaScript
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2090444089
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2090444088}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1730192710}
m_RootOrder: 2
--- !u!114 &2090444090
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2090444088}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 446caeace65234baaacd52095d24f101, type: 3}
m_Name:
m_EditorClassIdentifier:
luaEnvironment: {fileID: 0}
luaFile: {fileID: 0}
luaScript:
runAsCoroutine: 1
--- !u!1001 &2092185197
Prefab:
m_ObjectHideFlags: 0

235
Assets/Tests/Lua/LuaEnvironmentTests.unity

@ -447,7 +447,7 @@ Transform:
- {fileID: 1828947836}
- {fileID: 1463630763}
m_Father: {fileID: 0}
m_RootOrder: 11
m_RootOrder: 10
--- !u!1 &304626605
GameObject:
m_ObjectHideFlags: 0
@ -552,8 +552,8 @@ MonoBehaviour:
luaEnvironment: {fileID: 0}
luaFile: {fileID: 0}
luaScript: "-- Test the timeout works in fungus.waitfor\nlocal value = false\n\nfunction
fn()\n return value\nend\n\nt = gettime()\nwaitfor(fn, 1)\ncheck(gettime() -
t >= 1)\n\n-- Test fungus.waitfor() exits if the function returns true\n-- If
fn()\n return value\nend\n\nt = time.timeSinceLevelLoad\nwaitfor(fn, 1)\ncheck(time.timeSinceLevelLoad
- t >= 1)\n\n-- Test fungus.waitfor() exits if the function returns true\n-- If
this doesn't work the test will timeout and fail\nvalue = true\nwaitfor(fn, 1)\n\npass()"
runAsCoroutine: 1
--- !u!114 &305346653
@ -576,56 +576,6 @@ MonoBehaviour:
hasFailed: 0
executeMethods: 2
executeMethodName: OnExecute
--- !u!1001 &364012152
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 1900871526}
m_Modifications:
- target: {fileID: 495584, guid: 49031c561e16d4fcf91c12153f8e0b25, type: 2}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 495584, guid: 49031c561e16d4fcf91c12153f8e0b25, type: 2}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 495584, guid: 49031c561e16d4fcf91c12153f8e0b25, type: 2}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 495584, guid: 49031c561e16d4fcf91c12153f8e0b25, type: 2}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 495584, guid: 49031c561e16d4fcf91c12153f8e0b25, type: 2}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 495584, guid: 49031c561e16d4fcf91c12153f8e0b25, type: 2}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 495584, guid: 49031c561e16d4fcf91c12153f8e0b25, type: 2}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 495584, guid: 49031c561e16d4fcf91c12153f8e0b25, type: 2}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 11493126, guid: 49031c561e16d4fcf91c12153f8e0b25, type: 2}
propertyPath: timeScale
value: -1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 49031c561e16d4fcf91c12153f8e0b25, type: 2}
m_IsPrefabParent: 0
--- !u!4 &364012153 stripped
Transform:
m_PrefabParentObject: {fileID: 495584, guid: 49031c561e16d4fcf91c12153f8e0b25, type: 2}
m_PrefabInternal: {fileID: 364012152}
--- !u!1 &367860753
GameObject:
m_ObjectHideFlags: 0
@ -718,7 +668,6 @@ MonoBehaviour:
m_EditorClassIdentifier:
fungusModule: 0
activeLanguage: en
timeScale: -1
stringTables: []
registerTypes:
- {fileID: 4900000, guid: 9c3ab7a98d51241bbb499643399fa761, type: 3}
@ -750,7 +699,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!114 &637150168
MonoBehaviour:
m_ObjectHideFlags: 0
@ -785,7 +734,7 @@ Transform:
- {fileID: 236999594}
- {fileID: 305346651}
m_Father: {fileID: 0}
m_RootOrder: 9
m_RootOrder: 8
--- !u!1001 &652121444
Prefab:
m_ObjectHideFlags: 0
@ -960,7 +909,7 @@ Transform:
- {fileID: 2093904138}
- {fileID: 681659774}
m_Father: {fileID: 0}
m_RootOrder: 7
m_RootOrder: 6
--- !u!1 &804588883
GameObject:
m_ObjectHideFlags: 0
@ -1031,7 +980,6 @@ MonoBehaviour:
m_EditorClassIdentifier:
fungusModule: 0
activeLanguage: en
timeScale: -1
stringTables: []
registerTypes:
- {fileID: 4900000, guid: 9c3ab7a98d51241bbb499643399fa761, type: 3}
@ -1184,7 +1132,6 @@ MonoBehaviour:
m_EditorClassIdentifier:
fungusModule: 0
activeLanguage: en
timeScale: -1
stringTables: []
registerTypes:
- {fileID: 4900000, guid: 9c3ab7a98d51241bbb499643399fa761, type: 3}
@ -1202,113 +1149,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
remoteDebugger: 0
--- !u!1 &1124932171
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1124932172}
- 114: {fileID: 1124932174}
- 114: {fileID: 1124932173}
m_Layer: 0
m_Name: LuaScript
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1124932172
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1124932171}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1900871526}
m_RootOrder: 1
--- !u!114 &1124932173
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1124932171}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 446caeace65234baaacd52095d24f101, type: 3}
m_Name:
m_EditorClassIdentifier:
luaEnvironment: {fileID: 0}
luaFile: {fileID: 0}
luaScript: '-- Test time functions and time scaling
local t = 0
local timer = time.time
-- Wait with timeScale = -1
-- Should take 1 second in realtime to wait for 1 second
t = gettime()
wait(1)
t = gettime() - t
check(t >= 1)
-- Wait with timeScale = 0.5
-- Should take 2 seconds in realtime to wait for 1 second
settimescale(0.5)
t = gettime()
wait(1)
t = gettime() - t
check(t >= 1)
-- The real elapsed time should be 3 seconds
elapsed = (time.time - timer)
check(elapsed >= 3)
pass()'
runAsCoroutine: 1
--- !u!114 &1124932174
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1124932171}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6ee79785811ba49399c1b56d7309e3df, type: 3}
m_Name:
m_EditorClassIdentifier:
executeAfterTime: 1
repeatExecuteTime: 1
repeatEveryTime: 1
executeAfterFrames: 1
repeatExecuteFrame: 1
repeatEveryFrame: 1
hasFailed: 0
executeMethods: 2
executeMethodName: OnExecute
--- !u!4 &1167396341 stripped
Transform:
m_PrefabParentObject: {fileID: 495584, guid: 49031c561e16d4fcf91c12153f8e0b25, type: 2}
@ -1365,7 +1205,7 @@ Transform:
- {fileID: 304626606}
- {fileID: 113453956}
m_Father: {fileID: 0}
m_RootOrder: 10
m_RootOrder: 9
--- !u!1 &1258610945
GameObject:
m_ObjectHideFlags: 0
@ -1609,7 +1449,6 @@ MonoBehaviour:
m_EditorClassIdentifier:
fungusModule: 0
activeLanguage: en
timeScale: -1
stringTables: []
registerTypes:
- {fileID: 4900000, guid: 9c3ab7a98d51241bbb499643399fa761, type: 3}
@ -1778,7 +1617,7 @@ Transform:
- {fileID: 1932132174}
- {fileID: 804588884}
m_Father: {fileID: 0}
m_RootOrder: 12
m_RootOrder: 11
--- !u!1 &1549270604
GameObject:
m_ObjectHideFlags: 1
@ -1818,7 +1657,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 8
m_RootOrder: 7
--- !u!1 &1575922005
GameObject:
m_ObjectHideFlags: 0
@ -1869,7 +1708,7 @@ Transform:
- {fileID: 159008373}
- {fileID: 1073989295}
m_Father: {fileID: 0}
m_RootOrder: 14
m_RootOrder: 13
--- !u!1 &1734188738
GameObject:
m_ObjectHideFlags: 0
@ -2193,6 +2032,7 @@ MonoBehaviour:
errorMessage:
indentLevel: 0
luaEnvironment: {fileID: 0}
luaFile: {fileID: 0}
luaScript: 'store.test = "ok"
@ -2365,58 +2205,7 @@ Transform:
- {fileID: 870653407}
- {fileID: 156811091}
m_Father: {fileID: 0}
m_RootOrder: 13
--- !u!1 &1900871524
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1900871526}
- 114: {fileID: 1900871525}
m_Layer: 0
m_Name: TimeTest
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!114 &1900871525
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1900871524}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b1dba0b27b0864740a8720e920aa88c0, type: 3}
m_Name:
m_EditorClassIdentifier:
timeout: 5
ignored: 0
succeedAfterAllAssertionsAreExecuted: 0
expectException: 0
expectedExceptionList:
succeedWhenExceptionIsThrown: 0
includedPlatforms: -1
platformsToIgnore: []
dynamic: 0
dynamicTypeName:
--- !u!4 &1900871526
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1900871524}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 364012153}
- {fileID: 1124932172}
m_Father: {fileID: 0}
m_RootOrder: 6
m_RootOrder: 12
--- !u!1 &1932132173
GameObject:
m_ObjectHideFlags: 0

3
Assets/Tests/TestAssets/Text/TestLua.txt

@ -0,0 +1,3 @@
-- Check that Lua in a file executes ok in ExecuteLua command
local v = 10
check(v == 10)

8
Assets/Tests/TestAssets/Text/TestLua.txt.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6cbce76ae849c40cb86ed0bb1b6e1a95
timeCreated: 1461651736
licenseType: Free
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
Loading…
Cancel
Save