2017-05-24 6 views
1

Ich habe Klasse wie -Serialize Gameobject in Unity

[serializable] 
public class DemoClass{ 
    [SerializeField] 
    public GameObject gameObject; 
} 

Ich möchte zum Speichern von Daten unter Verwendung von serializable. Unity doc sagt, dass GameObject serializeField ist. Aber es gibt Ausnahme -

SerializationException: Type UnityEngine.GameObject is not marked as Serializable. 

Wer hat eine Idee?

+0

Haben Sie den Fehler überhaupt googlen? Erster Schlag https://stackoverflow.com/questions/15707872/error-is-not-marked-as-serializable –

+1

Ja! Ich google es. Aber GameObject erlaubt nicht, serialisiert zu werden. –

+1

Sie können nicht. Das ist die Antwort. Du kannst einfach nicht. – Programmer

Antwort

1

Tag hinzufügen [Serializable] vor Ihrer Klassenname:

[Serializable] 
public class DemoClass{ 
    public GameObject gameObject; 
    public AudioClip audio; 
} 

Documentation

Edit: ff Sie wollen immer noch GameObject serialisiert ihr ist einige Plugins gibt, mit denen Unity Serialize Objekte. Siehe: Runtime Serialization for Unity

+0

Ich benutze dies. Aber GameObject ist nicht erlaubt zu serialisieren gibt es Exception. –

+0

@AnkitaKorape Warum willst du ein 'GameObject' serialisieren? –

+0

Ich habe viele AssetBundles. Wenn ich es zum ersten Mal mit www herunterlade, möchte ich es nicht erneut herunterladen/zwischenspeichern. Weil es so viel Telefonspeicher belegt und die App abstürzt. So möchte ich Daten für die weitere Verwendung speichern. –

0

Sie müssen das Attribut [serializable] zu den Klassen hinzufügen, die Sie serialisieren möchten. Wenn eine der Klassen in Ihrer Klasse nicht bereits serialisierbar ist, müssen Sie auch dieses Attribut diesen Klassen hinzufügen.

z.B.

[Serializable] 
public class DemoClass 
{ 
    public GameObject gameObject; 
    public AudioClip audio; 
} 
+0

Ich benutze das. Aber GameObject ist nicht erlaubt, es serialisieren gibt Exception –

Verwandte Themen