# Unity環境安裝
###### tags: `11001社課`
---
# 環境安裝
----
# Unity下載
[Unity Hub下載 ](https://unity3d.com/cn/get-unity/download)

----

----

----

----
# 如果建議版本不見了
----
直接載官方歷史版本2020.3.19版本
https://unity3d.com/unity/whats-new/2020.3.19
----
# C#簡介
C#是微軟推出的一種基於.NET框架的、物件導向的進階程式語言。
自2017年Unity廢除掉JavaScript後,為用來編寫Unity的主要語言。
----
# IDE(集成開發環境)
----
## Visual Studio
Microsoft Visual Studio(視覺工作室,簡稱VS或MSVS)是微軟公司的開發工具套件系列產品。VS是一個基本完整的開發工具集,它包括了整個軟體生命週期中所需要的大部分工具,如UML工具、程式碼管控工具、整合開發環境(IDE)等等。
----
如果嫌預設會安裝的Visual Studio 2019太胖了的話,可以考慮使用VSCode,可參考[此篇文章](https://tedliou.com/archives/vs-code-for-unity-setup/)進行安裝使用。
----
# 變更IDE
----

----

可選自己習慣的IDE使用
----
# 授權申請
----

----

----

----
# 學生專案申請
厭倦Unity免費版,每7天一次的授權更新了嗎,可參考[此篇文章](https://ishengplab.dev/unity-student/)並去官網用學生信箱申請1年份的Unity Pro。
---
# 建立新專案
----

----

位置名稱隨意
---
# 介面介紹
----
### Unity 操作介面
Unity 編輯器的操作介面是由多個不同功能的視窗組成,使用者可以調整視窗的大小與位置。

----
### Toolbar 工具列
Unity 編輯器的最上方是工具列,提供移動、旋轉、縮放物件的編輯工具。
Transform Tools 變形工具 移動 ( W )、旋轉 ( E )、縮放 ( R )
Transform Gizmo Toggles 切換物件使用自身座標或世界座標
Play / Pause / Step Buttons 遊戲檢視的執行、暫停、單格前進按鈕

----
### Project視窗(專案)
每個 Unity 遊戲專案的檔案都是儲存在一個專案資料夾,您可以從 Project View 專案視窗瀏覽專案資料夾的內容。
----
您可以為遊戲專案建立場景 ( Scenes )、預製物件 ( Prefabs )、行為腳本 ( Scripts ) ,或是匯入模型 ( 3D Models )、紋理 ( Textures )、音效 ( Audio ),並使用 Unity 的專案視窗來進行管理。若需要將資源加入目前的遊戲專案,可點選功能表 [ Assets > Import New Asset ] 並選擇檔案,或是使用滑鼠將檔案拖曳到 Project View 專案視窗。

----
### Scene視窗(場景)
主要工作區是的場景視窗,可以編輯地形或是加入各種遊戲物件,例如玩家角色、燈光、攝影機、粒子系統。

----
### Hierarchy視窗(階層)
顯示目前場景的物件與其階層關係,需要在物件附加元件或腳本時,可直接拖曳到階層面板的遊戲物件。
階層視窗中以藍色顯示名稱的遊戲物件是「預製物件」,而以灰色標示的遊戲物件則是暫時關閉的物件。

----
### Inspector視窗(檢查器)
Unity 畫面右側的屬性編輯器用於設定遊戲物件的屬性(物件名稱、座標位置、旋轉角度、縮放比例等),是否為靜態物件(用於計算燈光貼圖)。
此外,若是物件已附加燈光、攝影機、碰撞器、程式腳本等元件,也可透過 Inspector 屬性編輯器修改各項參數。

----
### Game視窗(遊戲)
遊戲視窗可用於遊戲的執行測試,點選右上方的 Stats 按鈕即可顯示 Statistics 半透明視窗,檢視 Draw Calls 數量、模型面數、材質貼圖的記憶體用量。

----
### Console視窗(控制台)
用來除錯以及Debug。
接受Debug.Log以及print兩種輸出方式。


---
# 資源商店
----
# Unity範例遊戲 2D Game kit 安裝
----

----

----

----

這邊的按鈕因為我已經安裝過了所以是Open in Unity 你們那邊應該會是導入到專案中
----

----

----

----

----

----

----

----

----

----

---
# 匯入貼圖素材
----
貼圖素材:
https://drive.google.com/drive/folders/1BIy5LpJVt7sd4Xr9lp71Ofu682mvLJyH?usp=sharing
----

右鍵顯示資料夾
----

拖入素材
---
# 2D Game Kit說明文檔
----
https://learn.unity.com/tutorial/2d-game-kit-walkthrough?uv=2020.3&projectId=5c51481eedbc2a00206944f0#
---
# 預製物(Prefab)觀念
就是預先製作好的物件
只要把任何拖入場景的物件拖回專案視窗都會變成預製物
好處是可以動態生成這些物件
---
# 修改與新增功能
----
# 勝利介面
----
UI跟一般場景的Sprite的差別?
----
UI是介面
所以根據不同裝置不同解析度
都需要等比例的顯示在固定位置
才能方便使用者操作
----

使用UI需要在場景右鍵新增一個畫布
----

渲染模式改為根據攝影機
----

將Cameras點開找到Main Camera拖進渲染攝影機這個選項裡面
----

變更圖層
----

對著畫布右鍵新增一個圖片 圖片裡在右鍵新增文字
----

調整圖片顏色
----

調整文字顏色、大小
----
# 遊戲勝利
----

進行之前先把主角的標籤改為Player
----

右鍵新增一個正方形貼圖
----

將貼圖放到精靈裡面即可變更貼圖
----

給這個物件增加2D碰撞器
----

給這個物件增加rigibody2D
這兩個一個是碰撞器 一個是讓碰撞時會擁有物理效果(被撞飛之類的)
----

碰撞器元件可以把 是觸發器這個選項打勾
就是沒有實體 不會被玩家撞到的意思
可是還是可以觸發程式的判斷式
----

rigibody2d記得把重力關掉
----

建立一個script 檔案名稱要直接輸入 不然用變更的話 檔案內部也要修改
----

這兩個名稱要一致 否則會報錯
雙擊兩下進入編譯器
----

Start跟Update刪除 之後社課才會用到
----

----

----

---
# 死亡重置關卡
----

可以從這裡看到主角死亡後執行的程式碼來自於PlayerCharacter的OnDie方法
----

找到PlayerCharacter並雙點兩下打開角色控制的程式碼
----

Ctrl+f搜尋程式碼OnDie找到這個方法
並加上第714行的程式碼
----
# 程式碼解釋:
----
```csharp=
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
// SceneManager.LoadScene()是載入場景(裡面放場景編號或名稱)
// SceneManager.GetActiveScene().buildIndex 是當前場景的編號
```
這是載入當前場景(當前場景編號)
----

發現錯誤
----

回到程式碼的最上方加上
```csharp=
using UnityEngine.SceneManagement;
// using是使用、引用命名空間的意思
// 在這裡是引用場景管理器
// 這樣才能用程式碼來載入場景
```
----
# 場景編號怎麼看或修改?
----

----

---
# 懶人包
----
相關的程式碼都放到雲端了
懶得打的人可以直接複製檔案取代
https://drive.google.com/drive/folders/1BIy5LpJVt7sd4Xr9lp71Ofu682mvLJyH?usp=sharing
---
# 輸出成EXE
----

----

擺在第一個場景會最先載入
所以自製的關卡可能要往前擺才行
---
# 自定義一個關卡
----
### 製作你的第一款遊戲
### 並分享於我們遊戲開發社的雲端吧!
https://drive.google.com/drive/folders/1nv4IvgLdBxM4cmHUr9fBenitoKtdF_Q5?usp=sharing
---
# 場景保留
----

如果要保留Start場景作為開始介面
則點開Start場景找到這個TransitionStart物件
變更檢查器滑到底的SceneName
---
# 官方手冊沒講的各種物件
----
# 專案內預製物介紹
----

背景音效
----

敵人 有圖示的兩種是怪物 另一個則是怪物召喚器
----

環境資源有兩種
其中acid除了會造成傷害之外
還會把溺水的玩家傳回最後觸碰過的檢查點
----

它可以直接用它的腳本來控制大小
----

可互動的物件
這個有些已經在手冊中介紹過了
故不再介紹可自己嘗試
----

場景控制類
CheckPoint(檢查點)
當你溺水時可將玩家傳送回最後碰過的檢查點
----

敵人特效類
除了會持續對玩家造成傷害的能量護盾外
大部分都是一次性的子彈攻擊
{"metaMigratedAt":"2023-06-16T11:40:44.342Z","metaMigratedFrom":"Content","title":"Unity環境安裝","breaks":true,"contributors":"[{\"id\":\"faca3329-cc98-475b-ac42-c0a846116bf8\",\"add\":8946,\"del\":1683}]"}