IOS Crashes on Auto Save Quit

Discussion and help for Easy Save 3
Post Reply
makeplayhappy
Posts: 2
Joined: Wed Feb 26, 2020 12:09 pm

IOS Crashes on Auto Save Quit

Post by makeplayhappy »

Hi,
I'm using Unity 2019.3.2 with EasySave 3.1.4f1

I've setup my scene to use the ES3AutoSave script on 3 gameobjects in the scene. I've also setup a few ES3 types

Code: Select all

ES3Type_BoxCollider.cs
ES3Type_CapsuleCollider.cs
ES3Type_CarLeaderboardManager.cs
ES3Type_CinemachineImpulseSource.cs
ES3Type_GameObject.cs
ES3Type_LimitVelocityOverLifetimeModule.cs
ES3Type_MeshFilter.cs
ES3Type_MeshRenderer.cs
ES3Type_SphereCollider.cs
ES3Type_StudioEventEmitter.cs
ES3Type_Transform.cs
ES3Type_WCCarMPH.cs
ES3Type_colliderDisableOnY.cs


As I don't need a lot of the variables saved when I set up the types I selected them to be blank (nothing ticked) so they are set to just skip all the elements, here's an example ;

Code: Select all

using System;
using UnityEngine;

namespace ES3Types
{
	[UnityEngine.Scripting.Preserve]
	[ES3PropertiesAttribute()]
	public class ES3Type_MeshFilter : ES3ComponentType
	{
		public static ES3Type Instance = null;

		public ES3Type_MeshFilter() : base(typeof(UnityEngine.MeshFilter))
		{
			Instance = this;
		}

		protected override void WriteComponent(object obj, ES3Writer writer)
		{
			var instance = (UnityEngine.MeshFilter)obj;
			
		}

		protected override void ReadComponent<T>(ES3Reader reader, object obj)
		{
			var instance = (UnityEngine.MeshFilter)obj;
			foreach(string propertyName in reader.Properties)
			{
				switch(propertyName)
				{
					
					default:
						reader.Skip();
						break;
				}
			}
		}
	}

	public class ES3Type_MeshFilterArray : ES3ArrayType
	{
		public static ES3Type Instance;

		public ES3Type_MeshFilterArray() : base(typeof(UnityEngine.MeshFilter[]), ES3Type_MeshFilter.Instance)
		{
			Instance = this;
		}
	}
}


Everything works fine in the editor, saving & loading on quitting and starting.

I build the project for IOS and test on an iphone 6.
Whenever I exit / quit the application I get this error

Code: Select all

NullReferenceException: Object reference not set to an instance of an object.
  at ES3Writer.Write (System.Object value, ES3Types.ES3Type type, ES3+ReferenceMode memberReferenceMode) [0x00000] in <00000000000000000000000000000000>:0 
  at ES3Types.ES3Type_MeshRenderer.WriteComponent (System.Object obj, ES3Writer writer) [0x00000] in <00000000000000000000000000000000>:0 
  at ES3Types.ES3ComponentType.WriteUnityObject (System.Object obj, ES3Writer writer) [0x00000] in <00000000000000000000000000000000>:0 
  at ES3Types.ES3Type.WriteUsingDerivedType (System.Object obj, ES3Writer writer) [0x00000] in <00000000000000000000000000000000>:0 
  at ES3Types.ES3UnityObjectType.WriteObject (System.Object obj, ES3Writer writer, ES3+ReferenceMode mode) [0x00000] in <00000000000000000000000000000000>:0 
  at ES3Writer.Write (System.Object value, ES3Types.ES3Type type, ES3+ReferenceMode memberReferenceMode) [0x00000] in <00000000000000000000000000000000>:0 
  at ES3Types.ES3ListType.Write (System.Object obj, ES3Writer writer, ES3+ReferenceMode memberReferenceMode) [0x00000] in <00000000000000000000000000000000>:0 
  at ES3Types.ES3Type_GameObject.WriteObject (System.Object obj, ES3Writer writer, ES3+ReferenceMode mode) [0x00000] in <00000000000000000000000000000000>:0 
  at ES3Writer.Write (System.Object value, ES3Types.ES3Type type, ES3+ReferenceMode memberReferenceMode) [0x00000] in <00000000000000000000000000000000>:0 
  at ES3Types.ES3ArrayType.Write (System.Object obj, ES3Writer writer, ES3+ReferenceMode memberReferenceMode) [0x00000] in <00000000000000000000000000000000>:0 
  at ES3Writer.Write[T] (System.String key, System.Object value) [0x00000] in <00000000000000000000000000000000>:0 
  at ES3.Save[T] (System.String key, System.Object value, ES3Settings settings) [0x00000] in <00000000000000000000000000000000>:0 
UnityEngine.UnhandledExceptionHandler:PrintException(String, Exception)
UnityEngine.UnhandledExceptionHandler:HandleUnhandledException(Object, UnhandledExceptionEventArgs)
System.UnhandledExceptionEventHandler:Invoke(Object, UnhandledExceptionEventArgs)
Any thoughts on how I can get this working?

thanks in advance
makeplayhappy
Posts: 2
Joined: Wed Feb 26, 2020 12:09 pm

Re: IOS Crashes on Auto Save Quit

Post by makeplayhappy »

Ah - it's user error!
I had managed stripping levels set to high in the player settings.
Lowering to Low fixed the issue
User avatar
Joel
Moodkie Staff
Posts: 4826
Joined: Wed Nov 07, 2012 10:32 pm

Re: IOS Crashes on Auto Save Quit

Post by Joel »

Glad you managed to find the solution :)

All the best,
Joel
Joel @ Moodkie Interactive
Purchase Easy Save | Contact | Guides | Docs | Getting started
Post Reply