# Unity game 階段を下りるホットポット ###### tags : `暑假` ---- ## 環境建置 Unity hub 3.1.2( 編輯器:2020.3.33f1 LTS ) VScode( C# ) ---- ## GameLoop start -> ( update<->draw ) ->shut ---- ## codeせつめい ``` void Start() : 啟動程式後只做一次 void Update() : 視為無限迴圈 Time.deltaTime : 做一次迴圈所需的時間,可避免每台電腦跑迴圈的時間不同 SerializeField : 把變數設為private但可出現在unity介面,或直接用public也可 void OnCollisionEnter2D(Collision2D other) : 給予碰撞反應, other為物體參數 void OnTriggerEnter2D(Collider2D other) : 判斷有無經過物體, 必須先將物體trigger,即無視碰撞 other.contacts.normal : 尋找物體法向量 other.contacts.point : 尋找物體座標 gameObject.SetActive : 使物件顯示或不顯示 GetComponent<>(). : 獲取Unity欄位功能 Time.timeScale : 在Unity裡時間的縮放的比例,預設為1 Text 型別 : 需using UnityEngine.UI UnityEngine.SceneManagement : SceneManager.LoadScene("SampleScene") 可以再次載入場景,需using UnityEngine.SceneManagement ``` ---- ## Unityせつめい - Rigibody : 賦予物理性  - Collider : 加上碰撞範圍  - prefab : 素材規格群組化  - UI(User Interface) : canvas獨立於整個遊戲其子物件可蓋過遊戲中所有畫面,Eventsystem處理遊戲中觸發的事件  - animetion : 製作動畫,將圖片放入調整頻率 - (動畫流程圖)  - 解決動畫切換延遲 : Has Exit Time, Fixed Duration取消, Transition Duratior = 0(有bug,所以改成自己調參數)  - (調整參數 : idle到run的動畫)  - (調整參數 : run到idle的動畫)  - (觸發run條件)  - Has Exit Time : 這格有勾選的話,當此狀態的動畫結束後,回進行下一動畫,否則就會在此狀態停留。而Setting的Exit Time則可以設定什麼時候此狀態結束,轉換至下一個狀態,也可以透過滑鼠直接調整下面的藍條,做快速設定 - Fixed Duration : 打勾時Transition Duration單位為秒,打勾取消時則是以動畫總長度的百分比為單位 - Transition Duratior : 可以設定兩個動畫間的過渡漸變秒數,讓動畫轉換不會那麼生硬。 - Animator layers : 注意權重設置為0的話動畫不會顯現  - AudioSource:增加音效 - Play On Awake : 如果有勾選則遊戲開始就播放音效  ---- ### 遇到的困難 - 自己的VScode不會跑出完整要打的參數,要自己一個字一個字打,很常打錯大小寫 - 要從C#學起似乎會比較好(不過照著做是還好) - Unity介面可能不熟悉吧,常常做好的部分突然不見,或是突然檔案亂跑 ---- :::info 備註 : code裡有比較好的說明?大概吧 資料參考 : https://www.youtube.com/watch?v=nPW6tKeapsM&t=7745s&ab_channel=GrandmaCan-%E6%88%91%E9%98%BF%E5%AC%A4%E9%83%BD%E6%9C%83 成品&code : https://drive.google.com/drive/folders/1z4fEZXnppzekMmIxT5r2rm4aFzQRihYL?usp=sharing ::: ----
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up