# 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) 錨點在