国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity 3D開發(fā)--SceneManager場(chǎng)景管理(異步使用同一個(gè)過(guò)渡場(chǎng)景)

這篇具有很好參考價(jià)值的文章主要介紹了Unity 3D開發(fā)--SceneManager場(chǎng)景管理(異步使用同一個(gè)過(guò)渡場(chǎng)景)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

在U3D開發(fā)過(guò)程中經(jīng)常使用到多場(chǎng)景的切換,有同步SceneManager.LoadScene()和異步SceneManager.LoadSceneAsync()兩種方法,同步的話一般就會(huì)卡住界面直到加載完成,使用異步的話一般都做一個(gè)加載的進(jìn)度條,每次切換的時(shí)候都需要一個(gè)加載動(dòng)畫,所以需要建一個(gè)專門的過(guò)渡加載場(chǎng)景來(lái)進(jìn)行統(tǒng)一加載,也可以避免場(chǎng)景直接切換出現(xiàn)的黑屏。

一、建立一個(gè)單例進(jìn)行切換,在項(xiàng)目代碼的任何位置都可以調(diào)用


public class LoadSceneManager 
{
    private static LoadSceneManager instance;
    public static LoadSceneManager Instance
    {
        get {
            if (instance == null)
            {
                instance = new LoadSceneManager();
            }
            return instance;
        }
    }

    public string nextSceneName;

    //異步加載
    public void LoadSceneAsync(string sceneName)
    {
        Debug.Log("LoadSceneAsync:" + sceneName);
        nextSceneName = sceneName;
        SceneManager.LoadScene("LoadingScene");
    }
    public void LoadScene(string sceneName)
    {
        Debug.Log("LoadScene:" + sceneName);
        SceneManager.LoadScene(sceneName);
    }

}

使用的時(shí)候直接使用LoadSceneManager.Instance.LoadSceneAsync("SecondScene");

二、異步加載的過(guò)程

要做個(gè)進(jìn)度條然后進(jìn)行管理,代碼很簡(jiǎn)單就不說(shuō)了


public class LoadingController : MonoBehaviour
{
    public Slider loadingSlider;
    public TMP_Text loadingText;
    private AsyncOperation asyncOperation;
    private float operationProgress;

    // Start is called before the first frame update
    void Start()
    {
        loadingSlider.value = 0.0f;
        if (SceneManager.GetActiveScene().name == "LoadingScene")
        {
            StartCoroutine("LoadingScene");
        }
    }

    IEnumerator LoadingScene()
    {
        asyncOperation = SceneManager.LoadSceneAsync(LoadSceneManager.Instance.nextSceneName);
        asyncOperation.allowSceneActivation = false;
        yield return asyncOperation;
    }

    // Update is called once per frame
    void Update()
    {
        operationProgress = asyncOperation.progress;
        //最大值只到0.9,后面有進(jìn)行插值運(yùn)算更新
        if (Mathf.Approximately(operationProgress, 0.9f))
        {
            operationProgress = 1;
        }
        if (Mathf.Approximately(operationProgress, 0.6f))
        {
            System.Threading.Thread.Sleep(5000);
        }
        UpdateLoadingUI(operationProgress);
    }
    private void UpdateLoadingUI(float value)
    {
        if (operationProgress != loadingSlider.value)
        {
            loadingSlider.value = Mathf.Lerp(loadingSlider.value, operationProgress, Time.deltaTime * 2);
            if (Mathf.Approximately(operationProgress, operationProgress))
            {
                loadingSlider.value = operationProgress;
            }
        }
        Debug.Log("Progress:" + loadingSlider.value);
        if (loadingText != null)
        {
            loadingText.text = Mathf.Round(loadingSlider.value * 100) + "%";
        }

        //自動(dòng)換場(chǎng)景
        if (Mathf.Approximately(loadingSlider.value, 1.0f))
        {
            asyncOperation.allowSceneActivation = true;
        }
    }
}

三、demo鏈接

https://download.csdn.net/download/emailforwei/87329335


?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-634441.html

到了這里,關(guān)于Unity 3D開發(fā)--SceneManager場(chǎng)景管理(異步使用同一個(gè)過(guò)渡場(chǎng)景)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Unity 3D 開發(fā)--UI管理框架

    Unity 3D 開發(fā)--UI管理框架

    一、UI基類 一般情況下都是用Panel做容器來(lái)放各種控件的,一個(gè)Panle相當(dāng)一個(gè)UI小界面,然后做成Prefab進(jìn)行加載,所有界面都有載入載出功能,有的可能還有等待和恢復(fù)的,適合建立一個(gè)UI基類,然后各個(gè)子界面繼承。 二、UI子類 每個(gè)UI子界面都繼承基類,然后實(shí)現(xiàn)各個(gè)方法,

    2024年02月13日
    瀏覽(25)
  • 23. Unity - 3D游戲開發(fā)小計(jì)02 --- 動(dòng)畫結(jié)束UI、導(dǎo)航網(wǎng)格代理、場(chǎng)景搭建插件(ProGrids,ProBuilder,Polybrush)

    23. Unity - 3D游戲開發(fā)小計(jì)02 --- 動(dòng)畫結(jié)束UI、導(dǎo)航網(wǎng)格代理、場(chǎng)景搭建插件(ProGrids,ProBuilder,Polybrush)

    1. 動(dòng)畫結(jié)束UI 一個(gè)游戲在通過(guò)后,都是需要一個(gè)界面顯示當(dāng)前游戲已經(jīng)結(jié)束,即需要給游戲添加一個(gè)結(jié)束的界面,可以做一個(gè)簡(jiǎn)單的游戲結(jié)束界面,用一個(gè)圖片展示: 首先在 層級(jí)窗口 添加兩層UI中的Image,其中第一層的Image僅作背景,可將其填充顏色設(shè)置為純黑色,第二層的

    2024年02月05日
    瀏覽(97)
  • Unity實(shí)現(xiàn)異步加載場(chǎng)景

    Unity實(shí)現(xiàn)異步加載場(chǎng)景

    一:創(chuàng)建UGUI 首先我們?cè)贚oginCanvas登入面板下面創(chuàng)建一個(gè)Panel,取名為L(zhǎng)oadScreen,再在loadScreen下面創(chuàng)建一個(gè)Image組件,放置背景圖片,然后我們?cè)僭趌padScreen下面繼續(xù)創(chuàng)建一個(gè)Slider,這個(gè)是用來(lái)加載進(jìn)度條的,我們改名為L(zhǎng)oadSlider。我們?yōu)槭裁葱枰拿?,為了見名之一,不至于過(guò)段時(shí)

    2024年02月12日
    瀏覽(25)
  • Unity異步加載場(chǎng)景

    Unity異步加載場(chǎng)景

    當(dāng)我們的場(chǎng)景資源過(guò)大時(shí),為了能夠不影響玩家體驗(yàn),就會(huì)使用異步加載。 官方文檔:AsyncOperation - Unity 腳本 API AsyncOperation的API allowSceneActivation 允許在場(chǎng)景準(zhǔn)備就緒后立即激活場(chǎng)景。 isDone 操作是否已完成?(只讀) priority Priority 允許您調(diào)整執(zhí)行異步操作調(diào)用的順序。 pro

    2024年02月02日
    瀏覽(23)
  • Unity基礎(chǔ) 異步加載場(chǎng)景

    異步加載場(chǎng)景的基本概念 在Unity中,異步加載場(chǎng)景是指在游戲運(yùn)行時(shí),將場(chǎng)景中的資源分批次加載到內(nèi)存中,以便提高游戲的加載速度和性能。通常情況下,加載場(chǎng)景的過(guò)程會(huì)在主線程中執(zhí)行,而異步加載場(chǎng)景可以在后臺(tái)線程中執(zhí)行,從而不會(huì)阻塞主線程。 要使用異步加載首

    2024年02月12日
    瀏覽(22)
  • GameFrameWork框架(Unity3D)使用筆記(八) 實(shí)現(xiàn)場(chǎng)景加載進(jìn)度條

    GameFrameWork框架(Unity3D)使用筆記(八) 實(shí)現(xiàn)場(chǎng)景加載進(jìn)度條

    ? ? ? ? 游戲在轉(zhuǎn)換場(chǎng)景的時(shí)候,需要花費(fèi)時(shí)間來(lái)加載相關(guān)的資源。而這個(gè)過(guò)程往往因?yàn)橛螒驁?chǎng)景的規(guī)模和復(fù)雜度以及玩家電腦配置的原因花費(fèi)一小段時(shí)間(雖然這個(gè)項(xiàng)目里用不到)。 ? ? ? ? 所以,如果這一小段時(shí)間,畫面就卡在這里,啥也做不了,玩家也不知道啥時(shí)候能

    2024年02月02日
    瀏覽(25)
  • 【Unity3D】使用 FBX 格式的外部模型 ( 向 Unity 中添加 FBX 模型 | 向 Scene 場(chǎng)景中添加 FBX 模型 | 3D 物體渲染 | 3D 物體材質(zhì)設(shè)置 )

    【Unity3D】使用 FBX 格式的外部模型 ( 向 Unity 中添加 FBX 模型 | 向 Scene 場(chǎng)景中添加 FBX 模型 | 3D 物體渲染 | 3D 物體材質(zhì)設(shè)置 )

    Unity 中使用的 3D 模型格式為 FBX , 使用如下建模軟件 可制作該類型模型 : 3Dmax Maya ZBrush Cinema4D Blender 建模完成后 , 將 3D 模型導(dǎo)出為 FBX ( .fbx ) 格式 即可在 Unity 中使用 ; 在 Project 文件窗口 中的 Asstes 目錄 下 , 創(chuàng)建一個(gè)模型目錄 Models , 將 模型文件直接從文件系統(tǒng)中拖到該目錄中

    2023年04月15日
    瀏覽(115)
  • 【Unity】實(shí)用功能開發(fā)(一)實(shí)現(xiàn)在UI中用RawImage實(shí)時(shí)展示3D模型(背景透明,并通過(guò)UI防止3D場(chǎng)景遮擋)并可以通過(guò)分層完成:游戲中的人物狀態(tài)展示界面,小地圖,人物實(shí)時(shí)頭像狀態(tài)等功能

    【Unity】實(shí)用功能開發(fā)(一)實(shí)現(xiàn)在UI中用RawImage實(shí)時(shí)展示3D模型(背景透明,并通過(guò)UI防止3D場(chǎng)景遮擋)并可以通過(guò)分層完成:游戲中的人物狀態(tài)展示界面,小地圖,人物實(shí)時(shí)頭像狀態(tài)等功能

    有時(shí)由于項(xiàng)目效果需要,部分功能的實(shí)現(xiàn)受到阻礙,這里收集一些已實(shí)現(xiàn)的思路和方法,每次會(huì)記錄大致需求和遇到的問(wèn)題,如果有更好的想法,歡迎評(píng)論區(qū)討論?。。?目錄 功能描述: 需求描述: 實(shí)現(xiàn)步驟: ①為需要展示的內(nèi)容區(qū)分層級(jí): ②在場(chǎng)景中添加一個(gè)攝像機(jī),并

    2024年02月04日
    瀏覽(35)
  • 使用團(tuán)結(jié)引擎開發(fā)Unity 3D射擊游戲

    使用團(tuán)結(jié)引擎開發(fā)Unity 3D射擊游戲

    ? ? ? ?本案例是初級(jí)案例,意在引導(dǎo)想使用unity的初級(jí)開發(fā)者能較快的入門,體驗(yàn)unity開發(fā)的方便性和簡(jiǎn)易性能。 ? ? ? 本次我們將使用團(tuán)結(jié)引擎進(jìn)行開發(fā),幫助想體驗(yàn)團(tuán)結(jié)引擎的入門開發(fā)者進(jìn)行較快的環(huán)境熟悉。 ? ? ?本游戲是一個(gè)俯視角度的射擊游戲。主角始終位于屏幕

    2024年01月19日
    瀏覽(110)
  • 【Unity3D日常開發(fā)】Unity3D中協(xié)程的使用

    【Unity3D日常開發(fā)】Unity3D中協(xié)程的使用

    推薦閱讀 CSDN主頁(yè) GitHub開源地址 Unity3D插件分享 簡(jiǎn)書地址 我的個(gè)人博客 大家好,我是佛系工程師 ☆恬靜的小魔龍☆ ,不定時(shí)更新Unity開發(fā)技巧,覺得有用記得一鍵三連哦。 最近有小伙伴問(wèn)協(xié)程怎么用、怎么寫,我也是會(huì)用會(huì)寫,但是原理不是很明白。 學(xué)習(xí)了一下,總結(jié)出

    2024年02月12日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包