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); }
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()); }
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); }