- Home /
How do you dynamically create serialized fields in the inspector?
I have a script that has a serialized array of strings. I want my scriptable objects to have an array of bools in their inspector windows that is based on the size of the array of strings.
For example, if I create this array of strings...
"dog"
"cat"
"bird"
...then I want to be able to automatically see a serialized array of bools like this:
☐ Dog
☐ Cat
☐ Bird
Is this possible?
Answer by logicandchaos · Jul 07, 2020 at 01:27 PM
Yes, you can use OnValidate() that method will run when you change something in the inspector. You can add the bools in many different ways, but they will not have names associated with them. I did a quick look on that and there are several posts that may help you out, but the easiest way seems to be to make a serialized class that has a bool and a string.
https://answers.unity.com/questions/1668026/list-of-bools-with-names.html
https://answers.unity.com/questions/222655/array-of-named-booleans.html
https://answers.unity.com/questions/1383565/how-can-i-rename-a-bool-variable-in-inspector-acco.html
Thanks for the suggestion! I didn't know about "OnValidate()." That said, I am getting a null reference exception when the code inside OnValidate is trying to get stuff from a Singleton. I'm guessing OnValidate() can't be dependent on anything that is runtime executed. Do you know how I would access members of a Scriptable object by using this function?
I figured it out. I needed to store my list in a scriptable object in order to have another one access it. I was storing it in a monobehavior.
Your answer
Follow this Question
Related Questions
Serialized Field on Scriptable object is lost on editor reload 1 Answer
Can I save a ScriptableObject holding data from a private database class without [SerializeField]? 1 Answer
How to serialize scripts in Unity? 1 Answer
Unity 2D: How to keep player within boundary and more in the picture below 2 Answers
Confused about custom GameObjects,Custom GameObject confusion 0 Answers