2013年9月11日 星期三

Unity3D 2D game 試驗筆記

http://uryuuringo.blogspot.tw/2013/01/unity3d-2d-game_22.html

基本上是記錄之前照以下網站做的時候了解的一點小筆記

http://www.rocket5studios.com/

就是怕自己忘記而已

應該沒什麼用

畢竟我一直沒辦法讓他踩在磚頭上...明明設定都一樣


Unity3D簡單操作

基本介面
Project是你這個專案的檔案
Hierarchy為場景的物件管理
Inspector可以調整點擊物件的參數
可以藉由拖曳Project內的檔案至Hierarchy加入物件
或拖曳Hierarchy的物件至Project產生一個設定完成的物件
Inspector設定引用參數的時候可以直接拖曳相關檔案至參數欄位

要將外部的檔案加入Project直接將資料夾或檔案拖曳至Project內即可

撰寫遊戲程式碼
可以使用Unity3D內的MonoDevelop
開啟後File->New->file->unity->c# unity script
撰寫完畢以後直接拖曳至要應用的物件就會套用上去了
也可以在Project內點滑鼠右鍵->Create->c# Script來創建
在Unity3D內雙擊任何程式碼檔案都會自動開啟MonoDevelop

背景運作的規則或輸入控制
可以創建空物件方便管理或是選擇放置在主攝影機內(畢竟主攝影機一定會存在)
創建空物件的話點及上方GameObject->Create Empty

設定專案平台
File->Build Settings
雖然在完成後再設定也是沒問題
不過先設定完可以在製作時免去許多麻煩
因為Inspector會跳出目前平台的設定
雖然可以簡單按個紐就切換到其他平台的設定
不過個人覺得除非臨時變更計畫不然先設定會比較好

調整遊戲畫面大小
Edit->Project Settings->Player
Inspector視窗中可以看到許多設定
其中Resolution內就是視窗大小

設定環境光
Edit->Render setting
Ambient light為環境光
其他還有一些參數和打光系統
基本上2D遊戲用不到


物件碰撞加入
將Collidable打勾會看到Inspector下方多了Box Collider和Rigidbody可以調整
Box Collider是碰撞範圍和中心點設定
Rigidbody似乎和物件碰撞運算有關
還沒有操作過
估計是硬度、柔軟度、碰撞緩衝之類的東西

物件擺放
在點選物件時按住V鍵
然後選擇其中一角再拖動的話可以讓該點貼齊其他物件


windows->Asset store
這東西是線上商店
也可以找到許多免費的外掛插件、素材等等
當然比較高檔貨品質保證的就得掏點腰包去買了
已經買過或下載過的東西可以點及上方向下箭頭來加入至現在的專案中

其中該網址提到的工具

Orthello2D在線上商店中就有提供免費版下載
這東西主要是用來製作2D遊戲的插件
付費板有多許多功能
稍微看了一下如果要製做比較大型或是一些遊戲的話可以選擇購買付費版
多了不少看起來不錯的功能

A*Pathfinding project需要到官方網站去下載
線上商店只販賣完整版
這東西是蠻有名的尋路AI
Unity3D中也有內建AI功能
名稱是NavMesh

TexturePacker一樣需要到官方網站去下載
線上商店只賣完整版(5塊美金 其實挺便宜)
這是用來打包你的圖片用的程式
一周內可以試用完整版內容
不過這邊基本上只用的到免費版本功能

iTween在線上商店中有提供免費版
照的教學用還沒用到這部分就已經出錯了
看起來是一個可以簡單製作一些染色和動畫的插件
作者有在網站求助捐款
如果有錢的話就幫幫作者吧


Orthello
要使用Orthello只要先利用Asset store將插件加入專案
然後拖曳Orthello->Objects->OT至Hierarchy區就可以了
注意每個遊戲場景都需要加入OT的運作才會是2D遊戲
他會調整主攝影機的設定並顯示遊戲畫面區塊
使得再Unity3D內製作2D遊戲變得容易許多

加入後把Hierarchy區OT物件打開
點擊view調整遊戲視窗(方便製作者觀看範圍)
pixel perfect resolution內設定成和遊戲視窗相同
custom size應該是一種相對數值
它會依照遊戲視窗和這個值的比例影響物件大小
800*600的視窗中custom size 10在遊戲中的物件Scale 1剛好是30像素

圖像存放
Orthello -> Objects -> Sprites -> SpriteAtlas內的SpriteAtlas-Cocos2D
拖曳至Hierarchy就可以使用
拖曳後會看到OT->Containers內多一個物件Container (id=-XXXX)
重新命名後將圖像拖曳至Texture槽內就可以了
如果有用其他工具打包的xml檔在同資料夾內會自動載入Atlas Data File槽中

動畫設定
Orthello -> Objects -> Sprites中Animation

拖曳至Hierarchy就可以使用
拖曳後會看到OT->Animations內多一個物件Animation(id=-XXXX)

重新命名後在Inspector視窗內調整參數
Container可以直接拖曳Hierarchy內設定完的SpriteAtlas-Cocos2D物件載入圖像

動畫物件
Orthello -> Objects -> Sprites中AnimationSprite
拖曳至Hierarchy就可以看到畫面中多了一個白色物體
如果沒有可能是預設大小太小
調整Transfrom中Scale參數調整大小
將設定好的Animation拖放至AnimationSprite中的Animation欄位就可以看到動畫被載入了

TexturePacker
打開後將要打包在同一張圖的圖片拖曳至畫面
接下來的參數部分不是很熟
就附上原文教學的設定
如果之後有玩它的話再開一篇補充
磚塊
layout區
將 Algorithm 設為 Basic
取消 Enable Auto Alias
Trim mode設為None
output區
Data Format格式選擇cocos2d
選完儲存路徑後將附檔名.plist改成.xml
玩家
將 Algorithm 設為 Basic
Trim mode設為None
Border Padding 設為 1(猜測是每張圖片外為增加多少空白像素)
Shape Padding 設為 1

output區
Data Format格式選擇cocos2d
選完儲存路徑後將附檔名.plist改成.xml