原文地址:http://www.rocket5studios.com/tutorials/make-a-2d-game-with-unity3d-using-only-free-tools-part-2/
原版翻譯,轉載請註明出處:http://blog.csdn.net/ariel7321/article/details/7771638
第一節中我們介紹了一些工具和插件,並設置了下項目,本節將介紹如何創建關卡。
雖然在第一節中介紹了很多插件,但我們重點在Orthello上。
初始化項目
在我們開始製作關卡精靈前需要對項目設置做一些改變。
Build Settings:
- File –> Build Settings…
- 點擊Web Player,點擊switch platform。
- 關閉Build Settings窗口。
Player Settings:
- Edit –> Project Settings –> Player。
- 在Per-Platform Settings下點擊網狀球的圖標。
- 在Resolution and Presentation中將Screen Width改爲800,Screen Height改爲600.
Render Settings:
- 因爲在2d遊戲中我們不用光照系統,所以我們在這調節下unity默認的環境光,使之更亮點。
- Edit –> Render Settings…
- 點擊 Ambient Light,然後將顏色改爲 (255, 255, 255, 255)。
初始化Orthello 2D
- 在unity的項目視圖裏,進入 Orthello -> Objects,然後將OT prefab拖到Scene中或是Hierarchy中。(第一節做過了)
- 點開OT對象,然後點擊View
- 修改Pixel Perfect Resolution爲800*600.
- 修改Custom Size爲10
此時,如果你點擊Main Camera,你會發現它被改爲正交投影了,而且大小被改爲10了。
此時你的項目看起來像下面的圖(注意,這裏我加入了一個Cube用來比較規模):
Download the project up to this point.
製作關卡精靈圖
好了,所有的初始化設置都OK了,現在到了深入進去的時候了。Lode Runner裏面的關卡都是由一些簡單的貼圖拼起來的:磚(可以被挖開的),混凝土(不可挖的),梯子和繩索。
- 下載資源sprite.png,然後解壓。
- 啓動TexturePacker,然後將sprites/level文件夾下的png文件都拖放到Sprites面板。
- 將sprites/shoot文件夾下的png文件也都拖放到Sprites面板中。
Texture Settings / Layout:
- 將Algorithm 設置成Basic。
- 不勾選Trim。
- 不勾選Enable Auto Alias。
Texture Settings / Output:
- 保留Data格式爲cocos2d。
- 在Data File中,點擊...,將輸出保存到項目的Assets下(我保存在Assets/SpriteAtlases),保存爲“level”。
- TexturePacker 自動給文件加了後綴.plist,但是Unity需要.xml文件,因此我們將.plist改爲.xml。
- Texture File路徑應該也被設置成和Data File一樣的了。
- 在項目視圖裏選擇level.png,在Inspector 中將Filter Mode改爲Point。
- 點擊 Override for Web,將Format 設置成Truecolor ,然後點擊Apply。
製作關卡1
- 在unity的項目視圖,點開orthello:Orthello –> Objects –> Sprites –> SpriteAtlas,然後將 SpriteAtlas-Cocos2D拖到Hierarchy中。
- 在Hierarchy窗口,點開OT->Containers,你會發現出現了一個新的Container,名字類似“Container (id=-6840)“,這個Container將會包容我們關卡需要的所有的精靈,所有我們可以命名它爲“level”。
- 將“level.png”拖放到“OTSprite Atlas Cocos 2D” 腳本的Texture位置。
- 將“level.xml”拖放到“OTSprite Atlas Cocos 2D” 腳本的Atlas Data File 位置。
製作磚動畫
- 將Animation 對象拖到Hierarchy中 Orthello –> Objects –> Sprites ,這將會在OT –> Animations下添加一個新的對象,名字類似 “Animation (id=-4320)“,將其重新命名爲“level anims”。
- 點選剛創立的動畫對象,將設置修改爲下圖所示的。
- 在Framesets下,將Size設置爲3.
- 爲了填充Container區域,將 OT –> Containers 下的level拖放進去。
- 然後將Orthello –> Objects –> Sprites 下的AnimatingSprite 拖放到Hierarchy中,這會給場景添加一個新的對象,名字類似“Animating Sprite (id=-23050)“。將名字改爲“brick“。
- 將“level anims”拖放到“brick”的Animation位置。 Sprite Container位置會被自動填上“level”容器對象。如果沒有,你可以自己將“level”容器對象拖放到此位置。
給磚添加碰撞
- 選中brick,勾選Collidable ,這給brick自動添加一個Box Collider 和Rigidbody組件。
- 我們需要給對象添加一個特定的標籤Tag,然後將其加入到層Layer中。 打開Edit –> Project Settings –> Tags,打開Tag Manager。
- 然後點開最上面的Tags,然後在Element0 區域輸入“Ground”,然後回車。以後我們還需要更多的Tag,所以我們在這都一併加上,再加個“Ladder”和“Rope”。
- 我們也需要一些層Layers,所以我們在User Layer 8位置輸入“Ground”,在User Layer 9位置輸入“Ladder”。
- 點擊brick對象,然後在Tag的下拉菜單下選擇“Ground”。然後在Layer下拉菜單中也選擇“Ground”。
將它變爲Prefab
- 在你的項目視圖中創建一個新的文件夾 “Prefabs“。
- 將“brick”拖放到“Prefabs”文件夾中。
製作靜態的關卡精靈
混凝土貼圖
- 如果你的brick對象還在場景的正中間,請移走他。
- 將Orthello –> Objects –> Sprites 下的Sprite 拖放到Hierarchy中,這會給場景添加一個新的對象,名字類似“Sprite (id=-3700)“。將名字改爲“concrete“。
- 將OT –> Containers 下的level容器拖放到concrete的 Sprite Container位置處。
- 此時精靈就在場景中了,但是看起來跟之前的brick一樣,這是因爲brick在level圖片的第一個位置。而混凝土圖片在第14位,所以將 “Frame Index”設置爲14. 這時看起來像一個固體混凝土了。
- 勾選Collidable ,給它添加一個碰撞檢測器。
- 在Tag的下拉菜單下選擇“Ground”。然後在Layer下拉菜單中也選擇“Ground”。
- 將concrete拖到項目視圖的“Prefabs”文件夾下創建prefab對象。
梯子和繩索貼圖
- 如果你的concrete對象還在場景的正中間,請移走他。
- 將Orthello –> Objects –> Sprites 下的Sprite 拖放到Hierarchy中,這會給場景添加一個新的對象,名字類似“Sprite (id=-3700)“。將名字改爲“ladder“。
- 將OT –> Containers 下的level容器拖放到concrete的 Sprite Container位置處。
- 將 “Frame Index”設置爲15.
- 複製一個ladder,然後將其命名爲rope
- 將rope的 Frame Index改爲17.
- 將ladder和rope拖到項目視圖的“Prefabs”文件夾下創建prefab對象。
製作底部的邊界
- 創建一個cube:Object –> Create Other –> Cube,命名爲“border bottom“。
- 將Transform的position改爲 X: 0, Y: -10.3, Z: 0。
- 將Transform的scale改爲 X: 26, Y: 1, Z: 1。
- 將border bottom拖到項目視圖的“Prefabs”文件夾下創建prefab對象。
- 在項目視圖中新建一個文件夾“Materials”。
- 右擊Materials文件夾創建一個新的材質 Create –> Material,命名爲“border”。
- 選中border材質,點擊“Main Color”旁邊的白色區域,彈出顏色選擇界面。
- 將RGBA設置改爲R: 159, G: 2, B: 0, A: 255,然後關閉這個界面。
- 將border材質拖放到border bottom對象上,此時border bottom對象應該具有和brick一樣的顏色了。
- 選中border bottom,然後點擊Prefab旁邊的Apply,這樣就更新設置到剛剛創立的Prefab對象上了。
修改背景顏色
- 選中Main Camera ,然後點擊Background旁邊的顏色選擇吸管。
- 將RGBA設置成0,0,0,255,此時遊戲視圖中的背景應該是黑色了。
製作一個關卡
哇!我們做了好多步驟,不夠現在你已經擁有了製作一批關卡的所有東西了。是幾乎所有的東西,你還需要主角、敵人、可以撿起的小物體和一些其他的東西,這些我們在後續的講解中介紹。
此時,你可以通過不斷的複製brick、concrete、ladder和rope來製作一個關卡。但是在做這些之前,我有一些小技巧分享:
- 在場景視圖裏,在Scene欄下面的下拉菜單裏,選擇Tex-Wire。
- 你可以使用Vertex Snap很簡單的排列物體—在場景視圖裏,按住V鍵,然後移動鼠標到物體的四個角落周圍看看,你會看到在最近的一個頂點上出現一個方框來鎖定這個頂點,然後按住鼠標左鍵來拖到物體到你希望的位置,你會發現它會緊緊的而且恰當的貼在周圍的物體邊上。
- 還記得之前做的border bottom物體,你可以以此爲基準線來搭建關卡。不用擔心Z軸,Orthello不允許你在z軸移動的。
- 你可以一下子選中好幾個對象(shift+左擊來選擇,或拖動一片區域來選擇),然後複製,在用V鍵對齊。
下圖是我完成後的關卡: