DanielEverland / ScriptableObject-Architecture

Makes using Scriptable Objects as a fundamental part of your architecture in Unity super easy
MIT License
979 stars 113 forks source link

Code generation doesn't work when it's installed from the package manager #75

Closed irakli closed 5 years ago

irakli commented 5 years ago

I'm guessing it can't access the file path as it's located outside the Assets folder.


Here's the stacktrace:

[Error] Couldn't find path for 
SO_CodeGenerator.GatherFilePaths()    Library/PackageCache/com.danieleverland.scriptableobjectarchitecture@15073a8dd481c724196b536549edf916a9d230fe/Editor/Code Generation/SO_CodeGenerator.cs:58
56:       if (_templatePaths[i] == default(string))
57:       {
-->58:           Debug.LogError("Couldn't find path for " + _templatePaths[i]);
59:       }
60:   }

ScriptableObjectArchitecture.Editor.SO_CodeGenerator..cctor()    Library/PackageCache/com.danieleverland.scriptableobjectarchitecture@15073a8dd481c724196b536549edf916a9d230fe/Editor/Code Generation/SO_CodeGenerator.cs:14
12:   {
13:       CreateTargetDirectories();
-->14:       GatherFilePaths();
15:   }
16:   private static void CreateTargetDirectories()

SO_CodeGenerationWindow.OnGUI()    Library/PackageCache/com.danieleverland.scriptableobjectarchitecture@15073a8dd481c724196b536549edf916a9d230fe/Editor/Code Generation/SO_CodeGenerationWindow.cs:91
89:           };
-->91:           SO_CodeGenerator.Generate(data);
92:       }
93:   }

GUIUtility.ProcessEvent()
[Exception] ArgumentNullException: Value cannot be null.
Parameter name: path
(wrapper remoting-invoke-with-check) System.IO.StreamReader..ctor(string)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.IO.StreamReader..ctor()    <1f0c1ef1ad524c38bbc5536809c46b48>:0

System.IO.StreamReader..ctor()    <1f0c1ef1ad524c38bbc5536809c46b48>:0

System.IO.StreamReader..ctor()    <1f0c1ef1ad524c38bbc5536809c46b48>:0

System.IO.StreamReader..ctor()    <1f0c1ef1ad524c38bbc5536809c46b48>:0

File.ReadAllText()    <1f0c1ef1ad524c38bbc5536809c46b48>:0

SO_CodeGenerator.GetScriptContents()    Library/PackageCache/com.danieleverland.scriptableobjectarchitecture@15073a8dd481c724196b536549edf916a9d230fe/Editor/Code Generation/SO_CodeGenerator.cs:138
136:   {
137:       string templatePath = _templatePaths[index];
-->138:       string templateContent = File.ReadAllText(templatePath);
140:       string output = templateContent;

SO_CodeGenerator.GenerateScript()    Library/PackageCache/com.danieleverland.scriptableobjectarchitecture@15073a8dd481c724196b536549edf916a9d230fe/Editor/Code Generation/SO_CodeGenerator.cs:122
120:   {
121:       string targetFilePath = GetTargetFilePath(index);
-->122:       string contents = GetScriptContents(index);
124:       if (File.Exists(targetFilePath) && !SOArchitecture_Settings.Instance.CodeGenerationAllowOverwrite)

SO_CodeGenerator.Generate()    Library/PackageCache/com.danieleverland.scriptableobjectarchitecture@15073a8dd481c724196b536549edf916a9d230fe/Editor/Code Generation/SO_CodeGenerator.cs:113
111:       if (data.Types[i])
112:       {
-->113:           GenerateScript(i);
114:       }
115:   }

SO_CodeGenerationWindow.OnGUI()    Library/PackageCache/com.danieleverland.scriptableobjectarchitecture@15073a8dd481c724196b536549edf916a9d230fe/Editor/Code Generation/SO_CodeGenerationWindow.cs:91
89:           };
-->91:           SO_CodeGenerator.Generate(data);
92:       }
93:   }

MonoMethod.Invoke()    <1f0c1ef1ad524c38bbc5536809c46b48>:0

MonoMethod.Invoke()    <1f0c1ef1ad524c38bbc5536809c46b48>:0

MethodBase.Invoke()    <1f0c1ef1ad524c38bbc5536809c46b48>:0

HostView.Invoke()    C:/buildslave/unity/build/Editor/Mono/HostView.cs:345

HostView.Invoke()    C:/buildslave/unity/build/Editor/Mono/HostView.cs:339

HostView.OldOnGUI()    C:/buildslave/unity/build/Editor/Mono/HostView.cs:139

IMGUIContainer.DoOnGUI()    C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:295

IMGUIContainer.HandleIMGUIEvent()    C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:481

IMGUIContainer.HandleIMGUIEvent()    C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:464

IMGUIContainer.HandleEvent()    C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:444

MouseCaptureDispatchingStrategy.DispatchEvent()    C:/buildslave/unity/build/Modules/UIElements/Events/MouseCaptureDispatchingStrategy.cs:84

EventDispatcher.ProcessEvent()    C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:280

EventDispatcher.Dispatch()    C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:156

BaseVisualElementPanel.SendEvent()    C:/buildslave/unity/build/Modules/UIElements/Panel.cs:189

UIElementsUtility.DoDispatch()    C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:255

UIElementsUtility.ProcessEvent()    C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:78

GUIUtility.ProcessEvent()    C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179
DanielEverland commented 5 years ago

Fixed