示例#1
0
        public static LinkData Instantitate(Resources.AssetRef prefab, string path, ILinkDataManager manager, params object[] args)
        {
            var data = new LinkData();

            data.manager   = manager;
            data.path      = path;
            data.node      = Resource.instance.Instantiate(prefab);
            data.presenter = Bridge.instance.component.Link(data, args);
            return(data);
        }
示例#2
0
        public async Task <LinkData> Instantitate(ILinkDataManager manager, string path, params object[] args)
        {
            var containerData = Utils.Instantitate(ContainerInfo.prefab, ContainerInfo.path, null) as LinkData;
            var container     = Component.GetPeer(containerData.node, ContainerInfo.component) as Container;
            var data          = await Load(path, manager, args);

            #if UNITY_EDITOR
            containerData.node.name = $"{path.Replace('/', '.')}(Container)";
            #endif

            TryAddToCanvas(containerData.node);
            container.Bind(manager, data);
            return(container.GetTarget());
        }
示例#3
0
        public async Task <LinkData> Load(string path, ILinkDataManager manager, params object[] args)
        {
            var prefab = await Resource.instance.LoadAsync(path);

            if (prefab == null || !prefab.Valid())
            {
                Log.Window.Exception(new Exception($"Factory Load {path} prefab error!"));
            }

            var data = Utils.Instantitate(prefab, path, manager, args);

            prefab.Release();
            return(data);
        }