Я пытаюсь работать с хэшсом < /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
Мобильная версия