Esempio n. 1
0
        override public void joinGraph(IOCGraphWorker workerData)
        {
            GameObject display;
            AssetBundleRemoteGraphWorker graph;
            string DotName   = workerData.name.Replace("/", ".");
            string NoDotName = workerData.name.Replace(".", "/");

            if (repeatObjects.ContainsKey(DotName))
            {
                display = repeatObjects[DotName];
            }
            else
            {
                display = (GameObject)UnityEngine.Object.Instantiate(Resources.Load("UI/AssetLoad/" + SAAppConfig.Language + "_AssetBundleRemote"));
                repeatObjects.Add(DotName, display);
            }

            //笔记
            Transform  _SATransform  = display.transform;
            GameObject _SAGameObject = display.gameObject;
            //shell
            GameObject shell = new GameObject();

            shell.name  = _SAGameObject.name + "[SHELL]";
            shell.layer = display.layer;
            display.transform.SetParent(shell.transform);
            display = shell;

            if (null != SAManager.Instance.UIRootCamera && display.layer == SAManager.Instance.NGUILayer)
            {
                display.transform.SetParent(SAManager.Instance.UIRootCamera.transform, false);
            }

            graph = display.AddComponent <AssetBundleRemoteGraphWorker>();

            graph.setOrigin(_SAGameObject, _SATransform);
            graph.setActiveDispose(workerData.isActiveDispose);
            graph.setDefaultStart(workerData.defaultStart);

            graph._init(DotName, NoDotName);
            graphWorkers.Add(graph);
            if (_start)
            {
                registerGraphicsWorker(graph);
            }
        }
Esempio n. 2
0
        virtual public void joinGraph(IOCGraphWorker workerData)
        {
            GameObject    display;
            SAGraphWorker graph;

            string DotName   = workerData.name.Replace("/", ".");
            string NoDotName = workerData.name.Replace(".", "/");

            if (repeatObjects.ContainsKey(DotName))
            {
                display = repeatObjects[DotName];
            }
            else
            {
                string prefabName;
                int    languageDot = DotName.LastIndexOf(".") + 1;
                if (workerData.isLocal)//强制本地
                {
                    prefabName = NoDotName.Substring(0, languageDot) + SAAppConfig.Language + "_" + NoDotName.Substring(languageDot);
                    display    = (GameObject)UnityEngine.Object.Instantiate(Resources.Load(prefabName));
                }
                else
                {
                    prefabName = DotName.Substring(0, languageDot) + SAAppConfig.Language + "_" + DotName.Substring(languageDot);
                    display    = (GameObject)UnityEngine.Object.Instantiate(SACache.getResWithName <GameObject>(prefabName, "prefab"));
                }
                //repeatObjects.Add(DotName, display);//关闭缓存
            }
            //笔记
            Transform  _SATransform  = display.transform;
            GameObject _SAGameObject = display;
            //shell
            GameObject shell = new GameObject();

            shell.name  = _SAGameObject.name + "[SHELL]";
            shell.layer = display.layer;
            display.transform.SetParent(shell.transform);
            display = shell;

            if (null != SAManager.Instance.UIRootCamera && display.layer == SAManager.Instance.NGUILayer)
            {
                display.transform.SetParent(SAManager.Instance.UIRootCamera.transform, false);
            }
            Type graphType = Type.GetType(DotName);

            if (null == graphType)
            {
                string graphName = DotName.Substring(DotName.LastIndexOf(".") + 1);
                graphType = Type.GetType(SAACollection.GraphsStr + graphName + SAACollection.GraphSuffix);
            }
            if (null == graphType)
            {
                graph = display.AddComponent <SAGraphWorker>();
            }
            else
            {
                graph = (SAGraphWorker)display.AddComponent(graphType);
            }
            graph.setOrigin(_SAGameObject, _SATransform);
            graph.setActiveDispose(workerData.isActiveDispose);
            graph.setDefaultStart(workerData.defaultStart);

            graph._init(DotName, NoDotName);
            graphWorkers.Add(graph);
            if (_start)
            {
                registerGraphicsWorker(graph);
            }
        }