The class
Code: Select all
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ChairManager : MonoBehaviour
{
private List<ChairClass> _chairPositions = new List<ChairClass> { };
public List<ChairClass> chairPositions { get { return _chairPositions; } set { _chairPositions = value; } }
private static ChairManager _instance;
public static ChairManager Instance { get { return _instance; } }
private void Awake()
{
if (_instance != null && _instance != this)
{
Destroy(this.gameObject);
}
else
{
_instance = this;
}
}
public class ChairClass
{
public Vector2Int chairPosition = new Vector2Int { };
public bool isOccupied = false;
}
}
Code: Select all
ES3.Save(_chairInfoKey, GameManager.Instance.ChairManager.chairPositions);
Code: Select all
"ChairsInfo" : {
"__type" : "System.Collections.Generic.List`1[[ChairManager+ChairClass, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]],mscorlib",
"value" : [
{
"chairPosition" : {
"x" : 6,
"y" : -4
},
"isOccupied" : false
}
]
},
The new ChairClass with inheritance
Code: Select all
public class ChairClass : TaskBase
{
public Vector2Int chairPosition = new Vector2Int { };
public bool isOccupied = false;
}
Code: Select all
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public abstract class TaskBase : MonoBehaviour
{
public int priority = 0;
}
Code: Select all
"ChairsInfo" : {
"__type" : "System.Collections.Generic.List`1[[ChairManager+ChairClass, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]],mscorlib",
"value" : [
null
]
},