Placeholder-Software / Dissonance

Unity Voice Chat Asset
71 stars 5 forks source link

Allow asset to be placed anywhere in the project #75

Closed WikkidEdd closed 6 years ago

WikkidEdd commented 6 years ago

Context

It is often useful to put asset store plugins in different folders within the project so the root of the project doesn't get messy. When moving the dissonance plugin it starts spewing errors because it can't find a hardcoded path for the WelcomeLauncher.json.

Expected Behavior

Developers should be able to move plugin out of the root with causing errors or having to modify internal files.

Actual Behavior

When moving the dissonance plugin it starts spewing errors because it can't find a hard coded path for the WelcomeLauncher.json.

Workaround

Change DissonanceRootPath.BasePath to reflect where the plugin has been moved too.

Fix

Load a known asset (e.g "Dissonance_Large_Icon") in the resources directory using Resources.Load, then use the AssetDatabase to find the path of that Asset. Then use that as work out the BasePath of the plugin.

Steps to Reproduce

Provide a detailed set of steps to reproduce the problem

  1. Install plugin to fresh project
  2. Create folder in project "Code/Contrib"
  3. Move Dissonance from within Plugin folder to "Code/Contrib"
  4. Observe errors

Your Environment

martindevans commented 6 years ago

Dissonance 6.1.0 just released onto the asset store with a fix for this.

We already had the welcome window pop up when you first install Dissonance. That's been extended so it checks where Dissonance is located within the project, if it's not in the location pointed to by DissonanceRootPath.BasePath it finds it and then automatically rewrites the value of DissonanceRootPath.BasePath to point to the correct location. This will trigger a recompile (because code changed) and everything will work as usual the second time because the BasePath value is now correct.

I'll close the issue but please don't hesitate to re-open it if it's still a problem :)