我如何循环遍历字符串列表并使用每个字符串来提取枚举?

问题描述 投票:0回答:1

我什至不太确定如何表达这个问题,所以希望措辞不会太难以理解。

我正在制作一个游戏,其中对话框可以根据我想要的情感通过枚举来拉动每个角色精灵。

当前枚举是这样的:

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)**]);

    }

但显然这是不可能的。我有什么办法可以做类似的事情吗? 我觉得这真的很简单,而且完全超出了我的想象。

有没有办法让我把绳子粘到那里的末端?或者我需要采取不同的方法吗?

c# list unity-game-engine enums concatenation
1个回答
0
投票

如果您“快乐”和“困惑”,您可能需要考虑“标志”枚举;它使用位来选择使用单个字段/属性的“零、一个或多个”选项。因此,您可以只使用布尔运算符而不是字符串运算符,而不是使用属性“列表”。

https://learn.microsoft.com/en-us/dotnet/fundamentals/runtime-libraries/system-flagsattribute

© www.soinside.com 2019 - 2024. All rights reserved.