2018年12月16日 星期日

Unity engine editor on Linux

前一陣子因為有需求, 嘗試在 Linux環境中使用 Unity engine,
Unity官方早期是有宣稱過支援 Linux OS的, 但其實近年已經悄悄拿掉,
目前官方只公布支援 Windows與 Mac OSX.
原因無它, 自然是因為 Linux分岐版本太多難以維護管理.

自己也算是 Unix系統新手/白癡
所以想說還是紀錄一下這一陣子以來在 Linux使用經驗上踩過的雷好了

1. 準備VM
首先因為手邊只有 Windwos OS (沒錯我一直很懶得學/用 Linux環境)
因此最快的方式就是使用 virtual machine工具,
鑒於以前慣用 virtual box, 這次想改玩 VMware,
故使用免費版 VMware workstation player
https://www.vmware.com/tw/products/workstation-player/workstation-player-evaluation.html

2. 安裝Linux OS
從官方論壇調查得知, 目前 Unity官方宣稱支援最穩定的是 ubuntu OS環境,
因此選擇 ubuntu, 初步測試先選擇安裝較新的 ubuntu 18.04 64bit
https://www.ubuntu-tw.org/modules/tinyd0/
現在的 virtual machine和 ubuntu安裝流程真的是有夠方便的,
感覺跟一鍵搞定差不多了


3. 安裝 Unity engine editor (for Linux)
參考以下官方討論串
https://forum.unity.com/threads/unity-on-linux-release-notes-and-known-issues.350256/
沒錯, 並沒有在官方網站上留下 Linux版本支援連結,
只剩下討論串的方式來發布新的 Linux版本 Unity engine...
總之裡面也算是有詳細介紹安裝教學,
而必備的 3rd party tool/app/libs 則是列出了一大堆..

The dependencies for Unity itself are:
  • gconf-service
  • lib32gcc1 (>= 1:4.1.1)
  • lib32stdc++6 (>= 4.6)
  • libasound2 (>= 1.0.23)
  • libc6 (>> 2.15)
  • libc6-i386 (>= 2.15)
  • libcairo2 (>= 1.6.0)
  • libcap2 (>= 2.10)
  • libcups2 (>= 1.4.0)
  • libdbus-1-3 (>= 1.2.14)
  • libexpat1 (>= 1.95.8)
  • libfontconfig1 (>= 2.8.0)
  • libfreetype6 (>= 2.3.9)
  • libgcc1 (>= 1:4.1.1)
  • libgconf-2-4 (>= 2.31.1)
  • libgdk-pixbuf2.0-0 (>= 2.22.0)
  • libgl1-mesa-glx | libgl1
  • libglib2.0-0 (>= 2.31.8)
  • libglu1-mesa | libglu1
  • libgtk2.0-0 (>= 2.24.0)
  • libnspr4 (>= 1.8.0.10)
  • libnss3 (>= 3.14.3)
  • libpango1.0-0 (>= 1.22.0)
  • libstdc++6 (>= 4.6)
  • libx11-6 (>= 2:1.4.99.1)
  • libxcomposite1 (>= 1:0.3-1)
  • libxcursor1 (>> 1.1.2)
  • libxdamage1 (>= 1:1.1)
  • libxext6
  • libxfixes3
  • libxi6 (>= 2:1.2.99.4)
  • libxrandr2 (>= 2:1.2.99.2)
  • libxrender1
  • libxtst6
  • zlib1g (>= 1:1.1.4)
  • debconf (>= 0.5) | debconf-2.0
  • npm
當然為了求穩, 我把上述的軟體清單全裝了一遍wwwww
sudo apt-get install xxxx ...... (重複數十遍..)
如果要找更簡潔的安裝說明的話可以參考以下連結
https://www.paperstartgames.com/install-unity3d-in-ubuntu-18_04/
總之我試著安裝了 Unity2018.1.3 與 Unity2018.2.7 (當時官方支援的最新版本)
兩個版本遇到的地雷點差不多,
照個教學一步一步做總之是把 Unity engine run起來惹wwww
可以編遊戲也可以 build player,
但每次開 package manager必定 crash...

為了開啟 coding IDE, 我選擇裝 visual studio code,
但每次重開 Unity editor都必須重新指定 preferences -> External Tools -> External Script Editor,
似乎沒有正確寫入 Unity editor preference...

4. 地雷筆記
這部分只是我將前陣子記錄下來的踩雷點存在 blog上
大部分我也沒再追蹤, 所以算是沒意義可以忽略ww
        = Unity engine editor啟動時有出現幾個 error logs, 也遇到 Unity官方 tutorial專案時會發生 crash的問題, 但開啟新的空專案或之前自己準備的 Unity專案時則沒有 crash. ERROR:browser_main_loop.cc(161)] Running without the SUID sandbox! (可忽略); ERROR:renderer_main.cc(227)] Running without renderer sandbox; ERROR:gpu_process_transport_factory.cc(402)] Failed to establish GPU channel.
        = 在 Unity editor中設定 preferences -> External Tools -> External Script Editor, 容易發生 Unity editor crash. 嘗試使用 sublime-text開啟 Unity script file (.cs), 但在更改 scripting codes/shader codes後返回 Unity engine editor時會發生 crash.
        = Unity editor中開啟 Package Manager必會發生 crash.
        = Crash core dump中可以發現訊息: VMware: vmw_ioctl_command error Invalid argument. 可能跟 VMware環境提供的 GPU driver運作有關.
        = Linux standalone環境會被 Unity engine自動認定為 UnityEngine.Rendering.GraphicsTier.Tier3 (高階硬體環境)
    - 測試 standalone player app在 ubuntu OS VM (VMware without "Accelerate 3D Graphics" enabled)環境下的運行情境. 初步測試因為 Unity Linux standalone player要求至少支援 OpenGL Core 3.2+ version, 所以 app啟動失敗.

沒有留言:

張貼留言