Auto save with prefabs + playmaker, NullReferenceException

Discussion and help for Easy Save 3
Post Reply
ieatcolors
Posts: 7
Joined: Fri Mar 05, 2021 9:55 am

Auto save with prefabs + playmaker, NullReferenceException

Post by ieatcolors »

Hello,

I am using Playmaker and EasySave3 to save my scene. I use a C# script to instantiate my prefabs into the scene. These prefabs have been marked for autosave, I have a ES3 Manager in the scene, auto saved is turned to on. The prefabs consist of a script, an FSM and some child gameobjects for visuals. I have also updated Easy Save earlier today. I am running Unity 2021.1.13f1.

I set up UI buttons to trigger Playmaker actions ES3 Auto Save Save and ES3 Auto Save Load. The Save action seems to work (no errors) but the Load action throws the following error:

Code: Select all

NullReferenceException: Object reference not set to an instance of an object
ES3Types.ES3Type_Fsm.ReadObject[T] (ES3Reader reader, System.Object obj) (at Assets/Plugins/Easy Save 3/PlayMaker/ES3PlayMaker.cs:1726)
ES3Types.ES3Type_Fsm.ReadObject[T] (ES3Reader reader) (at Assets/Plugins/Easy Save 3/PlayMaker/ES3PlayMaker.cs:1747)
ES3Types.ES3ObjectType.Read[T] (ES3Reader reader) (at Assets/Plugins/Easy Save 3/Scripts/Types/ES3ObjectType.cs:54)
ES3Reader.ReadObject[T] (ES3Types.ES3Type type) (at Assets/Plugins/Easy Save 3/Scripts/Readers/ES3Reader.cs:249)
ES3Reader.Read[T] (ES3Types.ES3Type type) (at Assets/Plugins/Easy Save 3/Scripts/Readers/ES3Reader.cs:278)
ES3Types.ES3UserType_PlayMakerFSM.ReadComponent[T] (ES3Reader reader, System.Object obj) (at Assets/Easy Save 3/Types/ES3UserType_PlayMakerFSM.cs:34)
ES3Types.ES3ComponentType.ReadUnityObject[T] (ES3Reader reader, System.Object obj) (at Assets/Plugins/Easy Save 3/Scripts/Types/ES3ComponentType.cs:36)
ES3Types.ES3UnityObjectType.ReadObject[T] (ES3Reader reader, System.Object obj) (at Assets/Plugins/Easy Save 3/Scripts/Types/ES3UnityObjectType.cs:65)
ES3Types.ES3ObjectType.ReadInto[T] (ES3Reader reader, System.Object obj) (at Assets/Plugins/Easy Save 3/Scripts/Types/ES3ObjectType.cs:77)
ES3Types.ES3Type_GameObject.ReadComponents (ES3Reader reader, UnityEngine.GameObject go) (at Assets/Plugins/Easy Save 3/Scripts/Types/Unity Types/ES3Type_GameObject.cs:216)
ES3Types.ES3Type_GameObject.ReadObject[T] (ES3Reader reader, System.Object obj) (at Assets/Plugins/Easy Save 3/Scripts/Types/Unity Types/ES3Type_GameObject.cs:167)
ES3Types.ES3ObjectType.ReadInto[T] (ES3Reader reader, System.Object obj) (at Assets/Plugins/Easy Save 3/Scripts/Types/ES3ObjectType.cs:77)
ES3Types.ES3Type_GameObject.ReadObject[T] (ES3Reader reader) (at Assets/Plugins/Easy Save 3/Scripts/Types/Unity Types/ES3Type_GameObject.cs:131)
ES3Types.ES3ObjectType.Read[T] (ES3Reader reader) (at Assets/Plugins/Easy Save 3/Scripts/Types/ES3ObjectType.cs:54)
ES3Reader.ReadObject[T] (ES3Types.ES3Type type) (at Assets/Plugins/Easy Save 3/Scripts/Readers/ES3Reader.cs:249)
ES3Reader.Read[T] (ES3Types.ES3Type type) (at Assets/Plugins/Easy Save 3/Scripts/Readers/ES3Reader.cs:278)
ES3Types.ES3CollectionType.ReadICollection[T] (ES3Reader reader, System.Collections.Generic.ICollection`1[T] collection, ES3Types.ES3Type elementType) (at Assets/Plugins/Easy Save 3/Scripts/Types/Collection Types/ES3CollectionType.cs:52)
ES3Types.ES3ArrayType.Read (ES3Reader reader) (at Assets/Plugins/Easy Save 3/Scripts/Types/Collection Types/ES3ArrayType.cs:36)
ES3Reader.Read[T] (ES3Types.ES3Type type) (at Assets/Plugins/Easy Save 3/Scripts/Readers/ES3Reader.cs:274)
ES3.Deserialize (ES3Types.ES3Type type, System.Byte[] bytes, ES3Settings settings) (at Assets/Plugins/Easy Save 3/Scripts/ES3.cs:799)
ES3.Deserialize[T] (System.Byte[] bytes, ES3Settings settings) (at Assets/Plugins/Easy Save 3/Scripts/ES3.cs:788)
ES3File.Load[T] (System.String key, T defaultValue) (at Assets/Plugins/Easy Save 3/Scripts/ES3File.cs:246)
ES3.Load[T] (System.String key, T defaultValue, ES3Settings settings) (at Assets/Plugins/Easy Save 3/Scripts/ES3.cs:433)
ES3AutoSaveMgr.Load () (at Assets/Plugins/Easy Save 3/Scripts/Auto Save/ES3AutoSaveMgr.cs:85)
ES3PlayMaker.ES3AutoSaveLoad.OnEnter () (at Assets/Plugins/Easy Save 3/PlayMaker/ES3PlayMaker.cs:1515)
HutongGames.PlayMaker.FsmState.ActivateActions (System.Int32 startIndex) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/FsmState.cs:222)
HutongGames.PlayMaker.FsmState.OnEnter () (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/FsmState.cs:192)
HutongGames.PlayMaker.Fsm.EnterState (HutongGames.PlayMaker.FsmState state) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:3055)
HutongGames.PlayMaker.Fsm.SwitchState (HutongGames.PlayMaker.FsmState toState) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2994)
HutongGames.PlayMaker.Fsm.UpdateStateChanges () (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2927)
HutongGames.PlayMaker.Fsm.DoTransition (HutongGames.PlayMaker.FsmTransition transition, System.Boolean isGlobal) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/

As another test, I have created an array of gameobjects (those same prefabs I instantiated) and tried to load and save these arrays. No issues using playmaker action Save All to save the array of gameobjects. Using Playmaker action Load All led to this error:

Code: Select all

Furniture Save Manager : FSM : State 1 : LoadAll : System.FormatException: Expected '{' or "null", found '0'.
  at ES3Internal.ES3JSONReader.ReadNullOrCharIgnoreWhitespace (System.Char expectedChar) [0x0009f] in C:\Users\user\OneDrive\Documents\Unity\Fitment\Fitment\Assets\Plugins\Easy Save 3\Scripts\Readers\ES3JSONReader.cs:359 
  at ES3Internal.ES3JSONReader.StartReadObject () [0x00007] in C:\Users\user\OneDrive\Documents\Unity\Fitment\Fitment\Assets\Plugins\Easy Save 3\Scripts\Readers\ES3JSONReader.cs:111 
  at ES3Reader.ReadObject[T] (ES3Types.ES3Type type) [0x00000] in C:\Users\user\OneDrive\Documents\Unity\Fitment\Fitment\Assets\Plugins\Easy Save 3\Scripts\Readers\ES3Reader.cs:246 
  at ES3Reader.Read[T] (ES3Types.ES3Type type) [0x00076] in C:\Users\user\OneDrive\Documents\Unity\Fitment\Fitment\Assets\Plugins\Easy Save 3\Scripts\Readers\ES3Reader.cs:278 
  at ES3Types.ES3DictionaryType.Read (ES3Reader reader) [0x0003e] in C:\Users\user\OneDrive\Documents\Unity\Fitment\Fitment\Assets\Plugins\Easy Save 3\Scripts\Types\Collection Types\ES3DictionaryType.cs:99 
  at ES3Reader.Read[T] (ES3Types.ES3Type type) [0x00064] in C:\Users\user\OneDrive\Documents\Unity\Fitment\Fitment\Assets\Plugins\Easy Save 3\Scripts\Readers\ES3Reader.cs:276 
  at ES3Reader.Read[T] () [0x00000] in C:\Users\user\OneDrive\Documents\Unity\Fitment\Fitment\Assets\Plugins\Easy Save 3\Scripts\Readers\ES3Reader.cs:126 
  at ES3Types.ES3Type_PMDataWrapper.ReadObject[T] (ES3Reader reader, System.Object obj) [0x0005d] in C:\Users\user\OneDrive\Documents\Unity\Fitment\Fitment\Assets\Plugins\Easy Save 3\PlayMaker\ES3PlayMaker.cs:1678 
  at ES3Types.ES3Type_PMDataWrapper.ReadObject[T] (ES3Reader reader) [0x00006] in C:\Users\user\OneDrive\Documents\Unity\Fitment\Fitment\Assets\Plugins\Easy Save 3\PlayMaker\ES3PlayMaker.cs:1699 
  at ES3Types.ES3ObjectType.Read[T] (ES3Reader reader) [0x00034] in C:\Users\user\OneDrive\Documents\Unity\Fitment\Fitment\Assets\Plugins\Easy Save 3\Scripts\Types\ES3ObjectType.cs:54 
  at ES3Reader.ReadObject[T] (ES3Types.ES3Type type) [0x00012] in C:\Users\user\OneDrive\Documents\Unity\Fitment\Fitment\Assets\Plugins\Easy Save 3\Scripts\Readers\ES3Reader.cs:249 
  at ES3Reader.Read[T] (ES3Types.ES3Type type) [0x00076] in C:\Users\user\OneDrive\Documents\Unity\Fitment\Fitment\Assets\Plugins\Easy Save 3\Scripts\Readers\ES3Reader.cs:278 
  at ES3Reader.Read[T] (System.String key) [0x0004b] in C:\Users\user\OneDrive\Documents\Unity\Fitment\Fitment\Assets\Plugins\Easy Save 3\Scripts\Readers\ES3Reader.cs:197 
  at ES3.Load[T] (System.String key, ES3Settings settings) [0x0003b] in C:\Users\user\OneDrive\Documents\Unity\Fitment\Fitment\Assets\Plugins\Easy Save 3\Scripts\ES3.cs:391 
  at ES3PlayMaker.LoadAll.Enter () [0x00000] in C:\Users\user\OneDrive\Documents\Unity\Fitment\Fitment\Assets\Plugins\Easy Save 3\PlayMaker\ES3PlayMaker.cs:432 
  at ES3PlayMaker.ActionBase.OnEnter () [0x00000] in C:\Users\user\OneDrive\Documents\Unity\Fitment\Fitment\Assets\Plugins\Easy Save 3\PlayMaker\ES3PlayMaker.cs:42 
0x00007ff62ecfa53c (Unity) StackWalker::GetCurrentCallstack
0x00007ff62ed006d9 (Unity) StackWalker::ShowCallstack
0x00007ff62f4f5a83 (Unity) GetStacktrace
0x00007ff6303f849a (Unity) DebugStringToFile
0x00007ff62ee8bd1d (Unity) DebugLogHandler_CUSTOM_Internal_Log
0x000001a9fd74b67b (Mono JIT Code) (wrapper managed-to-native) UnityEngine.DebugLogHandler:Internal_Log (UnityEngine.LogType,UnityEngine.LogOption,string,UnityEngine.Object)
0x000001a9fd74b5cb (Mono JIT Code) UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
0x000001a9fd7718e1 (Mono JIT Code) UnityEngine.Logger:Log (UnityEngine.LogType,object,UnityEngine.Object)
0x000001a9fd7717ca (Mono JIT Code) UnityEngine.Debug:LogError (object,UnityEngine.Object)
0x000001a9fd76ba63 (Mono JIT Code) [FsmLog.cs:175] HutongGames.PlayMaker.FsmLog:AddEntry (HutongGames.PlayMaker.FsmLogEntry,bool) 
0x000001a9fd771043 (Mono JIT Code) [FsmLog.cs:364] HutongGames.PlayMaker.FsmLog:LogAction (HutongGames.PlayMaker.FsmLogType,string,bool) 
0x000001a9fd770e13 (Mono JIT Code) [FsmStateAction.cs:303] HutongGames.PlayMaker.FsmStateAction:LogError (string) 
0x000001a9fd770d83 (Mono JIT Code) [ES3PlayMaker.cs:65] ES3PlayMaker.ActionBase:HandleError (string) 
0x000001a9fd76ff3b (Mono JIT Code) [ES3PlayMaker.cs:47] ES3PlayMaker.ActionBase:OnEnter () 
0x000001a9fd76ca40 (Mono JIT Code) [FsmState.cs:224] HutongGames.PlayMaker.FsmState:ActivateActions (int) 
0x000001a9fd76c73b (Mono JIT Code) [FsmState.cs:192] HutongGames.PlayMaker.FsmState:OnEnter () 
0x000001a9fd76c3bb (Mono JIT Code) [Fsm.cs:3058] HutongGames.PlayMaker.Fsm:EnterState (HutongGames.PlayMaker.FsmState) 
0x000001a9fd76c19b (Mono JIT Code) [Fsm.cs:2996] HutongGames.PlayMaker.Fsm:SwitchState (HutongGames.PlayMaker.FsmState) 
0x000001a9fd76bfb3 (Mono JIT Code) [Fsm.cs:2925] HutongGames.PlayMaker.Fsm:UpdateStateChanges () 
0x000001a9fd77dccb (Mono JIT Code) [Fsm.cs:2967] HutongGames.PlayMaker.Fsm:DoTransition (HutongGames.PlayMaker.FsmTransition,bool) 
0x000001a9fd76d903 (Mono JIT Code) [Fsm.cs:2490] HutongGames.PlayMaker.Fsm:ProcessEvent (HutongGames.PlayMaker.FsmEvent,HutongGames.PlayMaker.FsmEventData) 
0x000001aa0237a95b (Mono JIT Code) [Fsm.cs:2896] HutongGames.PlayMaker.Fsm:SendEventToFsmOnGameObject (UnityEngine.GameObject,string,HutongGames.PlayMaker.FsmEvent) 
0x000001a9fd76d17b (Mono JIT Code) [Fsm.cs:2632] HutongGames.PlayMaker.Fsm:Event (HutongGames.PlayMaker.FsmEventTarget,HutongGames.PlayMaker.FsmEvent) 
0x000001aa0237a0db (Mono JIT Code) [SendEvent.cs:43] HutongGames.PlayMaker.Actions.SendEvent:OnEnter () 
0x000001a9fd76ca40 (Mono JIT Code) [FsmState.cs:224] HutongGames.PlayMaker.FsmState:ActivateActions (int) 
0x000001a9fd76c73b (Mono JIT Code) [FsmState.cs:192] HutongGames.PlayMaker.FsmState:OnEnter () 
0x000001a9fd76c3bb (Mono JIT Code) [Fsm.cs:3058] HutongGames.PlayMaker.Fsm:EnterState (HutongGames.PlayMaker.FsmState) 
0x000001a9fd76c19b (Mono JIT Code) [Fsm.cs:2996] HutongGames.PlayMaker.Fsm:SwitchState (HutongGames.PlayMaker.FsmState) 
0x000001a9fd76bfb3 (Mono JIT Code) [Fsm.cs:2925] HutongGames.PlayMaker.Fsm:UpdateStateChanges () 
0x000001a9fd77dccb (Mono JIT Code) [Fsm.cs:2967] HutongGames.PlayMaker.Fsm:DoTransition (HutongGames.PlayMaker.FsmTransition,bool) 
0x000001a9fd76d903 (Mono JIT Code) [Fsm.cs:2490] HutongGames.PlayMaker.Fsm:ProcessEvent (HutongGames.PlayMaker.FsmEvent,HutongGames.PlayMaker.FsmEventData) 
0x000001a9fd76d083 (Mono JIT Code) [Fsm.cs:2619] HutongGames.PlayMaker.Fsm:Event (HutongGames.PlayMaker.FsmEventTarget,HutongGames.PlayMaker.FsmEvent) 
0x000001a9fd76e3bb (Mono JIT Code) [Fsm.cs:2707] HutongGames.PlayMaker.Fsm:Event (HutongGames.PlayMaker.FsmEvent) 
0x000001aa0237a04b (Mono JIT Code) [Fsm.cs:2688] HutongGames.PlayMaker.Fsm:Event (string) 
0x000001aa02379fb3 (Mono JIT Code) [PlayMakerFSM.cs:762] PlayMakerFSM:SendEvent (string) 
0x000001aa02379f59 (Mono JIT Code) UnityEngine.Events.InvokableCall`1<T1_REF>:Invoke (T1_REF)
0x000001aa02379ee3 (Mono JIT Code) UnityEngine.Events.CachedInvokableCall`1<T_REF>:Invoke (object[])
0x000001a9fd5e9a77 (Mono JIT Code) UnityEngine.Events.UnityEvent:Invoke ()
0x000001aa02379003 (Mono JIT Code) [Button.cs:71] UnityEngine.UI.Button:Press () 
0x000001aa02378f63 (Mono JIT Code) [Button.cs:115] UnityEngine.UI.Button:OnPointerClick (UnityEngine.EventSystems.PointerEventData) 
0x000001aa02378f09 (Mono JIT Code) [ExecuteEvents.cs:58] UnityEngine.EventSystems.ExecuteEvents:Execute (UnityEngine.EventSystems.IPointerClickHandler,UnityEngine.EventSystems.BaseEventData) 
0x000001aa0237388a (Mono JIT Code) [ExecuteEvents.cs:272] UnityEngine.EventSystems.ExecuteEvents:Execute<T_REF> (UnityEngine.GameObject,UnityEngine.EventSystems.BaseEventData,UnityEngine.EventSystems.ExecuteEvents/EventFunction`1<T_REF>) 
0x000001a9fd7c97db (Mono JIT Code) [InputSystemUIInputModule.cs:386] UnityEngine.InputSystem.UI.InputSystemUIInputModule:ProcessPointerButton (UnityEngine.InputSystem.UI.PointerModel/ButtonState&,UnityEngine.EventSystems.PointerEventData) 
0x000001a9fd7c4beb (Mono JIT Code) [InputSystemUIInputModule.cs:233] UnityEngine.InputSystem.UI.InputSystemUIInputModule:ProcessPointer (UnityEngine.InputSystem.UI.PointerModel&) 
0x000001a9fd7c3ba3 (Mono JIT Code) [InputSystemUIInputModule.cs:1556] UnityEngine.InputSystem.UI.InputSystemUIInputModule:Process () 
0x000001a9fd7aa97f (Mono JIT Code) [EventSystem.cs:504] UnityEngine.EventSystems.EventSystem:Update () 
0x000001aa0238f5e0 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007fffd701e640 (mono-2.0-bdwgc) [mini-runtime.c:2812] mono_jit_runtime_invoke 
0x00007fffd6fa2ad2 (mono-2.0-bdwgc) [object.c:2921] do_runtime_invoke 
0x00007fffd6fabb2f (mono-2.0-bdwgc) [object.c:2968] mono_runtime_invoke 
0x00007ff62ec45984 (Unity) scripting_method_invoke
0x00007ff62ec40ff1 (Unity) ScriptingInvocation::Invoke
0x00007ff62ec112c4 (Unity) MonoBehaviour::CallMethodIfAvailable
0x00007ff62ec113cc (Unity) MonoBehaviour::CallUpdateMethod
0x00007ff62e798b68 (Unity) BaseBehaviourManager::CommonUpdate<BehaviourManager>
0x00007ff62e79eb5a (Unity) BehaviourManager::Update
0x00007ff62e991fea (Unity) `InitPlayerLoopCallbacks'::`2'::UpdateScriptRunBehaviourUpdateRegistrator::Forward
0x00007ff62e97ad9c (Unity) ExecutePlayerLoop
0x00007ff62e97ae73 (Unity) ExecutePlayerLoop
0x00007ff62e97ff99 (Unity) PlayerLoop
0x00007ff62f0fb991 (Unity) PlayerLoopController::UpdateScene
0x00007ff62f0f9f51 (Unity) Application::TickTimer
0x00007ff62f4fb7b1 (Unity) MainMessageLoop
0x00007ff62f4ff3e6 (Unity) WinMain
0x00007ff63102d662 (Unity) __scrt_common_main_seh
0x00007ff884da7034 (KERNEL32) BaseThreadInitThunk
0x00007ff8850c2651 (ntdll) RtlUserThreadStart
Any ideas? Thanks for all of your help!
User avatar
Joel
Moodkie Staff
Posts: 4849
Joined: Wed Nov 07, 2012 10:32 pm

Re: Auto save with prefabs + playmaker, NullReferenceException

Post by Joel »

Hi there,

There's potentially an issue which will be resolved in our upcoming update which could cause this. If you private message me your invoice number I'll send it over.

All the best,
Joel
Joel @ Moodkie Interactive
Purchase Easy Save | Contact | Guides | Docs | Getting started
ieatcolors
Posts: 7
Joined: Fri Mar 05, 2021 9:55 am

Re: Auto save with prefabs + playmaker, NullReferenceException

Post by ieatcolors »

Thanks for the quick response. Just private messaged.
ieatcolors
Posts: 7
Joined: Fri Mar 05, 2021 9:55 am

Re: Auto save with prefabs + playmaker, NullReferenceException

Post by ieatcolors »

Hi Joel,

Thanks for sending that over. I have been trying to mess with it to see if this was something I was doing wrong from my end. I am still getting the same error.

Some other notes about my setup for the scene:
  • My prefabs are not in the scene and have both the ES3 Prefab Script and ES3 Auto Save Script; they are instantiated at runtime
  • I notice that the prefab count is on the ES3 Reference manager is incorrect and shows zero after stopping the game; it looses references
  • Clicking Refresh button on reference manager also causes the prefab count to go to zero
  • I have tried re-adding the references by right clicking prefab>>Easy Save 3>>Add References to manager, in which it then appears in the reference manager and the prefab count displays properly
  • I've tried stopping and starting the scene and also using ES3 Auto save and load playmaker actions manually, neither work and show same error
I have also imported the example file (https://moodkie.com/forum/viewtopic.php?f=18&t=1468) into the same project and this works fine. See attached for images of my scene.


Code: Select all

NullReferenceException: Object reference not set to an instance of an object
ES3Types.ES3Type_Fsm.ReadObject[T] (ES3Reader reader, System.Object obj) (at Assets/Plugins/Easy Save 3/PlayMaker/ES3PlayMaker.cs:1726)
ES3Types.ES3Type_Fsm.ReadObject[T] (ES3Reader reader) (at Assets/Plugins/Easy Save 3/PlayMaker/ES3PlayMaker.cs:1747)
ES3Types.ES3ObjectType.Read[T] (ES3Reader reader) (at Assets/Plugins/Easy Save 3/Scripts/Types/ES3ObjectType.cs:54)
ES3Reader.ReadObject[T] (ES3Types.ES3Type type) (at Assets/Plugins/Easy Save 3/Scripts/Readers/ES3Reader.cs:249)
ES3Reader.Read[T] (ES3Types.ES3Type type) (at Assets/Plugins/Easy Save 3/Scripts/Readers/ES3Reader.cs:278)
ES3Types.ES3UserType_PlayMakerFSM.ReadComponent[T] (ES3Reader reader, System.Object obj) (at Assets/Easy Save 3/Types/ES3UserType_PlayMakerFSM.cs:34)
ES3Types.ES3ComponentType.ReadUnityObject[T] (ES3Reader reader, System.Object obj) (at Assets/Plugins/Easy Save 3/Scripts/Types/ES3ComponentType.cs:36)
ES3Types.ES3UnityObjectType.ReadObject[T] (ES3Reader reader, System.Object obj) (at Assets/Plugins/Easy Save 3/Scripts/Types/ES3UnityObjectType.cs:65)
ES3Types.ES3ObjectType.ReadInto[T] (ES3Reader reader, System.Object obj) (at Assets/Plugins/Easy Save 3/Scripts/Types/ES3ObjectType.cs:77)
ES3Types.ES3Type_GameObject.ReadComponents (ES3Reader reader, UnityEngine.GameObject go) (at Assets/Plugins/Easy Save 3/Scripts/Types/Unity Types/ES3Type_GameObject.cs:214)
ES3Types.ES3Type_GameObject.ReadObject[T] (ES3Reader reader, System.Object obj) (at Assets/Plugins/Easy Save 3/Scripts/Types/Unity Types/ES3Type_GameObject.cs:165)
ES3Types.ES3ObjectType.ReadInto[T] (ES3Reader reader, System.Object obj) (at Assets/Plugins/Easy Save 3/Scripts/Types/ES3ObjectType.cs:77)
ES3Types.ES3Type_GameObject.ReadObject[T] (ES3Reader reader) (at Assets/Plugins/Easy Save 3/Scripts/Types/Unity Types/ES3Type_GameObject.cs:129)
ES3Types.ES3ObjectType.Read[T] (ES3Reader reader) (at Assets/Plugins/Easy Save 3/Scripts/Types/ES3ObjectType.cs:54)
ES3Reader.ReadObject[T] (ES3Types.ES3Type type) (at Assets/Plugins/Easy Save 3/Scripts/Readers/ES3Reader.cs:249)
ES3Reader.Read[T] (ES3Types.ES3Type type) (at Assets/Plugins/Easy Save 3/Scripts/Readers/ES3Reader.cs:278)
ES3Types.ES3CollectionType.ReadICollection[T] (ES3Reader reader, System.Collections.Generic.ICollection`1[T] collection, ES3Types.ES3Type elementType) (at Assets/Plugins/Easy Save 3/Scripts/Types/Collection Types/ES3CollectionType.cs:52)
ES3Types.ES3ArrayType.Read (ES3Reader reader) (at Assets/Plugins/Easy Save 3/Scripts/Types/Collection Types/ES3ArrayType.cs:36)
ES3Reader.Read[T] (ES3Types.ES3Type type) (at Assets/Plugins/Easy Save 3/Scripts/Readers/ES3Reader.cs:274)
ES3.Deserialize (ES3Types.ES3Type type, System.Byte[] bytes, ES3Settings settings) (at Assets/Plugins/Easy Save 3/Scripts/ES3.cs:799)
ES3.Deserialize[T] (System.Byte[] bytes, ES3Settings settings) (at Assets/Plugins/Easy Save 3/Scripts/ES3.cs:788)
ES3File.Load[T] (System.String key, T defaultValue) (at Assets/Plugins/Easy Save 3/Scripts/ES3File.cs:246)
ES3.Load[T] (System.String key, T defaultValue, ES3Settings settings) (at Assets/Plugins/Easy Save 3/Scripts/ES3.cs:433)
ES3AutoSaveMgr.Load () (at Assets/Plugins/Easy Save 3/Scripts/Auto Save/ES3AutoSaveMgr.cs:85)
ES3PlayMaker.ES3AutoSaveLoad.OnEnter () (at Assets/Plugins/Easy Save 3/PlayMaker/ES3PlayMaker.cs:1515)
HutongGames.PlayMaker.FsmState.ActivateActions (System.Int32 startIndex) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/FsmState.cs:222)
HutongGames.PlayMaker.FsmState.OnEnter () (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/FsmState.cs:192)
HutongGames.PlayMaker.Fsm.EnterState (HutongGames.PlayMaker.FsmState state) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:3072)
HutongGames.PlayMaker.Fsm.SwitchState (HutongGames.PlayMaker.FsmState toState) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:3011)
HutongGames.PlayMaker.Fsm.UpdateStateChanges () (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2944)
HutongGames.PlayMaker.Fsm.DoTransition (HutongGames.PlayMaker.FsmTransition transition, System.Boolean isGlobal) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2981)
HutongGames.PlayMaker.Fsm.ProcessEvent (HutongGames.PlayMaker.FsmEvent fsmEvent, HutongGames.PlayMaker.FsmEventData eventData) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2507)
HutongGames.PlayMaker.Fsm.SendEventToFsmOnGameObject (UnityEngine.GameObject gameObject, System.String fsmName, HutongGames.PlayMaker.FsmEvent fsmEvent) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2912)
HutongGames.PlayMaker.Fsm.Event (HutongGames.PlayMaker.FsmEventTarget eventTarget, HutongGames.PlayMaker.FsmEvent fsmEvent) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2648)
HutongGames.PlayMaker.Actions.SendEvent.OnEnter () (at Assets/PlayMaker/Actions/StateMachine/SendEvent.cs:42)
HutongGames.PlayMaker.FsmState.ActivateActions (System.Int32 startIndex) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/FsmState.cs:222)
HutongGames.PlayMaker.FsmState.OnEnter () (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/FsmState.cs:192)
HutongGames.PlayMaker.Fsm.EnterState (HutongGames.PlayMaker.FsmState state) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:3072)
HutongGames.PlayMaker.Fsm.SwitchState (HutongGames.PlayMaker.FsmState toState) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:3011)
HutongGames.PlayMaker.Fsm.UpdateStateChanges () (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2944)
HutongGames.PlayMaker.Fsm.DoTransition (HutongGames.PlayMaker.FsmTransition transition, System.Boolean isGlobal) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2981)
HutongGames.PlayMaker.Fsm.ProcessEvent (HutongGames.PlayMaker.FsmEvent fsmEvent, HutongGames.PlayMaker.FsmEventData eventData) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2507)
HutongGames.PlayMaker.Fsm.Event (HutongGames.PlayMaker.FsmEventTarget eventTarget, HutongGames.PlayMaker.FsmEvent fsmEvent) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2635)
HutongGames.PlayMaker.Fsm.Event (HutongGames.PlayMaker.FsmEvent fsmEvent) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2715)
HutongGames.PlayMaker.Fsm.Event (System.String fsmEventName) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2703)
PlayMakerFSM.SendEvent (System.String eventName) (at C:/Projects/Playmaker_1.9.1/Projects/Playmaker.source.unity/Assets/PlayMaker/PlayMakerFSM.cs:765)
UnityEngine.Events.InvokableCall`1[T1].Invoke (T1 args0) (at <adfa4b62400849189388df71c9e26e89>:0)
UnityEngine.Events.CachedInvokableCall`1[T].Invoke (System.Object[] args) (at <adfa4b62400849189388df71c9e26e89>:0)
UnityEngine.Events.UnityEvent.Invoke () (at <adfa4b62400849189388df71c9e26e89>:0)
UnityEngine.UI.Button.Press () (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/Button.cs:70)
UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/Button.cs:114)
UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/ExecuteEvents.cs:57)
UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/ExecuteEvents.cs:272)
UnityEngine.EventSystems.EventSystem:Update() (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/EventSystem.cs:501)
Attachments
prefab references gone.png
prefab references gone.png (394.62 KiB) Viewed 6361 times
instantiatedprefab at runtime.png
instantiatedprefab at runtime.png (325.22 KiB) Viewed 6361 times
What ES3 Manager looks like
What ES3 Manager looks like
es3.png (86.56 KiB) Viewed 6361 times
User avatar
Joel
Moodkie Staff
Posts: 4849
Joined: Wed Nov 07, 2012 10:32 pm

Re: Auto save with prefabs + playmaker, NullReferenceException

Post by Joel »

Hi there,

Is there a reference to the prefab you're instantiating in the scene prior to runtime, or do you load this dynamically using something like Resources?

Also is 'Add all prefabs to manager' enabled in Tools > Easy Save 3 > Settings? This is enabled by default.

All the best,
Joel
Joel @ Moodkie Interactive
Purchase Easy Save | Contact | Guides | Docs | Getting started
ieatcolors
Posts: 7
Joined: Fri Mar 05, 2021 9:55 am

Re: Auto save with prefabs + playmaker, NullReferenceException

Post by ieatcolors »

Hello, I am new to C#, so I am not sure what you mean by dynamically loading. Right now to create my prefabs at run time, I use playmaker send message to run the below instantiate script. I send another playmaker FSM to assign the scriptable object in the C# code. The script takes a prefab that is attached to a scriptable object. The prefab is instantiated at the mouse position for a grid building system.

My 'Add all prefabs to manager' was not enabled, so I just did that. The reference manager now shows the number of prefabs, but I do still get the same error.


Instantiated:

Code: Select all

    public static PlacedObject Create(Vector3 worldPosition, Vector2Int origin, FurnitureScriptableObject.Dir dir, FurnitureScriptableObject placedFurnitureSO)
    {
        Transform placedFurnitureTransform = Instantiate(placedFurnitureSO.prefab,
            worldPosition,
            Quaternion.Euler(0, placedFurnitureSO.GetRotationAngle(dir), 0)
            );

        PlacedObject placedObject = placedFurnitureTransform.GetComponent<PlacedObject>();
        placedObject.Setup(placedFurnitureSO, origin, dir);

        return placedObject;

    }
Attachments
prefab.png
prefab.png (128.37 KiB) Viewed 6348 times
User avatar
Joel
Moodkie Staff
Posts: 4849
Joined: Wed Nov 07, 2012 10:32 pm

Re: Auto save with prefabs + playmaker, NullReferenceException

Post by Joel »

Hi there,

Please could you replicate this in a new, empty project containing only PlayMaker and Easy Save and a simple scene, and private message it to me with instructions.

All the best,
Joel
Joel @ Moodkie Interactive
Purchase Easy Save | Contact | Guides | Docs | Getting started
ieatcolors
Posts: 7
Joined: Fri Mar 05, 2021 9:55 am

Re: Auto save with prefabs + playmaker, NullReferenceException

Post by ieatcolors »

Hi Joel,

Thanks for following up. I created a new clean project per your request, and found that it was working! After some digging around, I found that the main difference between the new project and the old project was that the old project has an ES3type I made long ago but wasn't using. Deleting this and reimporting easy save 3 fixed the issue! Thanks for your help!
Post Reply