/// <summary> /// runs a script /// </summary> /// <param name="text">script content</param> /// <returns>FBScript object</returns> public FBScript runScript(string text) { GameObject obj = null; FBScript script = null; // try to reuse existing script object for (int i = 0; i < transform.childCount; i++) { GameObject obj2 = transform.GetChild(i).gameObject; if (!obj2.activeInHierarchy) { script = obj2.GetComponent <FBScript>(); if (script) { obj = obj2; break; } } } if (!obj) { // create new obj = GameObject.Instantiate(scriptPrefab.gameObject); obj.transform.SetParent(transform); script = obj.GetComponent <FBScript>(); } script.manager = this; script.run(text); return(script); }