Easy save is not easy for me!
Easy save is not easy for me!
Hi. I'm an Artist and working on my indie Adventure game. When I saw your asset I thought it would be easy to use it, but now I feel it's not EASY at all! So I have some questions:
1- What's the difference between Easy Save 2 and 3? Which version I should use?
2- I couldn't find any beginner video tutorial for your asset, is there any?
3- I tried to use Auto Save from EasySave3, but I couldn't find any way to just save some specific variables! Is there any way for doing it? Or if it's just save everything, it doesn't make the save file too big?
4- I tried to use Auto save from EasySave2, but when I was trying to select which variables to save, the unity became too much slow and laggy!
5- I'm trying to upload the save file to Google play services with the help of "Easy Mobile" asset (I should mention that wasn't easy, too!) can you show me (as a noob) to how to do it?
Thanks in advance
1- What's the difference between Easy Save 2 and 3? Which version I should use?
2- I couldn't find any beginner video tutorial for your asset, is there any?
3- I tried to use Auto Save from EasySave3, but I couldn't find any way to just save some specific variables! Is there any way for doing it? Or if it's just save everything, it doesn't make the save file too big?
4- I tried to use Auto save from EasySave2, but when I was trying to select which variables to save, the unity became too much slow and laggy!
5- I'm trying to upload the save file to Google play services with the help of "Easy Mobile" asset (I should mention that wasn't easy, too!) can you show me (as a noob) to how to do it?
Thanks in advance
Re: Easy save is not easy for me!
Hi there,
Sorry to hear you're having trouble with Easy Save.
You should use Easy Save 3, as Easy Save 2 is included for backwards compatibility. Easy Save 3 is much simpler to use, and has more functionality.
We do not currently have tutorial videos, but you can find guides here: https://docs.moodkie.com/product/easy-s ... s3-guides/
If you wish to change what variables are saved when you use Auto Save, you can go to Window > Easy Save 3 > Types, search for your type, and then select which variables you want to be saved for that type.
Unfortunately as I have no experience with "Easy Mobile" (this asset is not affiliated with us), I can't provide any specific guidance. However, you can use ES3.LoadRawString to load save data as a string, which you should presumably be able to save to Google Play. You can then use ES3.SaveRaw to save a string downloaded from Google Play to a local file.
There's also general information in integrating with other storage APIs here, if you do not want to store the data locally: https://docs.moodkie.com/easy-save-3/es ... rage-apis/.
All the best,
Joel
Sorry to hear you're having trouble with Easy Save.
You should use Easy Save 3, as Easy Save 2 is included for backwards compatibility. Easy Save 3 is much simpler to use, and has more functionality.
We do not currently have tutorial videos, but you can find guides here: https://docs.moodkie.com/product/easy-s ... s3-guides/
If you wish to change what variables are saved when you use Auto Save, you can go to Window > Easy Save 3 > Types, search for your type, and then select which variables you want to be saved for that type.
Unfortunately as I have no experience with "Easy Mobile" (this asset is not affiliated with us), I can't provide any specific guidance. However, you can use ES3.LoadRawString to load save data as a string, which you should presumably be able to save to Google Play. You can then use ES3.SaveRaw to save a string downloaded from Google Play to a local file.
There's also general information in integrating with other storage APIs here, if you do not want to store the data locally: https://docs.moodkie.com/easy-save-3/es ... rage-apis/.
All the best,
Joel
Re: Easy save is not easy for me!
Thank you.
So Can I delete EasySave2 folders from Assets and plugins? (Also there is no EasySave3 folder in Assets folder, but I saw in a topic that you said there is an EasySave3 folder in Assets)You should use Easy Save 3, as Easy Save 2 is included for backwards compatibility. Easy Save 3 is much simpler to use, and has more functionality.
Re: Easy save is not easy for me!
Why every time that I want to check or uncheck a variable in types setting, the unity tries to compile the codes?
It makes the process so laggy and takes a long time.
It makes the process so laggy and takes a long time.
Re: Easy save is not easy for me!
Another problem:
When I set a password for save file I get this error on save:
And error on Load:
When I set a password for save file I get this error on save:
Code: Select all
CryptographicException: Invalid input block size.
Mono.Security.Cryptography.SymmetricTransform.FinalDecrypt (System.Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount)
Mono.Security.Cryptography.SymmetricTransform.TransformFinalBlock (System.Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount)
System.Security.Cryptography.CryptoStream.Read (System.Byte[] buffer, Int32 offset, Int32 count) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Security.Cryptography/CryptoStream.cs:205)
ES3Internal.EncryptionAlgorithm.CopyStream (System.IO.Stream input, System.IO.Stream output, Int32 bufferSize) (at Assets/Plugins/Easy Save 3/Scripts/ES3Crypto.cs:38)
ES3Internal.AESEncryptionAlgorithm.Decrypt (System.IO.Stream input, System.IO.Stream output, System.String password, Int32 bufferSize) (at Assets/Plugins/Easy Save 3/Scripts/ES3Crypto.cs:139)
ES3Internal.UnbufferedCryptoStream..ctor (System.IO.Stream stream, Boolean isReadStream, System.String password, Int32 bufferSize, ES3Internal.EncryptionAlgorithm alg) (at Assets/Plugins/Easy Save 3/Scripts/ES3Crypto.cs:165)
(wrapper remoting-invoke-with-check) ES3Internal.UnbufferedCryptoStream:.ctor (System.IO.Stream,bool,string,int,ES3Internal.EncryptionAlgorithm)
ES3Internal.ES3Stream.CreateStream (.ES3Settings settings, ES3FileMode fileMode) (at Assets/Plugins/Easy Save 3/Scripts/Streams/ES3Stream.cs:62)
ES3Reader.Create (.ES3Settings settings) (at Assets/Plugins/Easy Save 3/Scripts/Readers/ES3Reader.cs:309)
ES3Writer.Merge () (at Assets/Plugins/Easy Save 3/Scripts/Writers/ES3Writer.cs:358)
ES3Writer.Save (Boolean overwriteKeys) (at Assets/Plugins/Easy Save 3/Scripts/Writers/ES3Writer.cs:388)
ES3Writer.Save () (at Assets/Plugins/Easy Save 3/Scripts/Writers/ES3Writer.cs:380)
ES3.Save[GameObject[]] (System.String key, System.Object value, .ES3Settings settings) (at Assets/Plugins/Easy Save 3/Scripts/ES3.cs:41)
ES3AutoSaveMgr.Save () (at Assets/Plugins/Easy Save 3/Scripts/Auto Save/ES3AutoSaveMgr.cs:31)
SaveLoadGame.SaveTheGame () (at Assets/Scripts/Common/SaveLoadGame.cs:14)
UnityEngine.Events.InvokableCall.Invoke () (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:166)
UnityEngine.Events.UnityEvent.Invoke () (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_0.cs:58)
UnityEngine.UI.Button.Press () (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:36)
UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:45)
UnityEngine.EventSystems.ExecuteEvents.Execute (IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:50)
UnityEngine.EventSystems.ExecuteEvents.Execute[IPointerClickHandler] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:261)
UnityEngine.EventSystems.EventSystem:Update()
Code: Select all
CryptographicException: Invalid input block size.
Mono.Security.Cryptography.SymmetricTransform.FinalDecrypt (System.Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount)
Mono.Security.Cryptography.SymmetricTransform.TransformFinalBlock (System.Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount)
System.Security.Cryptography.CryptoStream.Read (System.Byte[] buffer, Int32 offset, Int32 count) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Security.Cryptography/CryptoStream.cs:205)
ES3Internal.EncryptionAlgorithm.CopyStream (System.IO.Stream input, System.IO.Stream output, Int32 bufferSize) (at Assets/Plugins/Easy Save 3/Scripts/ES3Crypto.cs:38)
ES3Internal.AESEncryptionAlgorithm.Decrypt (System.IO.Stream input, System.IO.Stream output, System.String password, Int32 bufferSize) (at Assets/Plugins/Easy Save 3/Scripts/ES3Crypto.cs:139)
ES3Internal.UnbufferedCryptoStream..ctor (System.IO.Stream stream, Boolean isReadStream, System.String password, Int32 bufferSize, ES3Internal.EncryptionAlgorithm alg) (at Assets/Plugins/Easy Save 3/Scripts/ES3Crypto.cs:165)
(wrapper remoting-invoke-with-check) ES3Internal.UnbufferedCryptoStream:.ctor (System.IO.Stream,bool,string,int,ES3Internal.EncryptionAlgorithm)
ES3Internal.ES3Stream.CreateStream (.ES3Settings settings, ES3FileMode fileMode) (at Assets/Plugins/Easy Save 3/Scripts/Streams/ES3Stream.cs:62)
ES3Reader.Create (.ES3Settings settings) (at Assets/Plugins/Easy Save 3/Scripts/Readers/ES3Reader.cs:309)
ES3Writer.Merge () (at Assets/Plugins/Easy Save 3/Scripts/Writers/ES3Writer.cs:358)
ES3Writer.Save (Boolean overwriteKeys) (at Assets/Plugins/Easy Save 3/Scripts/Writers/ES3Writer.cs:388)
ES3Writer.Save () (at Assets/Plugins/Easy Save 3/Scripts/Writers/ES3Writer.cs:380)
ES3.Save[GameObject[]] (System.String key, System.Object value, .ES3Settings settings) (at Assets/Plugins/Easy Save 3/Scripts/ES3.cs:41)
ES3AutoSaveMgr.Save () (at Assets/Plugins/Easy Save 3/Scripts/Auto Save/ES3AutoSaveMgr.cs:31)
SaveLoadGame.SaveTheGame () (at Assets/Scripts/Common/SaveLoadGame.cs:14)
UnityEngine.Events.InvokableCall.Invoke () (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:166)
UnityEngine.Events.UnityEvent.Invoke () (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_0.cs:58)
UnityEngine.UI.Button.Press () (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:36)
UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:45)
UnityEngine.EventSystems.ExecuteEvents.Execute (IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:50)
UnityEngine.EventSystems.ExecuteEvents.Execute[IPointerClickHandler] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:261)
UnityEngine.EventSystems.EventSystem:Update()
Re: Easy save is not easy for me!
Hi there,
You can indeed delete the Easy Save 2 folder from Assets and Plugins.
The /Assets/Easy Save 3/ folder is created if you create an ES3Type from the Types pane.
The Types panel recompiles each time you select a variable as it is modifying a Type file. However, if this is causing slowdown for people then I will change it so that you have to press a button to make the changes persist.
Regarding the error you are getting, this usually occurs because save data exists which is not encrypted (when it's expecting encrypted data) or uses a different password. Deleting your old save data should rectify this. You can do this by going to Window > Easy Save 3 > Tools > Open Persistent Data Path, and deleting the save data from there.
All the best,
Joel
You can indeed delete the Easy Save 2 folder from Assets and Plugins.
The /Assets/Easy Save 3/ folder is created if you create an ES3Type from the Types pane.
The Types panel recompiles each time you select a variable as it is modifying a Type file. However, if this is causing slowdown for people then I will change it so that you have to press a button to make the changes persist.
Regarding the error you are getting, this usually occurs because save data exists which is not encrypted (when it's expecting encrypted data) or uses a different password. Deleting your old save data should rectify this. You can do this by going to Window > Easy Save 3 > Tools > Open Persistent Data Path, and deleting the save data from there.
All the best,
Joel
Re: Easy save is not easy for me!
Thanks. Having that button or an option to save automatically or not, would be great.
Now I should wait for an update to have this ability?
Now I should wait for an update to have this ability?
Re: Easy save is not easy for me!
Hi there,
I've just created an update which saves your changes in the Types pane when it loses focus or is closed, which will stop it from recompiling each time you press a button.
If you PM me your invoice number, I'll send you over the update.
All the best,
Joel
I've just created an update which saves your changes in the Types pane when it loses focus or is closed, which will stop it from recompiling each time you press a button.
If you PM me your invoice number, I'll send you over the update.
All the best,
Joel
Re: Easy save is not easy for me!
Thank you. I just sent you the invoice number.
Re: Easy save is not easy for me!
I got this error after adding Auto save component to my Inventory object:
Does it mean that I can't use Sprites as variables?!
Does it mean that I can't use Sprites as variables?!
Code: Select all
ArgumentException: Only types of UnityEngine.Object can be written with this method, but argument given is type of UnityEngine.Sprite