最近從 Unity Weekly 看到有趣的文章:

services-config.json で使えるカラム情報のお話

C:\ProgramData\Unity\config\ 下加入 services-config.json 可以稍微客製化 Unity Hub 的行為。 不過實際試過發現真的有作用的功能有限,只是單純紀錄一下。

範例的 C:\ProgramData\Unity\config\services-config.json 內容:

{
  "hubDisableSignInRequired": true,
  "hubDisableWelcomeScreen": true,
  "hubDisableAnalytics": true,
  "hubDisableCommunity": true,
  "hubDisableLearn": true,
  "hubDisableVisualStudioDownload": true
}

要適用新的 services-config.json 要整個 Unity Hub 關掉,不只要關閉視窗,還要從工作管理員關掉 Unity Hub Process。

這些 flag 幾乎沒有 Unity 文件,猜測原文章作者是透過拆 Unity Hub 的 Electron 源碼找到的。 原程式的內容在 C:\Program Files\Unity Hub\resources\app.asar Unity Hub 3.13.1 拆解的節錄內容:

vi=(e=>(e.DisableAnalytics="hubDisableAnalytics",e.DisableAutoUpdate="hubDisableAutoUpdate",e.DisableCloudProjects="hubDisableCloudProjects",e.DisableCommunity="hubDisableCommunity",e.DisableElevatePermissions="hubDisableElevate",e.DisableLearn="hubDisableLearn",e.DisablePersonalLicense="hubDisablePersonalLicense",e.DisableSignIn="hubDisableSignin",e.DisableSignInRequired="hubDisableSignInRequired",e.DisableVisualStudio="hubDisableVisualStudioDownload",e.DisableWelcomeScreen="hubDisableWelcomeScreen",e.EnableWorkOffline="hubEnableWorkOffline",e.AnalyticsHighlightUI="analyticsHighlightUI",e))(vi||{});

可以看到有以下的 flag:

  • hubDisableAnalytics
  • hubDisableAutoUpdate
  • hubDisableCloudProjects
  • hubDisableCommunity
  • hubDisableElevate
  • hubDisableLearn
  • hubDisablePersonalLicense
  • hubDisableSignin
  • hubDisableSignInRequired
  • hubDisableVisualStudioDownload
  • hubDisableWelcomeScreen
  • hubEnableWorkOffline
  • analyticsHighlightUI

關閉登入畫面

  • "hubDisableSignInRequired": true

加入這個 flag 可以在沒登入狀態跳過 Unity Hub 的登入畫面直接進到 Hub, 不過要工作還是需要 License,License 還是需要登入,除非是匯入 License 否則用途不大。 "hubDisableSignin" : true"hubEnableWorkOffline": true 測試目前沒有作用。

關閉歡迎畫面

  • "hubDisableWelcomeScreen": true

不太確定歡迎畫面是什麼,沒有明確的作用。

避免安裝需要 Windows Administrator

  • "hubDisableElevate": true
  • "machineWideSecondaryInstallLocation": "C:\\UnityEditors"

這兩個 flag 有出現在 Unity 的文件裡:Enable Unity installation by standard users (Windows) 理論上是加上 hubDisableElevate 然後 machineWideSecondaryInstallLocation 指向一個不需要 Administrator 權限的目錄(Unity Hub 預設裝向 Program Files 需要 Administrator) 這樣就可以安裝時不需要 Elevate 成 Administrator,在控管電腦 Administrator 的公司環境會有幫助。 不過實際上使用了還是有 Elevate 需求,不知道是不是 bug。

關閉 Analytics

  • "hubDisableAnalytics": true

理論上會關閉 Unity Hub 的 Analytics,實際上不確定有沒有作用。

關閉 Cloud Projects

  • "hubDisableCloudProjects": true

理論上會關閉 Unity Hub 的強制 Unity Cloud Projects,但是實際測試沒有作用。

關閉 Unity Learn 與 Resources UI

  • "hubDisableLearn": true
  • "hubDisableCommunity": true

可以移除 Unity Hub 側面的 Learn 與 Resources tab。

關閉下載 Unity 時安裝 Visual Studio 選項

  • "hubDisableVisualStudioDownload": true

禁用 Personal License

  • "hubDisablePersonalLicense": true

這個會移除啟用 License 時,Personal License 的選項。 可以用在公司內避免員工誤用 Personal License。

關閉自動更新

  • "hubDisableAutoUpdate" : true

大抵上來說感覺想用的 flag 不作用的還蠻多的,希望之後的版本能修好。