hello :)
I wi sh, чтобы добавить каждый экземпляр класса объекта с возможностью сценария в HashSet (который находится в классе c stati в отдельном скрипте).
Я сделал это, создав метод, который добавляет указанный класс в хэш-набор, и вызвал этот метод в конструкторе класса, который я создаю. Вот в чем дело ... работает, но не всегда? Вот код, go я расскажу подробнее о проблеме в конце:
//first script where the hashset is:
public static class Record
{
private static HashSet<MyClassToInstantiate> MyHashSet = new HashSet<MyClassToInstantiate>();
public static void AddToMyHashSet(MyClassToInstantiate obj)
{
MyHashSet.Add(obj);
}
}
//the other script:
[CreateAssetMenu(menuName = "X")]
public class MyClassToInstantiate : ScriptableObject
{
[SerializeField] string someRandomData1;
[SerializeField] int someRandomData2;
public MyClassToInstantiate()
{
Record.AddToMyHashSet(this);
}
}
Это работает отлично, за исключением первого раза, когда я открываю Unity. В первый раз мне всегда нужно go в любой экземпляр моего «MyClassToInstantiate» и что-то менять (что угодно), и он просто начинает работать (я использую атрибут [createAssetMenu], кстати).
ps. Я уверен, что у меня есть очевидная теоретическая проблема, которую я не вижу! Заранее спасибо всем, кто дает мне некоторое представление о том, что происходит