Unity Open Shader For VSCode

前言 針對 Unity Shader 檔案打開時,使用 VSCode 開啟而不是 Visual Studio,假如預設是 VSCode 則無需使用這功能。 會寫這功能是平常寫 C# 都是習慣使用 Visual Studio,而 Visual Studio 好像沒有針對 Unity Shaderlab 的關鍵字,而 VSCode 則有 ShaderlabVSCode(Free),也因此這樣選擇使用 VSCode。 因為平常開發時都是使用 Visual Studio,想開啟 Shader 時可以直接使用 VSCode 編輯,因此才參考 Sublime Text & Unity Shader,把 Sublime Text 改成使用 VSCode。 環境變數 需要注意環境變數裡的使用者變數的 Path 需要有 VSCode 的路徑 也可以使用 CMD 測試有無環境變數 VSCode CLI Args 根據 Unity 開啟 VSCode Args,可以使用 Process 填寫對應路徑就可以了。 "$(ProjectPath)" -g "$(File)":$(Line):$(Column) startInfo.Arguments = $"{projectPath} -g {fileName}"; Script 詳細的方法可以參考 Sublime Text & Unity Shader。...

2022-08-09

Unity Addressable Load Assets

前言 介紹我使用 Addressable 的讀取、生成、釋放方式。 詳細設定還是可以先觀看官方文件。 Event Viewer 可以利用 Event Viewer 在 Editor Runtime 時,隨時監控記憶體使用情況。就可以很明顯的發現,那些東西是忘記釋放掉的,或者不需要釋放的。 Load Asset IEnumerator InstantiateAsset(string asset) { AsyncOperationHandle<GameObject> async = asset.LoadAssetAsync<GameObject>(); yield return async; GameObject go = Instantiate(async.Result); } IEnumerator InstantiateAssets(string label) { AsyncOperationHandle<IList<GameObject>> async = Addressables.LoadAssetsAsync<GameObject>(label, null); yield return async; for (int i = 0; i < async.Result.Count; i++) GameObject go = Instantiate(async.Result[i]); } IEnumerator InstantiateAsset(AssetReference asset) { AsyncOperationHandle<GameObject> async = asset.LoadAssetAsync<GameObject>(); yield return async; GameObject go = Instantiate(async....

2022-05-04

Unity Addressable Download Assets

前言 在前一篇 Unity Addressable 介紹了簡易使用的方式,此篇是介紹下載 Asset 方法。 目前我個人使用過的方式有 Name、Label、AssetReference、Array AssetReference 的方式。 Addressables.LoadAssetAsync 官方範例提供的下載方式 Addressables.LoadAsset(s)Async,雖然這個是要把 Asset 讀取出來,其實他也有下載功能 Addressables.LoadAssetAsync<GameObject>(asset); 我是很少使用這種方式下載或更新 Asset,主因是我個人認為 Addressables.LoadAssetAsync 是讀取物件而不是更新物件的功能,所以我在需要更新時不會使用它。 Update Addressable Name/ Addressable Label IEnumerator UpdateAsset(string asset) { var downloadAsync = Addressables.DownloadDependenciesAsync(asset, false); yield return downloadAsync; Addressables.Release(downloadAsync); } 這個是下載 Addressable Name 或 Label的方法,可以利用 Label 下載多個不同 Group 的 Asset。 Addressable Name、Label 是無法利用 Hotfix 的方式產生,所以是要先創好需要的。若假如需要新的 Addressable Name、Label 是必須要重新輸出 App 才會更新。 Update Asset Reference IEnumerator UpdateAsset(AssetReference asset) { var downloadAsync = Addressables....

2022-03-14

Unity MathQuiz

此專案為 Unity math quiz,是基於 Tutorial 2 Create a timed math quiz 文件改寫出來的專案。

2021-11-29

Unity Calendar

Unity 實做日曆功能。

2021-06-17