【发布时间】:2019-04-18 07:09:44
【问题描述】:
我搜索了它,但我无法解决它。 我有一个这样的程序设置(它在 Unity 和 Visual Studio 2019 for C# 中): 请注意,CSV 加载很顺利,当我调试代码时,我可以看到所有内容都充满了正确的数据。
#region character class
public class _Character
{
public int Id { get; set; }
public int Variation { get; set; }
public string Name { get; set; }
public string LastName { get; set; }
}
#endregion
//Tools.LoadCsv generates a string[,] from a csv file
//Tools.IntParse parses int's with a lot of format error checking
void Start()
{
#region load characters class
string[,] CharacterCSV = Tools.LoadCsv(@"Assets/GameDB/character.csv");
List<_Character> Character = new List<_Character>();
for (int i = 1; i < CharacterCSV.GetUpperBound(0); i++)
{
_Character temp = new _Character();
temp.Id = Tools.IntParse(CharacterCSV[i, 0]);
temp.Variation = Tools.IntParse(CharacterCSV[i, 1]);
temp.Name = CharacterCSV[i, 2];
temp.LastName = CharacterCSV[i, 3];
Character.Add(temp);
}
CharacterCSV = null;
#endregion
}
我几乎不了解物体,所以如果我做错了,我很抱歉。
我的问题是:
为什么对象列表生成必须在 Start 中?我似乎无法在它自己的班级中做到这一点。
如何从角色对象列表中获取一个对象,其中包含 Id = 100 和 Name = "John" ,并从另一个类或方法访问它。
我通常把代码搞得一团糟,让它对我来说足够好,但现在我想做一些漂亮的东西,但似乎无法到达对象。
提前致谢!
//主要问题是在类内声明对象,当在类外声明时,List Object对外可用。 列表<_character> 字符 = 新列表<_character>();移到 Start{}
之外我没有编辑问题来更正代码,因为问题需要保持清晰。 //
【问题讨论】:
-
在没有单一行为的情况下开始似乎很奇怪。如果它不是单一行为,你不必在开始时这样做