Esempio n. 1
0
    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);
            }
        }
    }