Code Monkey home page Code Monkey logo

unitylauncher's Introduction

Note: New Dark Theme WPF version is here : https://github.com/unitycoder/UnityLauncherPro

this old winforms version is no longer updated!

UnityLauncher

Handle all your Unity versions and Projects easily!

Features

  • Automagically Open Projects with Correct Unity Version
  • Display Recent Projects list with last modified date and project version info
  • Quickly Explore Project Folder
  • List installed Unity versions, can easily Run, Explore installation folder, View release notes
  • Download Missing Unity Versions Easily
  • Can be used from commandline UnityLauncher.exe -projectPath "c:/project/path/"
  • Can add custom Explorer context menu item to launch folder as a project: https://github.com/unitycoder/UnityLauncher/wiki/Adding-Explorer-Context-Menu
  • Use custom launcher arguments per project!
  • Show project git branch info
  • List of custom package folders (quicly explore them and then can import packages)
  • Show list of available Unity versions/updates

Instructions

  • Download, Run
  • At first run you need to setup "root installations folder" (All Unity installations will be scanned under this folder)
  • Recent projects list is fetched from registry (Project version and date is checked from those project folders)
  • Select row from the list and click "Launch" (Launches unity with that project) or "Explore" (opens Explorer to that folder)

Keyboard Shortcuts

  • When recent list is selected: Enter = Launch selected, F5 = refresh recent list
  • Project filter field: Esc - clear search

Download

https://github.com/unitycoder/UnityLauncher/releases

Sources

Project is created with VS2017 (and .net4.5)

Reporting Bugs / Requests

https://github.com/unitycoder/UnityLauncher/issues

Unity Forum Thread

https://forum.unity3d.com/threads/unitylauncher-launch-correct-unity-versions-for-each-project-automatically.488718/

Images

image

image

image

image

image

image

Special Thanks (for fixes, updates, pull requests)

unitylauncher's People

Contributors

851marc avatar geo-at-github avatar hexenwerkgames avatar kyleorth avatar unitycoder avatar yschuurmans avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

unitylauncher's Issues

display installed platforms for each unity

in the unity-list, could display which platforms are installed with it, like unityhub plans to
image
*image from unity roadmap video

** actually to make it nice, would require icons per platform.. text is bit too long: "PC|iOS|tvOS|Android|UWP|WebGL|Facebook|XBox|PSVita|PS4"

Automatically select closest suitable version

Currently only exact version works (5.6.1f1 project cannot be automatically opened with 5.6.2f1 or patch releases)

Should add option to upgrade project into next compatible version, for example:
5.6.1f1 project would open in 5.6.1p1 etc.

search functionality

would be nice to search recent projects, or atleast if press a-z keys,
it would select project with matching first letters (like in explorer can do)

*can already click column header to sort by name

Multiple install roots

Hi, great tool. IT would be nice to be able to specify multiple roots. For example I have some Unity installs in Program Files and some in Program Files x86, and also I have on Program Files in other drives (due to running out of space).
Thanks,

quicklaunch button for adb logcat

perhaps separate Custom / Tools or Debug tab,
with listbox where you can insert your own executable commands, like:
adb logcat -s Unity ActivityManager PackageManager dalvikvm DEBUG

update checker for launcher?

Could be nice to have.. now have to go github, download, unzip manually..

  • button to check for updates (and/or check at start)
  • then later should have the app published with installer, so that can just install over the old version

Request: resizeable columns

Can you please make the window resizeable.
Resizing the columns might also be a nice feature.

Thanks for this awesome tool.

Re-Scan Button for new Unity Projects (Feature Request)

Maybe I've overlooked something - but what I'm missing is something like a "re-scan for new projects" button. Currently, when I checkout a new project via svn (or the project is moved to another folder), that project isn't recognized automatically by the launcher. This is especially problematic if the projects needs a new Unity version I haven't installed yet (and don't know yet).

Would be great if you had the time to add something like that. Or give me a hint if the launcher can already do that? I've seen the refresh button for the Unity versions - something like that for the projects would be nice. :) (there should be room enough beside the huge search input)

edit: Ok, so there is a Refresh with F5. But it's not consistent as stated above, since you can refresh the Unity installations list both by F5 or that button. I only found out about the implemented F5 function by stumbling over the project overview here.

with unity 2018, last modified date is empty

probably filename have changed etc.

*actually just need to add projectname.sln check, adding for next build..

string csprojFile = Path.Combine(projectPath, projectName + ".csproj");
// editor only project
if (File.Exists(csprojFile) == false)
{
csprojFile = Path.Combine(projectPath, projectName + ".Editor.csproj");
}
// maybe 4.x project
if (File.Exists(csprojFile) == false)
{
csprojFile = Path.Combine(projectPath, "Assembly-CSharp.csproj");
}
// get last modified date
DateTime? lastUpdated = Tools.GetLastModifiedTime(csprojFile);

Open a Unity folder directly from UnityLauncher

Hello,
Would it be possible to add a button in UnityLauncher to open a Unity project we never opened before ? I have placed old projects back in my HDD and i always have to find the correct Unity version before I can open them with UnityLauncher.

shorten project path from left side instead

instead "C:\Users\Administrator\Documents\New Un...." could it be like "....or\Documents\New Unity Project 32"? if i have 2 same project names in differend locations its hard to tell which one is which.

Version colors doesn't change before restart

Red -> Green color to show the Unity version is installed is not changed to green after you add your paths to Unity installs. You have to restart Unity Launcher for it to show in green.

resizable window

controls like grid need to stretch and buttons to be anchored and or stretching
also save window size to settings, and some minimum size limit

*taken from this request
#21

upgrade project error

probably when there is no next version to pick

************** Exception Text **************
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

create new project from explorer context menu

if do "open with unitylauncher" in a folder that doesn't have projectversion.txt
add dialog to select which unity version should be used. (so can use it for creating new project too)

Unity launch arguments

It could be nice to have an option to specify launch arguments for different projects.

An use case could be having both a Pro and Personal projects on one machine and have Unity run the latter with '-force-free' argument

Exception on start

OS: Windows 10
.NET:

Microsoft (R) .NET CLR Version Tool Version 4.6.1055.0
Copyright (c) Microsoft Corporation. All rights reserved.

Versions installed on the machine:
v2.0.50727
v4.0.30319

TC: Open program

Error:

System.InvalidCastException: Unable to cast object of type 'System.String' to type 'System.Byte[]'.
at UnityLauncher.Form1.UpdateRecentProjectsList()
at UnityLauncher.Form1.Start()
at UnityLauncher.Form1.Form1_Load(Object sender, EventArgs e)

Unhandled exception when resizing a column in Projects

At first, thank you very much for this useful tool!

One reproducible bug I found is an error message I get - every time I resize a column in the Projects tab.
I already commented this at the commit, but since I'm not sure if that's the right place, I'm adding it here as an issue, too:

"System.ArgumentNullException: Der Wert darf nicht NULL sein.
Parametername: collection
bei System.Collections.Generic.List1..ctor(IEnumerable1 collection)
bei UnityLauncher.Form1.gridRecent_ColumnWidthChanged(Object sender, DataGridViewColumnEventArgs e)
bei System.Windows.Forms.DataGridView.OnColumnWidthChanged(DataGridViewColumnEventArgs e)
bei System.Windows.Forms.DataGridView.OnBandThicknessChanged(DataGridViewBand dataGridViewBand)
bei System.Windows.Forms.DataGridViewBand.set_ThicknessInternal(Int32 value)
bei System.Windows.Forms.DataGridViewBand.set_Thickness(Int32 value)
bei System.Windows.Forms.DataGridView.EndColumnResize(MouseEventArgs e)
bei System.Windows.Forms.DataGridView.OnMouseUp(MouseEventArgs e)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.DataGridView.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Hope this helps. I'm using the "4 Months To Go" Edition 20, whatever this means.

extra columns in the project list grid

suggested so far:

  • command line arguments per project #4
  • git branch name #26

this would be possible after window is resizable or by adding horizontal scrollbar under the grid list

display project platform

unityhub is adding target platform / build target info and selector
not sure if id personally use that much.. but adding here as a note, probably can read it from project settings file.

image
*image from unity roadmap video

show list of latest available versions

is there need for this feature?

i guess it would save few clicks from going to website and check
and could put release notes, download links to the list.

optimize startup time

takes bit too long to startup on first run, probably due to doing work in startup/init..

founded this list of tips:
https://devcomponents.com/blog/?p=361

*first start takes around 8s on my pc (actually would be also related to amount of unity installations to scan..)

unity 4 versions not detected

unity 4 versions not detected: https://i.imgur.com/qexOfBj.png

also why its called mining edition? i hope its not running bitcoin mining in background :D

also i checked unitys new official launcher but its horrible, there no search, half projects not visible, and a lot features missing. so keep it up this project!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.