下面演示如何在 Unity 中通过代码动态添加和移除脚本组件。示例里先调用 AddComponentscript_new 挂到当前 gameObject 上,再通过 Invoke 延迟 1 秒触发销毁逻辑,用 Destroy 移除刚才添加的脚本组件。

调用方示例

...
	void Start () {


   

        gameObject.AddComponent("script_new");//添加脚本组件

        Invoke("delete11", 1);

	}
    void delete11()
    {

        Destroy(gameObject.GetComponent("script_new"), 1);  // 销毁脚本组件
    }

script_new.cs

被动态添加的脚本本身是一个普通的 MonoBehaviour。它在 Start 时打印 new,在 OnDestroy 时打印 destory,用于观察生命周期是否按预期被触发。

..
using UnityEngine;
using System.Collections;

public class script_new : MonoBehaviour {

	// Use this for initialization
	void Start () {
	    print("new");

	}
	
	// Update is called once per frame
	void Update () {
	
	}

    void OnDestroy()
    {

        print("destory");

    }
}