Integrating the Scriptable Object with the level
In this section, we will integrate the LevelSetting class with our levels and then test how Scriptable Objects allow us to modify values in the play mode.
Updating the Level and the LevelInspector class
The first change to be made is to update the Level class. So, instead of using the current variables for the gravity, bgm, and background, start using a LevelSetting class as a reference.
Let's make a small update in Level.cs file. Add the following lines to it:
[SerializeField]
private LevelSettings _settings;
public LevelSettings Settings {
get { return _settings; }
set { _settings = value; }
}We need to take care of the render of this new property.
We will update the DrawLevelDataGUI method in the LevelInspector class:
private void DrawLevelDataGUI () {
EditorGUILayout.LabelField ("Data", _titleStyle);
EditorGUILayout.BeginVertical ("box");
EditorGUILayout.PropertyField (_serializedTotalTime);
_myTarget.Settings...