/// <summary> /// First function that gets called on all components. /// VehicleController reference will be null before this function is called. /// </summary> public virtual void Awake(VehicleController vc) { this.vc = vc; initialized = false; wasEnabled = false; fullTypeName = GetType().FullName; if (state == null) { state = new StateDefinition(); } state.fullName = fullTypeName; LoadStateFromDefinitionsFile(fullTypeName, ref state); }
/// <summary> /// Loads state settings from StateSettings ScriptableObject. /// </summary> public void LoadStateFromDefinitionsFile(string fullTypeName, ref StateDefinition state) { if (vc.stateSettings == null) { return; } StateDefinition loadedState = vc.stateSettings.GetDefinition(fullTypeName); if (loadedState != null) { state.isOn = loadedState.isOn; state.isEnabled = loadedState.isEnabled; state.lodIndex = loadedState.lodIndex; state.fullName = fullTypeName; } else { Debug.LogWarning( $"State definition {fullTypeName} could not be loaded. Click on 'Refresh' button under Settings > State Settings."); } }