Hi, thanks for your time this error message alone is a big one. the game has been on the backburner with everything going on I have time to work on it. when I first made this save system it worked just fine but after I move to the latest vers of unity I get this error on save. for the mod sorry about reposting I didn’t know it still posted when I got a bad get way thanks mods.
Error"
SerializationException: Type ‘UnityEngine.ScriptableObject’ in Assembly ‘UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null’ is not marked as serializable.
System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers (System.RuntimeType type) (at :0)
System.Runtime.Serialization.FormatterServices+<>c__DisplayClass9_0.b__0 (System.Runtime.Serialization.MemberHolder _) (at :0)
System.Collections.Concurrent.ConcurrentDictionary2[TKey,TValue].GetOrAdd (TKey key, System.Func
2[T,TResult] valueFactory) (at :0)
System.Runtime.Serialization.FormatterServices.GetSerializableMembers (System.Type type, System.Runtime.Serialization.StreamingContext context) (at :0)
System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo () (at :0)
System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize (System.Type objectType, System.Runtime.Serialization.ISurrogateSelector surrogateSelector, System.Runtime.Serialization.StreamingContext context, System.Runtime.Serialization.Formatters.Binary.SerObjectInfoInit serObjectInfoInit, System.Runtime.Serialization.IFormatterConverter converter, System.Runtime.Serialization.SerializationBinder binder) (at :0)
System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize (System.Type objectType, System.Runtime.Serialization.ISurrogateSelector surrogateSelector, System.Runtime.Serialization.StreamingContext context, System.Runtime.Serialization.Formatters.Binary.SerObjectInfoInit serObjectInfoInit, System.Runtime.Serialization.IFormatterConverter converter, System.Runtime.Serialization.SerializationBinder binder) (at :0)
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteArray (System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo objectInfo, System.Runtime.Serialization.Formatters.Binary.NameInfo memberNameInfo, System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo memberObjectInfo) (at :0)
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write (System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo objectInfo, System.Runtime.Serialization.Formatters.Binary.NameInfo memberNameInfo, System.Runtime.Serialization.Formatters.Binary.NameInfo typeNameInfo) (at :0)
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize (System.Object graph, System.Runtime.Remoting.Messaging.Header inHeaders, System.Runtime.Serialization.Formatters.Binary.__BinaryWriter serWriter, System.Boolean fCheck) (at :0)
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize (System.IO.Stream serializationStream, System.Object graph, System.Runtime.Remoting.Messaging.Header headers, System.Boolean fCheck) (at :0)
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize (System.IO.Stream serializationStream, System.Object graph, System.Runtime.Remoting.Messaging.Header headers) (at :0)
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize (System.IO.Stream serializationStream, System.Object graph) (at :0)
SaveSystem.Save () (at Assets/arena/Code/All_Mangers/SaveSystem.cs:146)
GameControllerEditor.OnInspectorGUI () (at Assets/arena/Code/Editor/GameControllerEditor.cs:22)
UnityEditor.UIElements.InspectorElement+<>c__DisplayClass58_0.b__0 () (at <143cf05d15c44625b70169dc5194636e>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)
using UnityEngine;
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Collections.Generic;
public void Save()
{
hasSave = false;
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Create(Application.persistentDataPath + "/playerInfo.data");
PlayerData data = new PlayerData();
data.playerLevel = playerLevel;
data.xp = xp;
data.xpToNextLevel = xpToNextLevel;
data.skillPoints = skillPoints;
hasGame = true;
data.hasGame = hasGame;
data.gold = gold;
data.drawSpeed = drawSpeed;
data.drawSpeedNumber = drawSpeedN;
data.AddHealth = AddHealth;
data.AddHealthN = AddHealthN;
data.drawSpeedDamage = drawSpeedDamage;
data.numberOfEnemys = numberOfEnemys;
data.mainWeaponID = mainWeaponID;
data.sideWeaponID = sideWeaponID;
data.helmetID = helmetID;
data.chestID = chestID;
data.arrowsID = arrowsID;
data.bootsID = bootsID;
data.gaunletsID = gaunletsID;
data.hasItem = hasItem;
data.arena = arena;
data.death = death;
data.main = main;
data.trainig = trainig;
data.Barracks = Barracks;
data.playerHeath = playerHeath;
data.addStamina = addStamina;
data.playerName = playerName;
data.items = items;
data.shopList = shopList;
// this the error when writing to file
bf.Serialize(file, data);
file.Close();
hasSave = true;
Debug.Log("saved player data");
}