static void CreateInstance() { ReleaseObject(); IResourceMgr resourceMgr = GameKernel.Get <IResourceMgr>(); Object resObj = resourceMgr.LoadNormalObjSync(new AssetBundleParams(mResPath, typeof(GameObject))); if (resObj != null) { GameObject obj = Object.Instantiate(resObj) as GameObject; if (Parent != null) { obj.transform.parent = Parent.transform; obj.transform.localPosition = new Vector3(0f, 0f, 0f); obj.transform.localRotation = Quaternion.identity; obj.transform.localScale = Vector3.one; RefreshPanelDepth(obj); } UIAnchor[] m_Anchors = obj.GetComponentsInChildren <UIAnchor>(); obj.SetActive(false); foreach (UIAnchor a in m_Anchors) { a.uiCamera = UICamera; a.gameObject.SetActive(true); } T component = obj.GetComponent <T>(); mInstance.Target = component; mInstance.Target.ReleaseType = mCurReleaseType; IUIComponentContainer container = Container; if (container != null) { container.SetUIComponent <T>(component); } } }