Browse Source

Added Spawn method for spawning a game object from a resource

master
chrisgregan 9 years ago
parent
commit
b71e2674f8
  1. 17
      Assets/Fungus/Lua/Scripts/LuaUtils.cs
  2. 79
      Assets/Tests/Lua/LuaEnvironmentTests.unity

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

@ -342,6 +342,23 @@ namespace Fungus
{ {
GameObject.Destroy(go); GameObject.Destroy(go);
} }
/// <summary>
/// Spawns an instance of a named prefab resource.
/// The prefab must exist in a Resources folder in the project.
/// </summary>
public virtual GameObject Spawn(string resourceName)
{
// Auto spawn a say dialog object from the prefab
GameObject prefab = Resources.Load<GameObject>(resourceName);
if (prefab != null)
{
GameObject go = Instantiate(prefab) as GameObject;
go.name = resourceName;
return go;
}
return null;
}
} }
} }

79
Assets/Tests/Lua/LuaEnvironmentTests.unity

@ -814,7 +814,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 1537199682} m_Father: {fileID: 1537199682}
m_RootOrder: 3 m_RootOrder: 2
--- !u!1 &1052730009 --- !u!1 &1052730009
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1245,65 +1245,6 @@ 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
@ -1479,7 +1420,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 &1537199681 --- !u!114 &1537199681
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1513,7 +1454,6 @@ Transform:
m_Children: m_Children:
- {fileID: 550607924} - {fileID: 550607924}
- {fileID: 1932132174} - {fileID: 1932132174}
- {fileID: 1436236944}
- {fileID: 804588884} - {fileID: 804588884}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 12 m_RootOrder: 12
@ -1829,8 +1769,7 @@ 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."
@ -2072,7 +2011,7 @@ MonoBehaviour:
executeMethods: 2 executeMethods: 2
luaEnvironment: {fileID: 0} luaEnvironment: {fileID: 0}
luaFile: {fileID: 0} luaFile: {fileID: 0}
luaScript: '-- Test cloning and renaming a game object luaScript: '-- Test GameObject methods like find, instantiate, spawn, etc.
testgo = unity.luautils.find("TestGameObject") testgo = unity.luautils.find("TestGameObject")
@ -2093,6 +2032,16 @@ MonoBehaviour:
unity.luautils.destroy(go) unity.luautils.destroy(go)
-- Spawn an object from a prefab in a Resources folder
saydialog = unity.luautils.spawn("SayDialog")
fungus.assert(saydialog != nil)
unity.luautils.destroy(saydialog)
fungus.pass()' fungus.pass()'
runAsCoroutine: 1 runAsCoroutine: 1
useFungusModule: 1 useFungusModule: 1

Loading…
Cancel
Save