DragonBox / u3d

U3d is a cross-platform set of tools to interact with Unity3D from command line.
MIT License
362 stars 33 forks source link

Unity 2020 on linux #407

Open vinhui opened 4 years ago

vinhui commented 4 years ago

Issue Checklist

Issue Description

I can't seem to run Unity 2020.1.1f1. I've installed the unity version through the hub, then created a symlink in /opt/. This worked fine with 2019.* releases. I get the error error: Unity version '2020.1.1f1' not found. Use --trace to view backtrace when trying to run. Below are some extra details:

$ ll /opt                              
total 28K
drwx--x--x 4 root   root  4,0K dec  1  2019  containerd
drwxr-xr-x 5 root   root  4,0K dec  1  2019  DockStation
-rwxr-xr-x 1 root   root   638 jul 28 08:55  droidcam-uninstall
drwxr-xr-x 5 root   root  4,0K jul  1 11:36 'Mesh Viewer'
drwxr-xr-x 2 vinhui users 4,0K nov 10  2019  multimc
drwxr-xr-x 6 root   root  4,0K apr 28 21:42  REAPER
drwxr-xr-x 2 root   root  4,0K aug  6 08:53  skypeforlinux
lrwxrwxrwx 1 root   root    40 jun 15 15:57  unity-editor-2019.4.0f1 -> /home/vinhui/Unity/Hub/Editor/2019.4.0f1
lrwxrwxrwx 1 root   root    40 jun 29 16:45  unity-editor-2019.4.1f1 -> /home/vinhui/Unity/Hub/Editor/2019.4.1f1
lrwxrwxrwx 1 root   root    40 aug  7 09:27  unity-editor-2020.1.1f1 -> /home/vinhui/Unity/Hub/Editor/2020.1.1f1
$ u3d list --verbose --trace           
DEBUG Looking for installed Unity version under /opt/
DEBUG Looking for installed Unity version under /home/vinhui/Unity/Hub/Editor
DEBUG Found list_installed_paths: ["/opt/unity-editor-2019.4.1f1", "/opt/unity-editor-2020.1.1f1", "/opt/unity-editor-2019.4.0f1"]
DEBUG Looking for installed Unity version under /opt/
DEBUG Looking for installed Unity version under /home/vinhui/Unity/Hub/Editor
DEBUG Found debian_installed_paths: []
DEBUG Looking for installed Unity version under /opt/
DEBUG Looking for installed Unity version under /home/vinhui/Unity/Hub/Editor
DEBUG Found list_installed_paths: ["/opt/unity-editor-2019.4.1f1", "/opt/unity-editor-2020.1.1f1", "/opt/unity-editor-2019.4.0f1"]
DEBUG Looking for installed Unity version under /opt/
DEBUG Looking for installed Unity version under /home/vinhui/Unity/Hub/Editor
DEBUG Found debian_installed_paths: []
Traceback (most recent call last):
    19: from /usr/local/bin/u3d:23:in `<main>'
    18: from /usr/local/bin/u3d:23:in `load'
    17: from /var/lib/gems/2.7.0/gems/u3d-1.2.3/exe/u3d:7:in `<top (required)>'
    16: from /var/lib/gems/2.7.0/gems/u3d-1.2.3/lib/u3d/commands_generator.rb:41:in `start'
    15: from /var/lib/gems/2.7.0/gems/u3d-1.2.3/lib/u3d/commands_generator.rb:263:in `run'
    14: from /var/lib/gems/2.7.0/gems/commander-4.5.2/lib/commander/delegates.rb:15:in `run!'
    13: from /var/lib/gems/2.7.0/gems/commander-4.5.2/lib/commander/runner.rb:68:in `run!'
    12: from /var/lib/gems/2.7.0/gems/commander-4.5.2/lib/commander/runner.rb:452:in `run_active_command'
    11: from /var/lib/gems/2.7.0/gems/commander-4.5.2/lib/commander/command.rb:155:in `run'
    10: from /var/lib/gems/2.7.0/gems/commander-4.5.2/lib/commander/command.rb:184:in `call'
     9: from /var/lib/gems/2.7.0/gems/u3d-1.2.3/lib/u3d/commands_generator.rb:112:in `block (2 levels) in run'
     8: from /var/lib/gems/2.7.0/gems/u3d-1.2.3/lib/u3d/commands.rb:48:in `list_installed'
     7: from /var/lib/gems/2.7.0/gems/u3d-1.2.3/lib/u3d/installer.rb:88:in `installed_sorted_by_versions'
     6: from /var/lib/gems/2.7.0/gems/u3d-1.2.3/lib/u3d/installer.rb:88:in `sort'
     5: from /var/lib/gems/2.7.0/gems/u3d-1.2.3/lib/u3d/installer.rb:88:in `block in installed_sorted_by_versions'
     4: from /var/lib/gems/2.7.0/gems/u3d-1.2.3/lib/u3d/installer.rb:88:in `new'
     3: from /var/lib/gems/2.7.0/gems/u3d-1.2.3/lib/u3d/unity_version_number.rb:65:in `initialize'
     2: from /var/lib/gems/2.7.0/gems/u3d-1.2.3/lib/u3d/unity_version_number.rb:65:in `new'
     1: from /var/lib/gems/2.7.0/gems/u3d-1.2.3/lib/u3d/unity_version_number.rb:32:in `initialize'
/var/lib/gems/2.7.0/gems/u3d-1.2.3/lib/u3d/utils.rb:201:in `parse_unity_version': Version () does not match the Unity version format 0.0.0x0 (ArgumentError)
$ u3d --version                  
u3d 1.2.3
Eoin-Murphy commented 3 years ago

I have faced a similar issue. After a fresh install on Ubuntu (20.04) it was still reporting as not being installed. When I did a u3d list it would list the installation but without a version.

It looks like the method read_version_from_unity_builtin_extra is not reading a valid version number. When I changed this to return the correct (for me) value u3d launched unity as expected. My ruby skills aren't good enough to correctly read the value from this very large binary file but maybe this helps with diagnosis.