Как сериализировать хэшсет для использования в инспектореC#

Место общения программистов C#
Ответить
Anonymous
 Как сериализировать хэшсет для использования в инспекторе

Сообщение Anonymous »

Версия Unity: 2017.3.1f1 < /p>

Я пытаюсь работать с хэшсом < /code> в инспекторе Unity. В частности, мне нужны некоторые монобийские s, чтобы иметь хэшсет поля, которые могут быть изменены их содержимое с помощью инспектора. Руководство:
Однако я не могу в этом не подходит, но я не могу осматривать, но я не могу, но я не могу, но я не могу осмотреть. Если я установил размер списка на 2 или более, он немедленно отложен к 1. Я не уверен, почему он установил его на 1. Таким образом, этот подход в настоящее время является «функциональным» для хешет из 0 или 1 строк, но не больше. Кроме того, результат не изменяется, если я использую поле HASHSET < /code> вместо того, чтобы унаследовать от него (например, что было сделано в приведенной выше ссылке). < /P>

Вот минимальный пример: < /p>

Код: Выделить всё

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TEST : MonoBehaviour
{
public StringHashSet test;
}

[System.Serializable]
public class SerializableHashSet : HashSet, ISerializationCallbackReceiver
{
public List values = new List ();

public void OnBeforeSerialize ()
{
values.Clear ();

foreach (T val in this) {
values.Add (val);
}
}

public void OnAfterDeserialize ()
{
this.Clear ();

foreach (T val in values) {
this.Add (val);
}
}
}

[System.Serializable]
public class StringHashSet : SerializableHashSet
{
}

Как я могу получить эту работу, как и ожидалось, (произвольный список строк, сериализованный на хэшсет )? />


больше информации < /strong> < /p>



Я понял, что это потому, что когда размер списка изменится, все новые элементы в списке по умолчанию, что и в предыдущем элементе, что все будут квалифицированными в списке. HASHSET .

Таким образом, хотя вопрос 2 остается сверху, вопрос 1 развился, чтобы запрашивать обходной путь для этого при сохранении желаемого хэшсет .

Подробнее здесь: https://stackoverflow.com/questions/500 ... -inspector
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»