我知道这很简单,如果它是GameObject我可以做到,但是如何实例化一个新脚本呢?
Instantiate(FleeScript);
我得到了错误。
答案 0 :(得分:0)
我没有销毁和实例化新脚本,而是使用GetComponent.enabled = true / false启用和禁用它们。
答案 1 :(得分:0)
public static void AttachScript(GameObject obj, string scriptClassName)
{
if (obj != null)
obj.AddComponent(scriptClassName);
}
public static void AttachScript(string gameObjectName, string scriptClassName)
{
var obj = GameObject.Find(gameObjectName);
if (obj != null)
obj.AddComponent(scriptClassName);
}
注意:
答案 2 :(得分:0)
请记住:脚本必须位于GameObject中。
因此,要获取新脚本的实例,您可以将其添加到GameObject:
GameObject myGameObject = ...
FleeScript fleeScript = myGameObject.AddComponent<FleeScript>();
// do something with fleeScript
或者你有一个已包含该脚本的预制件并实例化该预制件:
public class MyOtherScript
{
public FleeScript prefabWithFleeScript; // Linked from the Editor
void Awake()
{
FleeScript fleeScript= Instantiate(prefabWithFleeScript);
// do something with fleeScript
}
}