• <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   管理


            欧美黑人激情性久久| 少妇久久久久久被弄高潮| AA级片免费看视频久久| 久久影院久久香蕉国产线看观看| 看全色黄大色大片免费久久久| 少妇无套内谢久久久久| 777米奇久久最新地址| 国产69精品久久久久9999| 久久人人爽人人爽人人av东京热| 色妞色综合久久夜夜| 久久天天躁狠狠躁夜夜2020| 久久精品国产2020| 久久影院久久香蕉国产线看观看| 久久综合给合久久国产免费| 欧美久久一区二区三区| 亚洲午夜久久久精品影院| 久久精品国产亚洲AV影院| 色综合久久精品中文字幕首页| 热久久视久久精品18| 99久久免费只有精品国产| 亚洲精品乱码久久久久66| 亚洲国产成人乱码精品女人久久久不卡| 婷婷久久久亚洲欧洲日产国码AV | 人妻无码精品久久亚瑟影视| 波多野结衣中文字幕久久| 久久精品国产2020| 亚洲精品无码久久不卡| 久久黄视频| 久久久久国产精品麻豆AR影院| 精品国产一区二区三区久久久狼| 东方aⅴ免费观看久久av| 色天使久久综合网天天| 国产欧美久久久精品影院| 伊人久久五月天| 久久亚洲AV成人无码软件| 久久久久亚洲精品日久生情 | 伊人久久大香线蕉av不变影院| 人妻系列无码专区久久五月天| 久久福利片| 亚洲成av人片不卡无码久久| 久久激情亚洲精品无码?V|