# Unity 基本使用
###### tags: `unity`
>author: NanoStar030、wcyan
>last update: 2023/05/12
---
## 一、安裝與註冊
### 1.安裝Unity的程式
>Unity官網: https://unity.com/download
>Unity Asset Store: https://assetstore.unity.com/
>
>***注意事項***
>
>**1. 需要註冊Unity帳號(自行研究)**
>**2. Unity會要你定期更新 licenses(自行研究)**
>**3. 團隊開發時,記得Unity的版本要裝一樣的**
### 2.新增Projects
>**1. 開啟Unity hub**
>
>
>**2. 點左上角"New project"新增專案**
>
>(1) 選擇專案類型(2D或3D)
>(2) 專案名稱
>(3) 專案路徑
>(4) Create project
>
>**3. 新的基本專案就建好了**
---
## 二、基本介面操作
### 1. 基本介面 *(貼上各項介面的圖片、說明功能)*
#### (1) 各項重要視窗介紹
>:::spoiler
>a. Hierarchy:
>>列出目前scene內部中的所有object
>>
>>
>b. Project:
>>列出目前project的所有檔案內容
>>
>>
>c. Inspector:
>>點選object後,可在此更改其各項properties
>>
>>
>d. Scene:
>>顯示當前的所有object擺放位置、呈現的樣子
>>
>
>e. Game
>>執行project後,會在此模擬執行的樣子
>>
>
>f. Console
>>顯示bug或者Debug.Log顯示的地方
>>
>:::
>
#### (2) 整體畫面(依個人習慣不同,排版可變)
>:::spoiler
>
>:::
#### (3) 呼叫上述介面
>:::spoiler
>
>:::
### 2. 基本操作
#### (1) 新增object
>:::spoiler
>在Hierarchy滑鼠右鍵選擇想要新增的object
>
>選擇後就會新增好object了
>
>:::
#### (2) 設定properties
>:::spoiler
>點一下剛剛新增的object後在Inspector中就可以更改各項properties
>
>:::
#### (3) 新增Script
>:::spoiler
>到Project視窗的Assets/Scripts(如果沒有此資料夾請自行新增)
>
>在右半視窗滑鼠點右鍵選擇Create/C# Script
>
>記得檔案名稱要取好
>:::
#### (4) 執行遊戲play
>:::spoiler
>寫好object與各項功能後,記得多按ctrl+s儲存project
>點選介面上方的play按鈕執行專案
>
>就可以在Game視窗中執行了
>要結束執行狀態在點擊一次play即可
>:::
### 3. 基本滑鼠運用
>:::spoiler
>滾動可以改變大小
>按下滾輪可在不同的滑鼠模式中移動視角(但只能平移)
>畫面右上角可以調整視角
>
---
## 三、遊戲物件分類
### scene
> object
>> (1) UI (2D)
>>> a. text
>>> b. image
>>> c. button
>>> d. input field
>>>
>> (2) 3D object
>>> a. cube
>>> b. sphere
>>> c. cylinder
>>>
>> (3) Camera
---
## 四、物件簡易操作
### 0. C# Script 的使用
>:::spoiler
>在Project下的空白處按右鍵
>找到create(通常在第一個)
>選擇C# Script
>空白處會出現#的圖示
>雙擊可顯示程式碼
>寫完程式後將#圖示拖移至你想要其做出改變的物件內
>後於畫面右方的inspector中找到Script
>把你想進行動作的物件丟進去(也可以用選擇的)
>
### 1. 顯示 and 隱藏
> 1. 於程式碼 class 內打入
>~~~c#
>public GameObject text; // 定義一個 Gameobject
>~~~
> 2. 於 class 內再創建一個 Function
>~~~c#
>public void buttonClicked() // 按鈕點擊時呼叫
>{
> if(text.active == true) // 如果 GameObject text 是顯示的狀態
> {
> text.SetActive(false); // text 設定為隱藏
> }
> else
> {
> text.SetActive(true); // text 設定為顯示
> }
>}
>~~~
>可寫成這樣(這樣的程式是在同一個button下的顯示與隱藏
>點選button物件
>右方的inspector中會有一個onclick(),按下+
>將你包裝好的物件丟進去裡面(這代表你可以在點選button的同時叫出那段程式
### 2. 移動 and 轉動
>於程式碼class內打入public GameObject move;//定義一個Gameobject
>於class內在創建一個public void
>可寫成這樣(這樣的程式是在4個button下移動與轉動
>點選button物件
>右方的inspector中會有一個onclick(),按下+
>將你包裝好的物件丟進去裡面(這代表你可以在點選button的同時叫出那段程式
> ~~~ C#
> public void buttonClicked()
> {
> if (cube.active == true)
> {
> cube.SetActive(false);
> }
> else
> {
> cube.SetActive(true);
> }
> }
> public void buttonClickedUp()
> {
> cube.transform.position = new Vector3(cube.transform.position.x, cube.transform.position.y + 1, cube.transform.position.z);
> }
> public void buttonClickedDown()
> {
> cube.transform.position = new Vector3(cube.transform.position.x, cube.transform.position.y - 1, cube.transform.position.z);
> }
> public void buttonClickedLeft()
> {
> cube.transform.position = new Vector3(cube.transform.position.x-1, cube.transform.position.y, cube.transform.position.z);
> }
> public void buttonClickedRight()
> {
> cube.transform.position = new Vector3(cube.transform.position.x+1, cube.transform.position.y , cube.transform.position.z);
> }
> public void buttonClickedRotateZ()
> {
> cube.transform.Rotate(0, 0, 45);
> }
> public void buttonClickedRotateX()
> {
> cube.transform.Rotate(45, 0, 0);
> }
> public void buttonClickedRotateY()
> {
> cube.transform.Rotate(0, 45, 0);
> }
> ~~~
---
## 五、其他學習 Unity 的相關網站
### 1. Unity User Manual
>https://docs.unity3d.com/Manual/index.html
### 2. Unity遊戲製作教學
>https://www.cg.com.tw/Unity/