從9/29開始報到開訓典禮,9/30正式上課,此篇則為9/30所教的課程
往後我盡量發表我當天所學到的部分,以供未來有人可能會看資策會的課程做參考
也順便複習下課程的內容
========================================================================
這堂課為「Unity入門」,簡單來講就是介面操作上的入門
往後還有C#專門的課程,不過這堂有先介紹點簡單基礎的Unity API的程式語法
基本上個人在進到課堂前有稍微接觸過Unity3D,所以這堂課大部分都還算熟悉
不過一些小細節的部分倒是真的不知道,也順便放上來給大家看
========================================================================
因為本人30天試用期已過,所以已從Pro版轉為Free版
所以畫面才會正麼白,這點事先說明一下
未來再看看專題製作會不會用到Pro版的功能在考慮購買
暫時先用官方的範例當介面的介紹
首先要建立一個專案,File>New Project...
選好你要建立的專案所在資料夾名稱
在下面的Setup defaults for:裡面有兩個選項為3D 2D
這是決定你遊戲設計的環境為3D還是2D,而範例所使用的是2D
當然你也可以使用3D的環境匯入2D的專案,這其實沒有影響
Window>Asset Store則可以在線上選擇你要使用的各種素材等
甚至一些好用的簡單工具也可從這入手,官方範例檔也是從這弄來並匯入使用
有些免費有些則需要$$,使用後可以讓你製作遊戲簡化許多
下方Project介面區有Assets的部分是你遊戲製作所用的素材
裡面包含Sprite(圖片)、Audio(音頻)、Script(腳本)等許多
這些都會實際在Unity程式外產生資料夾,以方便從外部匯入進去
順帶一提,你要編輯遊戲,必須開啟一個Scene(場景)
這概念像是一個地圖區塊的,各個地圖區塊都會有不同的物件事件等
Console是編譯結果,使否有程式撰寫上的Bug都會在這顯示出
Hierarchy內所放的是GameObject(遊戲物件,場景內的所有資源模組等)
應該有人有注意到那些GameObject有些是藍字
那是因為這些GameObject被回存放到Assets內當作一個模組來用
(只要將你要存的GameObject整個拖曳至Assets內的任何位置既可儲存)
就很像你要寫很多雜魚,你不可能把同個雜魚一直重複撰寫
而且要修改也不可能在一大群內一個一個改,所以把它模組化後就可以不斷地丟上去
而且只要在Assets內把它打開來做一次性的修改,其他放上去的也會順便改好
而GameObject內部的Component(元件,遊戲物件的任何狀態效果)編輯在右方的Inspector介面區
話說自己所撰寫好的Script也是放在這裡,才能讓Script去操作GameObject
========================================================================
稍微簡單介紹一點Component的各類效果
Transform:座標系統,Position(位置)、Rotation(旋轉方式)、Scale(縮放比例)
Physics2D>Rigidbody 2D:2D角色物理行為
Physics2D>Box Collider 2D:2D箱形碰撞判定
Physics2D>Circle Collider 2D:2D圓形碰撞判定
Physics2D>Edge Collider 2D:2D線性碰撞判定
Physics2D>Polygon Collider 2D:2D多邊形碰撞判定
Rendering>Camera:攝影機畫面,在遊戲中所顯示的畫面區塊
========================================================================
C#的語法稍微簡單帶入一點,沒做多少深入
Unity內建的程式撰寫工具是MonoDevelop
聽說最近好像有讓Unity直接開啟Visual Studio來撰寫C#腳本的東西
畢竟C#是微軟開發出來的還是使用Vistual Studio會比較好
課堂上沒有用出來也不敢確定是否真的有用
using UnityEngine;
使用預先寫好的程式,這是Unity事先幫你寫好的程式,讓你省去大部分的麻煩
void Start()
這段函式內部所要放的是初始化的值
void Update()
每秒程式會讀取這段來不斷更新遊戲內部的狀態,FPs(更新次數/秒)就是指這裡
先提一下可能會常犯的一個錯誤
當你使用float的類型請務必將數字後加個f or F,不然程式會搞不懂你是寫float還是double
簡單的改GameObject座標程式碼
transform.position = new Vector3(x,y,z);
x y z為任意數值
Instantiate()動態產生實體
========================================================================
個人目前盡可能地去把課堂上的內容,以個人的認知稍微說明些
可能有重要的地方漏掉或錯誤的部分請見諒,也請留言提醒
繼續努力研讀Unity3D,也請期待我所製作的作品