I am pretty new to C# so many things I have never done before, this is one.
I have the following code were I am testing to save data to playerPrefs using BinaryFormatter. However, the problem i have is how to store the “CardData” to the cardSavedData -list.
I do get the following message:
assets/DataSaveTest.cs(49,36): error CS0119: Expression denotes a `type', where a `variable', `value' or `method group' was expected
on this line below: “cardSavedData.Add (CardData);”
I am aware that this is a simple problem but can not really figure out what to search on to find the solution. I have tested to put “new” property.
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
//For Binary Formatter
using System;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
public class DataSaveTest : MonoBehaviour {
//The card deck
public class CardData {
public static bool cardHaveFaceUp;
public static Vector3 cardsPosition;
public static float cardsSortingOrder;
}
//The Template List
public List<CardData> cardSavedData = newList<CardData>();
void SavePosition() {
//Get binary formatter
var b = newBinaryFormatter();
//Create an inmemory stream
var m = newMemoryStream ();
//Save the position data
b.Serialize (m, cardSavedData);
//Add it to playerPrefs
PlayerPrefs.SetString ("CardDeckSavedData", Convert.ToBase64String (m.GetBuffer ()));
}
voidStart () {
CardData.cardHaveFaceUp = true;
CardData.cardsPosition = newVector3 (10f, 10f, 10f);
CardData.cardsSortingOrder = 10f;
cardSavedData.Add (CardData);
CardData.cardHaveFaceUp = true;
CardData.cardsPosition = newVector3 (20f, 20f, 20f);
CardData.cardsSortingOrder = 20f;
cardSavedData.Add (CardData);
CardData.cardHaveFaceUp = true;
CardData.cardsPosition = newVector3 (30f, 30f, 30f);
CardData.cardsSortingOrder = 30f;
cardSavedData.Add (CardData);
CardData.cardHaveFaceUp = true;
CardData.cardsPosition = newVector3 (40f, 40f, 40f);
CardData.cardsSortingOrder = 40f;
cardSavedData.Add (CardData);
CardData.cardHaveFaceUp = true;
CardData.cardsPosition = newVector3 (50f, 50f, 50f);
CardData.cardsSortingOrder = 50f;
cardSavedData.Add (CardData);
SavePosition ();
cardSavedData.Clear ();
//Get the data
var data = PlayerPrefs.GetString("CardDeckSavedData");
//If not blank then load it
if (!string.IsNullOrEmpty (data)) {
//Binary formatter for loading back
var b = newBinaryFormatter();
//Create memory stream with the data
var m = newMemoryStream(Convert.FromBase64String(data));
//Load back the position data
cardSavedData = (List<CardData>)b.Deserialize(m);
foreach (var xxx in cardSavedData) {
print (">> " + xxx);
}
}
}
}