Unity Deep Link -1

前言 DeepLink 是可以直接用網址呼叫 App 的方式之一,以前有提到可以利用 Get Android Intent Data for Unity 這邊文章提到的方式,呼叫 App,不過這只限定 Android,iOS 則還是需要用 Deeplink 的方式呼叫。主要是當時 Unity 版本並不支援 DeepLink,所以只能自己寫原生的,才會有之前的這篇文章,更重要的是,使用之前的呼叫方式是需要某些權限,但目前 Google 也把這些權限關閉,無法正常上架需要自己寫信去解釋才會願意讓你正常上架。所以建議是棄用這種方法改用 Deeplink。 詳細資料 Unity Deep Link Android Deep Link iOS Deep Link 建議是一定要把 Unity Deep Link 看完,才會知道怎麼設定,其餘兩邊則是原生地設定方式,可以參考。 使用方式 Unity Deep link Doc 官方也有文件解釋 Deep link 的基礎設定。 Script Start 需要再被喚醒 app 的瞬間也就是 Awake 時,先讀取 Application.absoluteURL 才能讀取道 deep link 的資料。Application.deepLinkActivated 部分則是 app 的 deep link feedback。...

2022-12-07

Unity Text Breaking Space

前言 Unity Text 中英混雜導致英文字跳行問題,主要是 Space 字串的問題,可以用 \u00A0 替代 Space。 Code private static readonly string no_breaking_space = "\u00A0"; public static string ReplaceSpace(string context) { return context.Replace(" ", no_breaking_space); } 可以這樣替代全部的 Space。 範例 使用前 使用後

2022-12-03

Oculus Auto Set Build Setting && Build

前言 之前因為遇到多平台功能,要輸出時各個平台 Player Setting 細項設定皆為不同,會因為某些沒有設定導致輸出時出包,所以才寫了一個自動輸出個平台功能。 XR Setting 可以利用這段來新增或移除 XR 裡面的 Oculus 勾選。 private static void SetOculusXRLoader(BuildTargetGroup buildTarget, bool active) { XRGeneralSettingsPerBuildTarget buildTargetSettings = null; EditorBuildSettings.TryGetConfigObject(XRGeneralSettings.k_SettingsKey, out buildTargetSettings); XRGeneralSettings settings = buildTargetSettings.SettingsForBuildTarget(buildTarget); if (active) XRPackageMetadataStore.AssignLoader(settings.Manager, "Unity.XR.Oculus.OculusLoader", buildTarget); else XRPackageMetadataStore.RemoveLoader(settings.Manager, "Unity.XR.Oculus.OculusLoader", buildTarget); } Build 利用這段自動輸出,options 可以設定 BuildOptions.None、BuildOptions.AutoRunPlayer,一般的 Build 和 Build and Run。 private static void BuildRelease(string Path, BuildTarget Target, BuildOptions options) { Console.Clear(); BuildPlayerOptions playerOptions = GetBuildPlayer(Path, Target, options); BuildReport Report = BuildPipeline....

2022-12-01

Unity Project Structure

Unity Project Structure 主要是建立一個自動建立簡易專案資料夾結構。 此參考 UnityProjectTreeGenerator 方法建立資料夾, 使用方式 Tools > Generate Project Structure 必須要設定 Root Name 才能點擊 Create Structure 資料夾結構 |- Assets |- Project Name /// 自己設定 |- 00_Art | |- 00_Profabs | | |- Models | | |- UI | |- 01_Shaders | | |- UI_Shaders | |- 02_Timeline | |- 03_Models | | |- Example_Model | | | |- 3D | | | |- Animation | | | |- Textures | | |- Example_Effect | | |- Textures | |- 04_Scenes | |- 05_UI | | |- Textures | | |- Effect | | |- Textures | | |- Animation | | |- Material | |- 07_Audio | |- 08_Video |- 01_Program |- 00_Scenes |- 01_Scripts |- 02_Tests |- 03_Prefabs |- 05_UI Github

2022-10-05

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