- Home /
Is it better/more performant to make a SerializedProperty reference or get the reference as needed from the serializedObject reference?
Assuming I'm using a custom editor script, and considering most of the time these properties would potentially be accessed rapidly/continuously in OnInspectorGUI(), would it be better/more-performant to create all the SerializedProperty references at the top of the script, assign them in OnEnable(), then use them in OnInspectorGUI() with EditorGUILayout.PropertyField() as with the following example...
[CustomEditor(typeof(myScript)), System.Serializable]
public class myScript_editor: Editor
{
SerializedProperty myReference_sp;
OnEnable()
{
myProperty_sp = serializedObject.FindProperty("myReference");
}
public override void OnInspectorGUI()
{
EditorGUILayout.PropertyField(myProperty_sp);
}
}
...or would it be better not to create those SerializedPropery references and simply call 'EditorGUILayout.PropertyField(serializedProperty.FindProperty("myProperty"))' anytime I'm using the property? This sounds kind of slow considering that GameObject.Find() is quite slow, and frowned upon for continuous use, but it's probably not that slow, considering you already have a reference to serializedObject...
Consider that I would need to make a lot of references if I used the first method, which would result in a much larger and less-appealing script, but I also want it to be performant considering I'm going to need a lot of calls to FindProperty with the second method, so I'm interested in how much less performant it is to make many calls to FindProperty.
Your answer
Follow this Question
Related Questions
Custom Inspector: Using 'serializedObject' to access inherited members 1 Answer
Error when trying to Serialize a field that is in a class 0 Answers
Change the fields on a object bound to a SerializedProperty via custom inspector? 1 Answer
Cannot convert serializedObject to float 1 Answer
Replicate "Apply" and "Revert" button functionality in ScriptableObject Editor Inspector 2 Answers