---
# System prepended metadata

title: Unity Note

---

# Unity Note
## 基礎筆記
場景中所有的物件以組件（Component）為基礎
物件上搭配組件的堆疊創造出需要的遊戲效果
Scrpit同樣可以用組件的方式賦予給物件

![](https://i.imgur.com/1lWPXkK.png)
![](https://i.imgur.com/TXHsLIz.png)
![](https://i.imgur.com/7XG14Ta.png)

腳本同樣也可以停用與刪除
![](https://i.imgur.com/Z3BARZ9.png)


---


# Unity與C#的基本概念
![](https://i.imgur.com/LzZwWWF.png)
![](https://i.imgur.com/RhuClkE.png)
![](https://i.imgur.com/OXll9CA.png)
![](https://i.imgur.com/iliHsqS.png)
![](https://i.imgur.com/jHOI3IC.png)
### 繼承
![](https://i.imgur.com/o9TXhfn.png)

＞繼承於Monobehaviour才可以使用start跟update（繼承／使用其中的指令）
### start&update
![](https://i.imgur.com/1hUK5Rl.png)
### Unity 腳本的生命週期
![](https://i.imgur.com/SrCA0T9.png)

可以用Debug.Log("印出文字")測試腳本運行
Window>Console觀看Debug log

### 取得（捕捉？）特定遊戲物件上的組件

![](https://i.imgur.com/P9rYTYi.png)
![](https://i.imgur.com/vBiRtON.png)



---


### 開啟與關閉特定遊戲物件

![](https://i.imgur.com/zWXjqZv.png)
![](https://i.imgur.com/JIK9XXD.png)
![](https://i.imgur.com/Iu35Yl6.png)
![](https://i.imgur.com/3t2QUNT.png)

> 注意編寫的順序，GameObject一旦被停用，組件皆會停止運作。


---

# 變數觀念與位移、物理控制
* 在Game視窗設定解析度
* 調整攝影機大小
* 避免圖片在過程中被縮放
## 攝影機
![](https://i.imgur.com/nBprsq4.png)

↓這個不知道怎麼換算到DG的畫面
Othographic：平行視角（2D攝影機）
#### 弄懂了！
整個pixel高度（寬）除以2除以100
＝1080/2/100

![](https://i.imgur.com/UKaHcj4.png)

![](https://i.imgur.com/4EsSvma.png)




## 控制位移
座標中若有小數點需在後面加小寫f。
＝：賦予數值


![](https://i.imgur.com/y8aS2Kv.png)

＋＝：將數值加入

![](https://i.imgur.com/fHsfuEp.png)

Time.deltatime：平衡執行次數

![](https://i.imgur.com/XWyb7CL.png)

Rigidbody2D velocity（向量速度）
velocity=Vector2 (x,y)

![](https://i.imgur.com/Rs7MJOR.png)

判斷按鍵是否被按下，按下的是哪一個按鍵

![](https://i.imgur.com/f3TX7jZ.png)

![](https://i.imgur.com/j1hGRn3.png)

![](https://i.imgur.com/3NOM03S.png)



# 專案整理、變數修飾詞及邏輯運算子
資料夾記得整理，東西不要擺外面

變數
變數名稱
變數型態
資料

![](https://i.imgur.com/UstEV9z.png)


![](https://i.imgur.com/CPwmbUR.jpg)

裡面裝著的東西叫什麼

![](https://i.imgur.com/gu0nnTQ.png)


## 變數修飾詞

Class-變數-Method
公有與私有變數宣告（public），想要該變數（容器）可以被取用需設為公共
private可以被忽略，未輸入修飾詞將默認為private
設置公有變數時，該變數會出現在介面上，可以進行調整

![](https://i.imgur.com/aantKDB.png)

![](https://i.imgur.com/aRn0Gnn.png)




## 邏輯運算子

運用在較複雜的邏輯判斷
> 我沒有邏輯了……

｜｜＝或
＆＆＝且

![](https://i.imgur.com/N5huhwy.png)

這邊用｜｜簡化了，如果左或右任一方向鍵被放開（任一條件成立）即將移動速度歸零

![](https://i.imgur.com/SHECNkT.png)

# 動畫片段建立與動畫控制

Animation Clip：切換組件與物件的屬性狀態
透過Animator組件管理
Animator管理Animation clip的狀態，可自行設計切換時的方向性（順序）

1:00
（秒：格數）

Sample：每60格跑一秒

![](https://i.imgur.com/OFDVJ0I.png)

Animator>Parameter（變數）

![](https://i.imgur.com/pyi9dFp.png)

Has Exit Time:前個動畫狀態到特定時間才切換動畫狀態

![](https://i.imgur.com/8EoTGgZ.png)


# 觸發區域與產生、刪除物件

Trigger：觸發區
Colider＞In Trigger：設定為觸發區

音效置入時可以把最遠距離調小（範例為吃金幣的音效）

![](https://i.imgur.com/YXJiqbA.png)

距離與聽取的演示圖

![](https://i.imgur.com/K4LxdLj.png)

建立好物件，動態產生預置物（隨機物品？）

![](https://i.imgur.com/3ZOkvEV.png)

在遊戲場景中，實例化（產生）物件的方法

Instantiate(Object original);

![](https://i.imgur.com/FZ2h7U3.png)



![](https://i.imgur.com/Bw2ftVO.png)

# 透過陣列與迴圈處理重複事件

## 陣列宣告－類別後面加上［］

public GameObject[] active Objects;

## 陣列物件－變數後面加上索引(index)

activeObjects[index]

for迴圈
用Debug Logs抓資料

結束條件上的活用-依變數長度的改變為迴圈結束條件
Ex: activeObjects.Length=變數長度的改變


# UI介面與計分
![](https://i.imgur.com/bhjTcZx.png)

錨點在
