Hi, I am currently working on the Progression section Character Stats. I cloned the whole RPG repository and directly checked out the commit just before this section starts that is the commit for Pickup Respwaning. But I am getting an error related to the saving system -
SerializationException: The object with ID 120 was referenced in a fixup but does not exist.
and I am unable to use the saving system.
Can you please suggest how to fix this?
The error is likely not to do with the Saving System. It’s quite possible that an item is referenced in the scene that was not included in the commit (some packages we didn’t have a license to redistribute).
I just rolled back a copy of the course project to that commit, however, and was able to load both scenes without any errors.
Try resetting the project. To do this, close Unity and navigate to the project folder. Delete the folder marked Library. This will rebuild the library and hopefully resolve the issue.
It occurs to me, if this error is happening at save time, it could be a conflict between your project and the course project, if they both have a publisher of Default Company and a project name of RPG Project.
To rectify this, one or the other needs a new project name or publisher.
Resetting the project didnt help.
Here’s the full error -
SerializationException: The object with ID 120 was referenced in a fixup but does not exist.
System.Runtime.Serialization.ObjectManager.GetCompletionInfo (System.Runtime.Serialization.FixupHolder fixup, System.Runtime.Serialization.ObjectHolder& holder, System.Object& member, System.Boolean bThrowIfMissing) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Runtime.Serialization.ObjectManager.CompleteObject (System.Runtime.Serialization.ObjectHolder holder, System.Boolean bObjectFullyComplete) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Runtime.Serialization.ObjectManager.DoFixups () (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize (System.Runtime.Remoting.Messaging.HeaderHandler handler, System.Runtime.Serialization.Formatters.Binary.__BinaryParser serParser, System.Boolean fCheck, System.Boolean isCrossAppDomain, System.Runtime.Remoting.Messaging.IMethodCallMessage methodCallMessage) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler, System.Boolean fCheck, System.Boolean isCrossAppDomain, System.Runtime.Remoting.Messaging.IMethodCallMessage methodCallMessage) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler, System.Boolean fCheck, System.Runtime.Remoting.Messaging.IMethodCallMessage methodCallMessage) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler, System.Boolean fCheck) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (System.IO.Stream serializationStream) (at <695d1cc93cca45069c528c15c9fdd749>:0)
RPG.Saving.SavingSystem.LoadFile (System.String saveFile) (at Assets/Scripts/Saving/SavingSystem.cs:50)
RPG.Saving.SavingSystem+d__0.MoveNext () (at Assets/Scripts/Saving/SavingSystem.cs:16)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at :0)
Ok, this looks like it’s trying to deserialize a save that was likely saved with your other project (see above note about project/directory name).
The Delete() method in SavingWrapper should be tied to the delete key (look in SavingWrapper.cs in Update()). Start the game and then once things have settled, press the delete key to delete the current save file.
Then exit the game and restart it, and the saving system should work.
Deleting the save file worked! Thank you.
This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.