Jump to content
Unity Insider Forum

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


Hermetes

Recommended Posts

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.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...