继承MonoBehaviour的类作为内部类会导致内存泄露

一个内部类继承MonoBehaviour并被添加到一个GameObject上后,当这个GameObject在场景中被删除时,它在内存中却没有被释放。例如以下测试代码

using UnityEngine;

public class TestScript : MonoBehaviour
{
    private void Start()
    {
        gameObject.AddComponent<TestScript2>();
    }

    private class TestScript2 : MonoBehaviour
    {

    }
}

将TestScript绑在一个Prefab上并不断地创建和销毁它,然后可以通过Profiler->Memory->Simple可以看到Total Object Count这个值不断地在变大