• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            麒麟子

            ~~

            導(dǎo)航

            <2010年4月>
            28293031123
            45678910
            11121314151617
            18192021222324
            2526272829301
            2345678

            統(tǒng)計(jì)

            常用鏈接

            留言簿(12)

            隨筆分類

            隨筆檔案

            Friends

            WebSites

            積分與排名

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            【Unity3d】3d網(wǎng)頁(yè)游戲場(chǎng)景打包與加載

            http://www.mysjtu.com/page/M0/S716/716482.html

             

            3d游戲中 一個(gè)場(chǎng)景往往斗勁大 若是游戲的進(jìn)行須要下載一個(gè)10M甚至更大的場(chǎng)景時(shí) 加載所用的時(shí)候會(huì)導(dǎo)致很大項(xiàng)目組玩家的流失

            我們知道unity3d中的內(nèi)置地形是應(yīng)用一張高度圖 對(duì)其地形進(jìn)行打包今后 發(fā)明<=100KB

            那么若是采取unity3d的內(nèi)置地形作為游戲中的地形時(shí) 起首加載地形并顯示 再去加載場(chǎng)景中的部件(比如樹、房子等) 將會(huì)很有須要

            在加載場(chǎng)景中的部件時(shí) 可以按照玩家當(dāng)前地點(diǎn)的地位 由近到遠(yuǎn)的去加載

            場(chǎng)景中的每個(gè)部件實(shí)際上并不都是獨(dú)一無(wú)二的

            比如一棵一模一樣的樹 可能同一個(gè)場(chǎng)景中呈如今很多處所 不合的只是樹的地位信息

            那么在加載場(chǎng)景的時(shí)辰則只須要加載一個(gè)樹的模型 并記錄下N個(gè)樹的transform信息 將會(huì)大大的削減場(chǎng)景所占的空間

            若是模型的重用率較高 那么這個(gè)題目的解決將會(huì)成倍的削減一個(gè)場(chǎng)景所占的空間

            場(chǎng)景在加載時(shí) 也只須要下載一個(gè)樹的模型 并按照transform信息 在指定的地位復(fù)制出N棵樹即可

            在應(yīng)用unity3d的BuildPipeline進(jìn)行打包之前 須要遍歷一邊所選文件夾下的場(chǎng)景文件

            若是文件的MeshFilter的Mesh為在該文件夾中只呈現(xiàn)了一次 則申明該模型在場(chǎng)景中沒有反復(fù) 則記錄下該模型文件的transform信息 并打包

            若是該Mesh呈現(xiàn)的次數(shù)大于一次 則記錄下這些和該Mesh雷同的模型的transform信息 打包時(shí)包含一個(gè)模型和多個(gè)transform信息

            在unity3d中有個(gè)名為ScriptableObject的類 可以哄騙它來存儲(chǔ)本身所需的各類百般的資料

            public class TransformHolder : ScriptableObject
            {
            public int Length;
            public Vector3[] position;
            public Quaternion[] eulerAngles;
            public Vector3[] localScale;
            }

            如許一來 每一個(gè)資料包中都包含一個(gè)模型和一個(gè)TransformHolder類型的文件
            TransformHolder的Length若為1 則申明該模型在場(chǎng)景中只呈現(xiàn)了一次

            若大于1 則可以按照記錄的transform信息輪回生成多個(gè)

            本來有幾百個(gè)資料包 大小有十幾兆的場(chǎng)景

            用該辦法后 變成了二十多個(gè)資料包 大小削減到不足2M

            當(dāng)然這實(shí)用于場(chǎng)景中的模型有重用的現(xiàn)象

            posted on 2013-02-22 22:29 麒麟子 閱讀(1209) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久人妻AV中文字幕| 久久精品国产精品亚洲人人| 99久久亚洲综合精品成人| 久久综合偷偷噜噜噜色| 国产日韩欧美久久| 9191精品国产免费久久| 久久精品草草草| 77777亚洲午夜久久多喷| 精品免费久久久久久久| 久久久久久九九99精品| AV无码久久久久不卡蜜桃| 久久精品aⅴ无码中文字字幕重口| 无码日韩人妻精品久久蜜桃 | 国产精品99久久不卡| 久久国产精品成人免费| 久久青草国产手机看片福利盒子| 国产精品女同久久久久电影院 | 久久夜色精品国产噜噜麻豆| 亚洲日韩中文无码久久| 久久久久亚洲AV片无码下载蜜桃| 久久久久人妻一区精品色| 久久国产精品久久精品国产| 精品久久久久久综合日本| 国产精品伊人久久伊人电影| 久久久久无码精品国产app| 婷婷久久五月天| 久久国产精品无码一区二区三区| 国产精品成人99久久久久 | 国内精品伊人久久久久777| 久久99精品国产麻豆| 久久九色综合九色99伊人| 精品伊人久久久| 久久国产乱子伦精品免费强| 婷婷久久综合九色综合九七| 亚洲精品美女久久777777| 日本免费一区二区久久人人澡| 免费精品国产日韩热久久| 色综合久久综合网观看| 亚洲AV无码成人网站久久精品大| 国产高潮久久免费观看| 久久ZYZ资源站无码中文动漫|