我什至不太确定如何表达这个问题,所以希望措辞不会太难以理解。
我正在制作一个游戏,其中对话框可以根据我想要的情感通过枚举来拉动每个角色精灵。
当前枚举是这样的:
DialogueManager:
public enum AylaSprites
{
Base,
Confused,
Happy,
Point,
Sad
}
在另一个文件中,我希望能够使用可以在 Unity 时间轴检查器中添加的字符串列表来动态访问它们。精灵列表不允许我选择函数,并且我已经拥有不同脚本的枚举,所以如果可能的话我想使用它们。
我希望我可以像连接字符串一样进行操作,比如
TutorialTimeline:
(dManager is this scripts reference to the Dialogue Manager, and spriteOptions is a
list in that manager)
List<Sprite> spriteList = new List<Sprite>();
foreach (var sprite in newSprites)
{
spriteList.Add(dManager.spriteOptions[(int)DialogueManager.AylaSprites.**(sprite)**]);
}
但显然这是不可能的。我有什么办法可以做类似的事情吗? 我觉得这真的很简单,而且完全超出了我的想象。
有没有办法让我把绳子粘到那里的末端?或者我需要采取不同的方法吗?
如果您“快乐”和“困惑”,您可能需要考虑“标志”枚举;它使用位来选择使用单个字段/属性的“零、一个或多个”选项。因此,您可以只使用布尔运算符而不是字符串运算符,而不是使用属性“列表”。
https://learn.microsoft.com/en-us/dotnet/fundamentals/runtime-libraries/system-flagsattribute