void CreateNode(Transform t, Node msg, bool is_dont_destroy_onload) { GameObject o = new GameObject(msg.name); o.transform.SetParent(t); o.SetActive(msg.active); DumpObj dump = o.AddComponent <DumpObj>(); dump.Init(msg.active, OnStateChange, OnBehaviorChange); if (is_dont_destroy_onload) { DontDestroyOnLoad(o); } foreach (var item in msg.list) { if (item.is_component) { dump.AddComp(item.name, item.active); } else { CreateNode(o.transform, item, false); } } }