Jump to content
Unity Insider Forum
Hermetes

Recursive Serialization is not supported. You can't dereference a PPtr while loading. (Constructors of C# classes may not load objects either. See stacktrace.) }

Recommended Posts

Ich verstehe diesen Fehler nicht. *heul*
Hat es was mit dem Attribut System.Serializable zu tun? Ich darf doch class mit structs verschachteln und überall diesen Attribut anhängen, oder geht es um was ganz anderes?  

Share this post


Link to post
Share on other sites
using UnityEngine;
using Rod;

namespace Rod
{
   
   [System.Serializable]
   public struct MemberPerson 
   {
      public Ident Ident;
      public Birthday Birthday;
      public Address Address;
      public Contact Contact;
      //public MemberSocialMedia SozialMedia;
      
      
   }
}
using UnityEngine;
using Rod;

namespace Rod
{
   
   [System.Serializable]
   public struct Ident 
   {
      public string Name;
      public string FamName;
      public string BirthName;
      public string academicTitle;
      public string royalityTitle;

      public float gender;
      public bool isOwner;
   }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using Rod;

public class CreateNewMember : MonoBehaviour
{
   public TMP_InputField InputSurName;
   public TMP_InputField InputLastName;
   public bool isTyping;
   
   public enum state
   {
      person,
      commerce,
      noncommerce,
      culture
   }
   public state type;
      
   void Create()
   {
      Debug.Log("Created");
      
      
      var table = MemberSystem.Instance.table;
      
      
      if (type == state.person)
      {
         Member newMember = new Member();
         
         Debug.Log("Person erstellt");
         newMember.MemberTypeID = 0;
         newMember.MemberGroupID = table.GroupID;
         newMember.Avatar.IconID = 111;
         newMember.Avatar.IconGroupID = 0;
         newMember.Name = InputSurName.text;
         newMember.FamName = InputLastName.text;
         
         if (DeclareToMemberList(newMember,0))
         {
            table.FillTable(newMember.MemberGroupID,0);
            //table.questionEdit.StartQuestion(newMember);
            
         }
         
      }
      
      if (type == state.commerce)
      {
using System.Collections.Generic;
using UnityEngine;
using System;
using Rod;

namespace Rod
{
   
   [Serializable]
   public class Member : Master
   {
      // Ident
      public int memberID;         
      public int MemberGroupID;
      public int MemberTypeID;
      public new string Name;
      public string FamName;
      
      
      public Avatar Avatar;
      public Ident Info;
      public Birthday BirthDay;
      public Address Address;
      public Contact Contact;
      public Note Note;
      
      //public MemberPerson PersonInfo;
      //public MemberFirm FirmInfo;
      //public MemberCulture CultureInfo;

Sascha ist wieder da! :)  Die Fehlermeldung sagt mir leider nicht wo das Problem ist. Kann jetzt auch nur Vermutungen aufstellen. 
Die Sache sieht bei mir so aus: Ich habe zwei Inputfields . Vorname und Nachname. Wenn beide Felder ausgefüllt sind und Return gedrückt wird, wird ein Objekt Member erstellt.

Es sollte so aussehen (mittlerweile verändert)

         newMember.PersonInfo.Ident.Name = InputSurName.text;
         newMember.PersonInfo.identFamName = InputLastName.text;
 

Wenn die PersonInfo eine class war , hat das nicht funktioniert. Ändere ich es zu einem Struct hat die Member Objekt Erstellung funktioniert. Aber hinterher konnte ich keine Variablen mehr überschreiben.

Nun habe ich die diese Structs (Ident, Birthday, Address, Contact ) in die Member Class integriert , ganz ohne das Struct PersonInfo. Sowie die Variablen Name und FamName aus Ident herausgenommen. Jetzt funktioniert beides, die Objekt Erstellung sowie nachträgliche editieren von Variablen.


Nun kommt mir gerade die Idee das ich noch nie einen Konstruktor für Member verwendet habe !!! Vielleicht hätte es ganz ohne Umstellung funktioniert.

Trotzdem die Fehlermeldung habe ich bei jedem Unity Programm Start.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...