Try setting the Save System's "Frames To Wait Before Apply Data" to zero. Also make sure your Dialogue Manager has a Dialogue System Saver component with a unique Key, and that Restore On Start is UNticked.
The Save System normally waits a number of frames before applying the save data to the scene. This gives other, non-Dialogue System scripts time to initialize themselves before receiving saved data. If no scripts need extra frames to initialize, then you can set Frames To Wait Before Apply Data to zero.
If that doesn't help, then don't check the quest states in start. Check the quest states only after the save system has restored the saved state. To do that, change code like this:
Code: Select all
void Start()
{
// ... check states ...
}
Code: Select all
void Awake()
{ // (Alternatively, you can put these in OnEnable/OnDisable instead of Awake/OnDestroy)
PixelCrushers.SaveSystem.saveDataApplied += OnSaveDataApplied;
}
void OnDestroy()
{
PixelCrushers.SaveSystem.saveDataApplied -= OnSaveDataApplied;
}
void OnSaveDataApplied()
{ // This method is called when the save system has finished restoring the saved state.
// ... check states...
}