playMaker

Author Topic: Array maker, easy save 3 and Array list problems  (Read 4274 times)

treborjones

  • Playmaker Newbie
  • *
  • Posts: 24
Array maker, easy save 3 and Array list problems
« on: January 30, 2019, 06:41:05 PM »
I've just started trying to use Array maker with Easy Save 3 and have managed
simple saving and loading of a float variable successfully, hurrah! :-)

I'm now trying to save an array list of gameobjects but I'm getting an
error and not sure if I'm going about it in the right way. (error at the bottom of this post)

I have a Playmaker Array list proxy object that I use to save the players
deck of units, these units are saved in the array are prefabs.

Using Array Maker functionality, I can swap two cards 'Prefabs' between an
AvailableCards deck to a PlayerDeck Array. I was hoping to use Easy Save
to save and load the state of those array lists - so the players hand is
reloaded on return to that screen.

I've tried a simple setup of Array List Save/Load but get the error below.

Is there a step I'm missing? Or am I going about this in the wrong way?

Any help gratefully received! :-)

Bob.

Code: [Select]
PlayerDeck : PlayerDeck : LoadArray : ES3ArraylistLoad :
System.FormatException: Expected '[' or "null", found ','.
 at ES3Internal.ES3JSONReader.ReadNullOrCharIgnoreWhitespace (Char
expectedChar) [0x000b0] in /Users/Bob/Dev/Dogs vs Cats
2018/Assets/Plugins/Easy Save 3/Scripts/Readers/ES3JSONReader.cs:390
 at ES3Internal.ES3JSONReader.StartReadCollection () [0x00004] in
/Users/Bob/Dev/Dogs vs Cats 2018/Assets/Plugins/Easy Save
3/Scripts/Readers/ES3JSONReader.cs:157
 at ES3Types.ES3ArrayType.Read (.ES3Reader reader) [0x00008] in
/Users/Bob/Dev/Dogs vs Cats 2018/Assets/Plugins/Easy Save
3/Scripts/Types/Collection Types/ES3ArrayType.cs:49
 at ES3Reader.Read[Vector2[]] (ES3Types.ES3Type type) [0x00057] in
/Users/Bob/Dev/Dogs vs Cats 2018/Assets/Plugins/Easy Save
3/Scripts/Readers/ES3Reader.cs:240
 at ES3Types.ES3Type_PolygonCollider2D.ReadComponent[Object] (.ES3Reader
reader, System.Object obj) [0x0011a] in /Users/Bob/Dev/Dogs vs Cats
2018/Assets/Plugins/Easy Save 3/Scripts/Types/Unity Types/Component
Types/ES3Type_PolygonCollider2D.cs:49
 at ES3Types.ES3ComponentType.ReadObject[Object] (.ES3Reader reader)
[0x00190] in /Users/Bob/Dev/Dogs vs Cats 2018/Assets/Plugins/Easy Save
3/Scripts/Types/ES3ComponentType.cs:92
 at ES3Types.ES3ObjectType.Read[Object] (.ES3Reader reader) [0x0004a] in
/Users/Bob/Dev/Dogs vs Cats 2018/Assets/Plugins/Easy Save
3/Scripts/Types/ES3ObjectType.cs:40
 at ES3Types.ES3ObjectType.Read[Object] (.ES3Reader reader) [0x00028] in
/Users/Bob/Dev/Dogs vs Cats 2018/Assets/Plugins/Easy Save
3/Scripts/Types/ES3ObjectType.cs:34
 at ES3Reader.ReadObject[Object] (ES3Types.ES3Type type) [0x0001d] in
/Users/Bob/Dev/Dogs vs Cats 2018/Assets/Plugins/Easy Save
3/Scripts/Readers/ES3Reader.cs:215
 at ES3Reader.Read[Object] (ES3Types.ES3Type type) [0x0008b] in
/Users/Bob/Dev/Dogs vs Cats 2018/Assets/Plugins/Easy Save
3/Scripts/Readers/ES3Reader.cs:244
 at ES3Types.ES3ArrayType.Read (.ES3Reader reader) [0x00033] in
/Users/Bob/Dev/Dogs vs Cats 2018/Assets/Plugins/Easy Save
3/Scripts/Types/Collection Types/ES3ArrayType.cs:57
 at ES3Reader.Read[Component[]] (ES3Types.ES3Type type) [0x00057] in
/Users/Bob/Dev/Dogs vs Cats 2018/Assets/Plugins/Easy Save
3/Scripts/Readers/ES3Reader.cs:240
 at ES3Reader.Read[Component[]] () [0x00012] in /Users/Bob/Dev/Dogs vs
Cats 2018/Assets/Plugins/Easy Save 3/Scripts/Readers/ES3Reader.cs:98
 at ES3Types.ES3Type_GameObject.ReadObject[Object] (.ES3Reader reader,
System.Object obj) [0x0013b] in /Users/Bob/Dev/Dogs vs Cats
2018/Assets/Plugins/Easy Save 3/Scripts/Types/Unity
Types/ES3Type_GameObject.cs:155
 at ES3Types.ES3ObjectType.ReadInto[Object] (.ES3Reader reader,
System.Object obj) [0x0004a] in /Users/Bob/Dev/Dogs vs Cats
2018/Assets/Plugins/Easy Save 3/Scripts/Types/ES3ObjectType.cs:63
 at ES3Types.ES3Type_GameObject.ReadObject[Object] (.ES3Reader reader)
[0x0019d] in /Users/Bob/Dev/Dogs vs Cats 2018/Assets/Plugins/Easy Save
3/Scripts/Types/Unity Types/ES3Type_GameObject.cs:125
 at ES3Types.ES3ObjectType.Read[Object] (.ES3Reader reader) [0x0004a] in
/Users/Bob/Dev/Dogs vs Cats 2018/Assets/Plugins/Easy Save
3/Scripts/Types/ES3ObjectType.cs:40
 at ES3Types.ES3ObjectType.Read[Object] (.ES3Reader reader) [0x00028] in
/Users/Bob/Dev/Dogs vs Cats 2018/Assets/Plugins/Easy Save
3/Scripts/Types/ES3ObjectType.cs:34
 at ES3Reader.ReadObject[Object] (ES3Types.ES3Type type) [0x0001d] in
/Users/Bob/Dev/Dogs vs Cats 2018/Assets/Plugins/Easy Save
3/Scripts/Readers/ES3Reader.cs:215
 at ES3Reader.Read[Object] (ES3Types.ES3Type type) [0x0008b] in
/Users/Bob/Dev/Dogs vs Cats 2018/Assets/Plugins/Easy Save
3/Scripts/Readers/ES3Reader.cs:244
 at ES3Types.ES3ListType.Read (.ES3Reader reader) [0x0003e] in
/Users/Bob/Dev/Dogs vs Cats 2018/Assets/Plugins/Easy Save
3/Scripts/Types/Collection Types/ES3ListType.cs:60
 at ES3Reader.Read[List`1] (ES3Types.ES3Type type) [0x00057] in
/Users/Bob/Dev/Dogs vs Cats 2018/Assets/Plugins/Easy Save
3/Scripts/Readers/ES3Reader.cs:240
 at ES3Reader.Read[List`1] (System.String key) [0x00057] in
/Users/Bob/Dev/Dogs vs Cats 2018/Assets/Plugins/Easy Save
3/Scripts/Readers/ES3Reader.cs:162
 at ES3.Load[List`1] (System.String key, .ES3Settings settings) [0x0002c]
in /Users/Bob/Dev/Dogs vs Cats 2018/Assets/Plugins/Easy Save
3/Scripts/ES3.cs:266
 at HutongGames.PlayMaker.Actions.ES3ArraylistLoad.Execute () [0x0007c] in
/Users/Bob/Dev/Dogs vs Cats 2018/Assets/PlayMaker ArrayMaker
EasySave3/Actions/ES3ArraylistLoad.cs:68
 at HutongGames.PlayMaker.Actions.ES3ArraylistLoad.Enter () [0x0003c] in
/Users/Bob/Dev/Dogs vs Cats 2018/Assets/PlayMaker ArrayMaker
EasySave3/Actions/ES3ArraylistLoad.cs:52
 at ES3PlayMaker.ActionBase.OnEnter () [0x00003] in /Users/Bob/Dev/Dogs vs
Cats 2018/Assets/Plugins/Easy Save 3/PlayMaker/ES3PlayMaker.cs:34
UnityEngine.Debug:LogError(Object, Object)
HutongGames.PlayMaker.FsmLog:AddEntry(FsmLogEntry, Boolean) (at
C:/Projects/Playmaker_1.9.0/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/FsmLog.cs:172)
HutongGames.PlayMaker.FsmLog:LogAction(FsmLogType, String, Boolean) (at
C:/Projects/Playmaker_1.9.0/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/FsmLog.cs:361)
HutongGames.PlayMaker.FsmStateAction:LogError(String) (at
C:/Projects/Playmaker_1.9.0/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/FsmStateAction.cs:280)
ES3PlayMaker.ActionBase:HandleError(String) (at Assets/Plugins/Easy Save
3/PlayMaker/ES3PlayMaker.cs:56)
ES3PlayMaker.ActionBase:OnEnter() (at Assets/Plugins/Easy Save
3/PlayMaker/ES3PlayMaker.cs:38)
HutongGames.PlayMaker.FsmState:ActivateActions(Int32) (at
C:/Projects/Playmaker_1.9.0/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/FsmState.cs:205)
HutongGames.PlayMaker.FsmState:OnEnter() (at
C:/Projects/Playmaker_1.9.0/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/FsmState.cs:175)
HutongGames.PlayMaker.Fsm:EnterState(FsmState) (at
C:/Projects/Playmaker_1.9.0/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2768)
HutongGames.PlayMaker.Fsm:SwitchState(FsmState) (at
C:/Projects/Playmaker_1.9.0/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2715)
HutongGames.PlayMaker.Fsm:UpdateStateChanges() (at
C:/Projects/Playmaker_1.9.0/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2643)
HutongGames.PlayMaker.Fsm:UpdateState(FsmState) (at
C:/Projects/Playmaker_1.9.0/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2784)
HutongGames.PlayMaker.Fsm:Update() (at
C:/Projects/Playmaker_1.9.0/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:1995)
PlayMakerFSM:Update() (at
C:/Projects/Playmaker_1.9.0/Projects/Playmaker.source.unity/Assets/PlayMaker/PlayMakerFSM.cs:579)


miguelfanclub

  • Full Member
  • ***
  • Posts: 165
Re: Array maker, easy save 3 and Array list problems
« Reply #1 on: January 30, 2019, 06:47:52 PM »
For easy save stuff I recommend you to post in their forums. The guy is super committed and responds within hours.

https://moodkie.com/forum/index.php

treborjones

  • Playmaker Newbie
  • *
  • Posts: 24
Re: Array maker, easy save 3 and Array list problems
« Reply #2 on: January 30, 2019, 07:12:00 PM »
I did already, but he suggested I head over here! :-)

djaydino

  • Administrator
  • Hero Member
  • *****
  • Posts: 7615
    • jinxtergames
Re: Array maker, easy save 3 and Array list problems
« Reply #3 on: January 30, 2019, 10:07:58 PM »
Hi.
I believe that objects can not be saved so you will need to use a workaround.

You cold for example have an array with all existing cards.

Then for the players deck use a int array and set the int variables corresponding to index nr of the array with all the cards.

Now you can save the int array.

if your cards have multiple values i would suggest to use xml instead.
you can use xml with datamaker.

treborjones

  • Playmaker Newbie
  • *
  • Posts: 24
Re: Array maker, easy save 3 and Array list problems
« Reply #4 on: January 31, 2019, 04:02:34 AM »
Thanks for the responses.

Yeah I think I'm probably gonna have to use my brain a bit more and do something as you suggested. I probably need to do a bit more learning about Arrays and how to use them best!

I was hoping the actions ES3ArraylistLoad and ES3ArraylistSave might save the states of array list game object references. But sounds like maybe GameObjects arrays lists might not be supported in this way?

If anyone else has any info or tutorials on how these particular actions work I'd be most grateful.

Cheers all.



« Last Edit: January 31, 2019, 04:04:45 AM by treborjones »

jeanfabre

  • Administrator
  • Hero Member
  • *****
  • Posts: 15500
  • Official Playmaker Support
Re: Array maker, easy save 3 and Array list problems
« Reply #5 on: February 01, 2019, 04:29:54 AM »
Hi,

 yes, gameobject reference are tricky because they are no persistent themselves, so save the path and name of the gameobject as a string and use Find after, os use tags, etc etc.

Bye,

 Jean