Unity3D 从另一个脚本访问 class

Unity3D Access class from another script

hey how can i access this list of int and strings from another script?

 // Slot One Data
    [Serializable]
    public class SlotOneStats
    {
        public string nameOne;
        public int roleOne;
        public int strengthOne;
        public int meleeOne;
        public int shootingOne;
        public int huntingOne;
        public int cookingOne;
        public int craftingOne;
        public int buildingOne;
        public int engineeringOne;
    }

i tried changing 'public' to 'static' or 'public static' but whenever i changed to static it will say

Static member `Main.SlotOneStats.ALLTHESTATICVARIABLEGOESHERE' cannot be accessed with an instance reference, qualify it with a type name instead

                        BinaryFormatter bfWriter = new BinaryFormatter();
                        FileStream file = File.Create(Application.persistentDataPath + "/dataStats" + onSlot + ".fgsv");

                        if(onSlot == 1)
                        {
                            SlotOneStats slotoneStats = new SlotOneStats();
                            slotoneStats.nameOne = name;
                            slotoneStats.roleOne = role;
                            slotoneStats.strengthOne = strength;
                            slotoneStats.meleeOne = melee;
                            slotoneStats.shootingOne = shooting;
                            slotoneStats.huntingOne = hunting;
                            slotoneStats.cookingOne = cooking;
                            slotoneStats.craftingOne = crafting;
                            slotoneStats.buildingOne = building;
                            slotoneStats.engineeringOne = engineering;

                            bfWriter.Serialize(file, slotoneStats);
                        }

我建议将 class 的 public 实例添加到第一个脚本中:

public class SlotOneStats
{
    public string nameOne;
    public int roleOne;
    public int strengthOne;
    public int meleeOne;
    public int shootingOne;
    public int huntingOne;
    public int cookingOne;
    public int craftingOne;
    public int buildingOne;
    public int engineeringOne;
}

public SlotOneStats SOS;

现在只要访问 public 变量 SOS 就可以了:

GameObject example = GameObject.Find("Object_with_script").GetComponent<Script_with_class>.SOS;
// do stuff with example