JsonSerializationException

260
29 ноября 2017, 23:03

Self referencing loop detected for property 'normalized' with type Vector3

Почему я получаю данную ошибку?Вроде все правильно добавляю и сохраняю

Api.PlayerCache[player.Uid].Home.Add(player.Location);
DC4_API.JsonHelper.SaveFile(Api.PlayerCache, "config/playerConnection.json");
Answer 1

Погуглил за вас

  • Вариант с отменой сериализации поля normalized через атрибут [ScriptIgnore]
  • Замените свойство Vector3 normalized { get { ... } } на метод, например (подходит, если нормализованный вектор вычисляется на базе текущего):

    public Vector3 normalized(Vector3 vector) { ... } // вместо this, используйте vector
    
  • Сделайте метод статиком, например (подходит, если нормализованный вектор един для всех):

    static Vector3 normalized { get {... } }
    
  • В случае, если вы не можете менять Vector3, и предыдущие 3 пункта не подходят, используйте прослойку, которая самостоятельно будет хранить x,y,z, в своих полях.

Вот вам пример прослойки:

    using System;
    [Serialize]
    public class ExampleVector3 {
        public float x { get; set; }
        public float y { get; set; }
        public float z { get; set; }
        public ExampleVector3(Vector3 vector){
            x = vector.x;
            y = vector.y;
            z = vector.z;
        }
        public Vector3 ToVector(){
            return new Vector3(x,y,z);
        }
    }

использовать можно так:

List<ExampleVector3> home = new List<ExampleVector3>();
home.Add(new ExampleVector3(player.Location));
READ ALSO
C# запись целочисленного массива в файл

C# запись целочисленного массива в файл

Нужно записать массив типа int в тестовый файл и другой функцией считать этот файл и вывести на экран

235
Вращение элементов по оси с остановкой ровно по центру

Вращение элементов по оси с остановкой ровно по центру

Есть N число Элементов, которые вращаются по окружности Нужно остановить вращение через N промежуток времени(7сек), так что бы этот определенный...

248
Не ставятся cookie на ios

Не ставятся cookie на ios

Ставлю куки на js всем известным способом:

322