示例#1
0
    /// <summary>
    /// 拍照
    /// </summary>
    /// <returns></returns>
    private IEnumerator TakePictures()
    {
        //隐藏界面
        //gameObject.SetActive(false);
        _top.SetActive(false);
        _bottom.SetActive(false);
        _middle.SetActive(false);
        //隐藏聊天相关
        ChatTool.CloseChat();
        yield return(UniversalTool.StaticWaitForEndOfFrame);

        //截屏
        Texture2D texture2D = UniversalTool.CaptureScreen();
        Sprite    sprite    = Sprite.Create(texture2D, new Rect(0, 0, texture2D.width, texture2D.height), new Vector2(0, 0));

        //
        _top.SetActive(true);
        _bottom.SetActive(true);
        _middle.SetActive(true);
        //打开聊天
        ShowChatMini();
        //打开分享界面
        StaticData.OpenUIShare(sprite);
    }
示例#2
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="sceneType"></param>
    /// <param name="isCloseLoadingAfter">为true需要自己关闭进度条</param>
    /// <returns></returns>
    public async Task ChangeSceneAsync(EnumScene sceneType, bool isCloseLoadingAfter = false)
    {
        //加载进度条
        await UIComponent.CreateUIAsync(UIType.UISceneLoading, isTopCanvas : true);

        uISceneLoadingComponent.Reset();

        //关闭聊天相关界面
        ChatTool.CloseChat();
        var scencePath = EnumScene.Empty.ToString();

        _currSceneTage = sceneType;
        //加载空场景
        scencePath = "Scenes/" + scencePath;
        SceneManager.LoadScene(scencePath);
        var bundleType = sceneType.ToString();

        if (sceneType != EnumScene.Empty)//空场景为退出到大厅
        {
            List <string> bundleNameList = new List <string>();

            if (preLoadMap.ContainsKey(sceneType))
            {
                bundleNameList.AddRange(preLoadMap[sceneType]);
            }
            //加上自己的场景ab包
            var sceneBundleName = ABManager.GetBundleNameByAssetNameAndType(sceneType.ToString(), typeof(GameObject));
            bundleNameList.Add($"{sceneBundleName}");

            List <string> allBundleNameList = new List <string>();
            foreach (var bundleName in bundleNameList)
            {
                string[] dependencies = ResourcesHelper.GetSortedDependencies(bundleName.ToLower());
                if (dependencies != null)
                {
                    foreach (var item in dependencies)
                    {
                        if (allBundleNameList.Contains(item))
                        {
                            continue;
                        }
                        allBundleNameList.Add(item);
                    }
                }
            }
            ResourcesComponent resourcesComponent = ResourcesComponent.instance;
            for (int i = 0; i < allBundleNameList.Count; i++)
            {
                await resourcesComponent.LoadOneBundleAsync(allBundleNameList[i], (real) => UpdateProgress(i, allBundleNameList.Count, real, allBundleNameList[i]));
            }
        }


        await AddSceneAsyncTask(bundleType, LoadSceneMode.Single);

        //await StaticData.CreateChatMini();
        if (isCloseLoadingAfter == false)
        {
            UIComponent.HideUI(UIType.UISceneLoading);
        }
    }