你好 :)
我希望将可编写脚本的对象类的每一个实例添加到 HashSet(它位于单独脚本中的静态类中)。
我通过创建一个将所述类添加到哈希集中的方法来做到这一点,并在我正在实例化的类的构造函数中调用了这个方法。事情是这样的……它有效,但并非总是如此?这是代码,我将在最后进一步探讨问题:
//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 之外,这一切都很好。第一次我总是必须进入我的“MyClassToInstantiate”的任何实例并改变一些东西(任何东西),它才开始工作(我正在使用 [createAssetMenu] 属性顺便说一句)。
附言。我敢肯定我没有看到明显的理论问题!提前感谢任何让我了解正在发生的事情的人