- Home /
Reflection on class variable values null on editor startup
So I'm using reflection in the editor for an editor tool. I have created a prefab with a class attached and can use a custom editor tool to select the object, find the associated class, and see all of the fields and Properties from it. The problem is when I try to get the value of that Field or Property when first starting unity. When trying to get those values when I first startup the editor they're null, but when I edit the script and have the window reload, the values get filled and they're not null anymore. I've tried the ExecuteAlways attribute to maybe fill those values on awake, but they're still null on startup.
Some Pseudo Code: AbstractClass
abstract class AnObject:
public string Name {get; private set;}
A Test Class
class TestObj : AnObject // Testing so used to create an object
Editor for changes
class EditorWin : EditorWindow
1.SelectionTest() : Return the current Obj
2. Run Reflection on curObj
2.1. Get its properties
2.2: Try and get the value of the given class of curObj.
{
Property.Name //-> This always returns something
Property.GetValue(curClass)//-> if editorStartup returns null else it's the value
Property.GetValue(curClass).GetType//-> if editorStartup crashes with "Obj not set to Obj" else the actual type
}
Recap: I'm creating a prefab with a class associated with it with a value, i'm selecting it with a custom tool, then looking at the values of that prefab with reflection. However, this doesn't work when the editor first starts up, but only after changes are made to the script and saved. So only when the script is recompiled after the editor starts up.
PS. I know the code works, because it works fine in all other states of the editor. So My guess is that unity just kind of saves where scripts are on objects, but doesn't actually compile them or fill them until there is a change in the script.
Your answer
Follow this Question
Related Questions
Set MinWidth for EditorWindow 1 Answer
mouseposition and clicks in editor sceneview 0 Answers
Open a EditorWindow passing object to it 1 Answer
How to fix unity editor UI, and what dose the icon in the bottom right mean? 2 Answers
What is the best way to draw icons in Unity's Hierarchy window? 1 Answer