Browse Source

Exposed common GameObject methods like Find, Instantiate, Destroy

master
chrisgregan 9 years ago
parent
commit
b4b62f22cf
  1. 40
      Assets/Fungus/Lua/Scripts/LuaUtils.cs
  2. 281
      Assets/Tests/Lua/LuaEnvironmentTests.unity

40
Assets/Fungus/Lua/Scripts/LuaUtils.cs

@ -302,6 +302,46 @@ namespace Fungus
} }
} }
/// <summary>
/// Find a game object by name and returns it.
/// </summary>
public virtual GameObject Find(string name)
{
return GameObject.Find(name);
}
/// <summary>
/// Returns one active GameObject tagged tag. Returns null if no GameObject was found.
/// </summary>
public virtual GameObject FindWithTag(string tag)
{
return GameObject.FindGameObjectWithTag(tag);
}
/// <summary>
/// Returns a list of active GameObjects tagged tag. Returns empty array if no GameObject was found.
/// </summary>
public virtual GameObject[] FindGameObjectsWithTag(string tag)
{
return GameObject.FindGameObjectsWithTag(tag);
}
/// <summary>
/// Create a copy of a GameObject.
/// Can be used to instantiate prefabs.
/// </summary>
public virtual GameObject Instantiate(GameObject go)
{
return GameObject.Instantiate(go);
}
/// <summary>
/// Destroys an instance of a GameObject.
/// </summary>
public virtual void Destroy(GameObject go)
{
GameObject.Destroy(go);
}
} }
} }

281
Assets/Tests/Lua/LuaEnvironmentTests.unity

@ -262,7 +262,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 0
--- !u!114 &256438763 --- !u!114 &256438763
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -515,6 +515,65 @@ Transform:
Transform: Transform:
m_PrefabParentObject: {fileID: 495584, guid: 49031c561e16d4fcf91c12153f8e0b25, type: 2} m_PrefabParentObject: {fileID: 495584, guid: 49031c561e16d4fcf91c12153f8e0b25, type: 2}
m_PrefabInternal: {fileID: 1073733979} m_PrefabInternal: {fileID: 1073733979}
--- !u!1 &550607923
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 100640, guid: 49031c561e16d4fcf91c12153f8e0b25, type: 2}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 550607924}
- 114: {fileID: 550607926}
- 114: {fileID: 550607925}
m_Layer: 0
m_Name: LuaEnvironment
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &550607924
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 495584, guid: 49031c561e16d4fcf91c12153f8e0b25, type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 550607923}
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: 1537199682}
m_RootOrder: 0
--- !u!114 &550607925
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 11486636, guid: 49031c561e16d4fcf91c12153f8e0b25,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 550607923}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c10f0b861365b42b0928858f7b086ff3, type: 3}
m_Name:
m_EditorClassIdentifier:
stringTable: {fileID: 0}
activeLanguage: en
timeScale: -1
registerTypes:
- {fileID: 4900000, guid: 9c3ab7a98d51241bbb499643399fa761, type: 3}
--- !u!114 &550607926
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 11493126, guid: 49031c561e16d4fcf91c12153f8e0b25,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 550607923}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ba19c26c1ba7243d2b57ebc4329cc7c6, type: 3}
m_Name:
m_EditorClassIdentifier:
remoteDebugger: 0
--- !u!1 &637150167 --- !u!1 &637150167
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -729,6 +788,33 @@ Transform:
- {fileID: 681659774} - {fileID: 681659774}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 5 m_RootOrder: 5
--- !u!1 &804588883
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 804588884}
m_Layer: 0
m_Name: TestGameObject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &804588884
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 804588883}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -3.8587983, y: -2.6257849, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1537199682}
m_RootOrder: 3
--- !u!1 &1052730009 --- !u!1 &1052730009
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1159,6 +1245,65 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
--- !u!1 &1436236943
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 178698, guid: e0c2b90c058ff43f4a56a266d4fa721b, type: 2}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1436236944}
- 114: {fileID: 1436236945}
m_Layer: 0
m_Name: LuaBindings
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1436236944
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 403334, guid: e0c2b90c058ff43f4a56a266d4fa721b, type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1436236943}
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: 1537199682}
m_RootOrder: 2
--- !u!114 &1436236945
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 11414792, guid: e0c2b90c058ff43f4a56a266d4fa721b,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1436236943}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4cc8a659e950044b69d7c62696c36962, type: 3}
m_Name:
m_EditorClassIdentifier:
tableName:
registerTypes: 1
boundTypes:
- UnityEngine.GameObject, UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
- UnityEngine.PrimitiveType, UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
- UnityEngine.Component, UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
- System.Type, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- UnityEngine.SendMessageOptions, UnityEngine, Version=0.0.0.0, Culture=neutral,
PublicKeyToken=null
- UnityEngine.SceneManagement.Scene, UnityEngine, Version=0.0.0.0, Culture=neutral,
PublicKeyToken=null
- UnityEngine.Object, UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
- System.Single, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
boundObjects:
- key: testgameobject
obj: {fileID: 804588883}
component: {fileID: 0}
--- !u!1 &1463630762 --- !u!1 &1463630762
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1319,6 +1464,59 @@ Transform:
- {fileID: 1738134228} - {fileID: 1738134228}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 3 m_RootOrder: 3
--- !u!1 &1537199680
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1537199682}
- 114: {fileID: 1537199681}
m_Layer: 0
m_Name: GameObjectTest
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1537199681
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1537199680}
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 &1537199682
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1537199680}
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: 550607924}
- {fileID: 1932132174}
- {fileID: 1436236944}
- {fileID: 804588884}
m_Father: {fileID: 0}
m_RootOrder: 12
--- !u!1 &1549270604 --- !u!1 &1549270604
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
@ -1623,7 +1821,7 @@ MonoBehaviour:
variablesScrollPos: {x: 0, y: 0} variablesScrollPos: {x: 0, y: 0}
variablesExpanded: 1 variablesExpanded: 1
blockViewHeight: 400 blockViewHeight: 400
zoom: 1 zoom: 0.983999
scrollViewRect: scrollViewRect:
serializedVersion: 2 serializedVersion: 2
x: -343 x: -343
@ -1631,7 +1829,8 @@ MonoBehaviour:
width: 1114 width: 1114
height: 859 height: 859
selectedBlock: {fileID: 1828947834} selectedBlock: {fileID: 1828947834}
selectedCommands: [] selectedCommands:
- {fileID: 1828947833}
variables: [] variables: []
description: "Check if the LuaStore prime table is created \nand registered as fungus.store, description: "Check if the LuaStore prime table is created \nand registered as fungus.store,
and if we can write and read values to it." and if we can write and read values to it."
@ -1683,7 +1882,7 @@ MonoBehaviour:
nodeRect: nodeRect:
serializedVersion: 2 serializedVersion: 2
x: 67 x: 67
y: 69 y: 67.983734
width: 120 width: 120
height: 40 height: 40
itemId: 0 itemId: 0
@ -1823,6 +2022,80 @@ Transform:
- {fileID: 1124932172} - {fileID: 1124932172}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 4 m_RootOrder: 4
--- !u!1 &1932132173
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 139298, guid: c356764ac08ce4af2806a601a4f1e6e9, type: 2}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1932132174}
- 114: {fileID: 1932132175}
m_Layer: 0
m_Name: LuaScript
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1932132174
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 449874, guid: c356764ac08ce4af2806a601a4f1e6e9, type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1932132173}
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: 1537199682}
m_RootOrder: 1
--- !u!114 &1932132175
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 11472914, guid: c356764ac08ce4af2806a601a4f1e6e9,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1932132173}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 446caeace65234baaacd52095d24f101, type: 3}
m_Name:
m_EditorClassIdentifier:
executeAfterTime: 1
repeatExecuteTime: 1
repeatEveryTime: 1
executeAfterFrames: 1
repeatExecuteFrame: 1
repeatEveryFrame: 1
hasFailed: 0
executeMethods: 2
luaEnvironment: {fileID: 0}
luaFile: {fileID: 0}
luaScript: '-- Test cloning and renaming a game object
testgo = unity.luautils.find("TestGameObject")
fungus.assert(testgo != null)
go = unity.luautils.instantiate(testgo)
fungus.assert(go != null)
go.name = "fred"
fungus.assert(go.name == "fred")
unity.luautils.destroy(go)
fungus.pass()'
runAsCoroutine: 1
useFungusModule: 1
--- !u!1 &1960220030 --- !u!1 &1960220030
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

Loading…
Cancel
Save