遊戲開發小社課
Unity
— 貝絲
講師介紹 - 貝絲

- 我不會彈貝斯
- 北資學術
- 機研人
- 新竹人
中秋節剛被搞一波
今天上什麼?
要使用Unity需要的東西
VS Code
寫程式會用到
1
Unity Hub
遊戲主要介面
2
Unity Editor
3
安裝 VS Code
安裝 VS Code

按 Extensions
安裝 VS Code

安裝
C#
安裝 VS Code


安裝
Unity Code Snippets
安裝
Unity Tools
安裝 VS Code

https://dotnet.microsoft.com/zh-tw/download
要選有「長期支持」的版本
安裝 .net sdk

下載完後執行,就安裝完成了
安裝 Unity & Unity Editor
到 Unity 官網 https://unity.com/download
按下載,然後打開它
安裝Unity

註冊一個帳號
安裝Unity

沒登入的話先登入
安裝Unity

安裝 Unity Editor
- 如果有自己跳出來 -> 直接按
- 沒有的話:到 Installs -> Install Editor
安裝Unity


安裝 Unity Editor
- 選有長期支援的
安裝Unity

安裝 Unity Editor
- 把 VS Code 勾起來,按 Continue
安裝Unity

取得授權
- 到設定 -> Licenses -> Add
安裝Unity


取得授權
- 選最下面
- 好了之後會多出一個 License
安裝Unity


建立一個新專案
更改 Unity 設定

選2D
取個檔名後按 Create project
更改 Unity 設定

- Mac 按左上角 Unity -> Settings
- Windows 按 Edit -> Preferences
- 找到 External tools -> 把 Script Editor 改成 VS Code
更改 Unity 設定


- 到 Window -> Package Manager
- Packages 改成 Unity Registry
- 找到 Visual Studio Code Editor 按 Install
更改 Unity 設定


這樣就裝完了!
但如果你是 Mac 然後Unity Editor 沒裝成功的話請往下看
For mac

如果在安裝 Unity Editor 的時候出現這個
For mac
到啟動台,打開終端機


點開長類似這樣
For mac
打以下指令
cd /Applications
sudo mkdir Unity
sudo chmod 777 Unity

如果跳出上面要輸入密碼的話
輸入管理者的密碼
鍵盤打了上面不會有任何反應
要相信自己👊
輸入完指令關掉終端機
重新安裝一次 Unity Editor應該就可以了
Unity 是什麼?
- 由Unity Technologies遊戲軟體開發公司所研發的跨平台2D/3D遊戲引擎
- 可以開發
- Windows、MacOS、Linux 單機遊戲
- iOS、Android 行動裝置的遊戲
- 線上遊戲
- 主機上的遊戲 ex: PlayStation、XBox、Wii
Unity 是...



剛剛提到的「遊戲引擎」
「遊戲引擎」是由「遊戲開發」衍生出來的概念,藉由提供可重複使用的軟體組件(程式庫),提高遊戲開發人員的「創作」效率




用 Unity 做的遊戲
原神、傳說、Among Us、Pokemon Go、天天過馬路、紀念碑谷、動森、爐石戰記、湯姆貓






Unity 的好處
- 在遊戲開發的市場上非常受歡迎
- 學習資源多
- 容易上手
- 程式語言簡單
- 內建資源豐富
- 支援各種不同平台
- 個人使用(不賺超過10萬美金)完全免費
一些好用的資源
- 最好的方式就是
自學 - 自己想一個主題,然後去Google你這個主題用得到的功能,或是去挖Unity Scripting Reference
- 下面有幾個學長推薦的資源
學習 Unity 最快的方法
謝謝水獺學長
淺顯易懂的功能向教學
非常可惜的是他從2021年9月之後就沒有繼續更新Unity相關的影片了
所以觀看使用時要先確定資料是否適用

這個頻道比較偏向遊戲分析
深入探討了遊戲設計、關卡設計和遊戲製作方法
主要影片類別是分析各種遊戲,找出遊戲有趣的原因並討論什麼是好的遊戲設計,是個找設計靈感的好地方

一樣是功能向教學
不過內容比較進階,可以打好基礎再嘗試

中文的教學
從3D開始教起
去年才出現的頻道
聽說很搞笑

來自官方,有最準確詳盡的程式功能解釋及用法
通常是在網路上或其他影片真的找不到有幫助的,才會來這裡求助

資源超級多
遊戲資源

登入之後選 2D
按 Free
Unity Asset Store

找一個你喜歡的角色
按 Add to My Assets -> 同意條款
Unity Asset Store

到 window -> Package Manager
Unity Asset Store


把 Packages 改成 My Assets
按右上角 Download
按 Import
Unity Asset Store
再按 Import


你就會看到你的 Assets 多出一個資料夾了
Unity Asset Store

其他素材網站: 再次謝謝水獺學長www
- DOTOWN:提供像素風格的資源
- Kenney:提供了全免費而且好看的資源,通常是一系列一系列的,2D、3D、音訊、UI都有
- CraftPix:提供GUI、關卡地圖集和角色造型集,有些需要付費,免費多是32*32以上的像素風格
- itch.io:一個能上傳遊戲到網路上供大家遊玩的平台,也有提供遊戲的資源,大多免費,從角色造型集、關卡地圖集、音效、音樂、材質、背景、UI甚至字型都應有盡有
- Game Art 2D:提供角色造型集、關卡地圖集、GUI等,部分需付費
遊戲資源
Unity 使用介面
有兩個資料夾,一個是 Assets 一個是 Packages
Project 介面

Assets是用來存放各種你做遊戲裡會出現的檔案
Packages放的是Unity中內建的函式庫及延伸模組,通常不會動
裡面包含所有已開啟的 Scene 還有 Scene 裡面的 Game Object(遊戲物件)
新專案會預設Sample Scene跟一個 Main Camera (遊戲畫面)
Hierarchy 介面

新增遊戲物件的方法:
- 從空的地方按右鍵然後看要新增什麼
- 從 Assets 直接把檔案拉到 Hierarchy 裡面
- 從 Assets 把檔案拉到 Scene 裡面
Hierarchy 介面


可以在這裡選取物件
設計遊戲畫面的地方
Scene 介面

按滑鼠的右鍵 or 中鍵可以改變視角,滾輪可以縮放視角
按左鍵可以選取
Scene 介面

網格開啟/關閉
視角移動模式
物件移動模式(可以在一個軸上移動物件)
旋轉模式(圓盤360度旋轉)
比例模式(可以由物鍵中點等比例縮放)
矩形模式(四個端點+端點為中心的縮放,按住shift有物件移動模式的單軸向移動功能,常用)
綜合模式(綜合物件移動模式、旋轉模式及比例模式)
顯示該 Scene 的遊戲畫面(Camera 底下的畫面)
Game 介面

遊戲開始鍵,按下之後你去 Scene 更改任何東西在遊戲結束後都不會儲存
通常會在一開始就設定好畫面比例
不然你之後再改版面可能會爛掉
Game 介面

顯示選取的東西的屬性
可以在這邊更改&增加 Game Object 的屬性
Inspector 介面

可以增加物件的屬性
- 遊戲在跑的時後如果出錯或有問題會在這裡顯示
- 報錯分兩種:
- 黃色三角形:比較不嚴重,不太會影響程式執行
- 紅色八角形:比較嚴重,必須解決才能繼續進行 or 執行遊戲
Console 介面

你以為要下課了嗎?
先報迎新吧~

C# 語法
- C# (C Sharp)是一種由微軟開發的程式語言,屬於物件導向中的高階語言之一
- 主要應用於桌面應用程式開發、Web 應用程式開發、遊戲開發等
C# 是什麼?
在 Hierarchy 新增一個物件
將腳本連接到遊戲物件

我先新增一個方塊作為示範
按右鍵 -> 2D Object -> Sprites -> Square
在 Inspector 按 Add Component
將腳本連接到遊戲物件

搜尋打「script」-> 按 「New script」


打上檔名 -> 按 Create and Add
C# 的框架


Method
Method
Class
C# 的框架
- Start:遊戲開始的那一瞬間做的事情
- Update:遊戲開始後,也就是遊戲進行中,會不斷的執行

C# 語法
C#語法其實跟C++很像,所以你們如果上過大社課應該就要會了,之後幾堂課如果有需要會再詳細解釋
- 一定要加分號
- 資料型態:int、float、double、bool、string、char
- 運算子:+ - * / = += -= *= /= && || ==
- 通用語法:for、while、if else、switch case、struct
- 函式的定義
Unity 特殊的 C# 用法
輸出訊息到 Unity 的 console 視窗
- Debug.Log(你要輸出的訊息)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class teachingDemo : MonoBehaviour {
// Start is called before the first frame update
void Start() {
Debug.Log("開始囉");
}
// Update is called once per frame
void Update() {
}
}
Q&A
建北電資Unity小社課第一堂
By d11230618陳子毓
建北電資Unity小社課第一堂
- 276