使用字典(Unity)加载资源



我可以改变2D角色的皮肤,但我遇到了一个问题

精灵加载是这样的

private void LoadResources()
{
_faces = Resources.LoadAll<Sprite>(@"Rogue/Rogue_face");
_hoods = Resources.LoadAll<Sprite>(@"Rogue/Rogue_hood");
_elbowsLeft = Resources.LoadAll<Sprite>(@"Rogue/Rogue_elbow_l");
_elbowsRight = Resources.LoadAll<Sprite>(@"Rogue/Rogue_elbow_r");
_shouldersLeft = Resources.LoadAll<Sprite>(@"Rogue/Rogue_shoulder_l");
_shouldersRight = Resources.LoadAll<Sprite>(@"Rogue/Rogue_shoulder_r");
_wristsLeft = Resources.LoadAll<Sprite>(@"Rogue/Rogue_wrist_l");
_wristsRight = Resources.LoadAll<Sprite>(@"Rogue/Rogue_wrist_r");
_torsos = Resources.LoadAll<Sprite>(@"Rogue/Rogue_torso");
_pelvises = Resources.LoadAll<Sprite>(@"Rogue/Rogue_pelvis");
_legsLeft = Resources.LoadAll<Sprite>(@"Rogue/Rogue_leg_l");
_legsRight = Resources.LoadAll<Sprite>(@"Rogue/Rogue_leg_r");
_bootsLeft = Resources.LoadAll<Sprite>(@"Rogue/Rogue_boot_l");
_bootsRight = Resources.LoadAll<Sprite>(@"Rogue/Rogue_boot_r");
}

看起来很麻烦,很难理解

我想得到这样的东西,我怎么实现它?

_spritesPaths = new Dictionary<Sprite[], string>()
{
{_faces, "Rogue_face"},
{_hoods, "Rogue_hood"},
{_elbowsLeft, "Rogue_elbow_l"},
{_elbowsRight, "Rogue_elbow_r"},
{_shouldersLeft, "Rogue_shoulder_l"},
{_shouldersRight, "Rogue_shoulder_r"},
{_wristsLeft, "Rogue_wrist_l"},
{_wristsRight, "Rogue_wrist_r"},
{_torsos, "Rogue_torso"},
{_pelvises, "Rogue_pelvis"},
{_legsLeft, "Rogue_leg_l"},
{_legsRight, "Rogue_leg_r"},
{_bootsLeft, "Rogue_boot_l"},
{_bootsRight, "Rogue_boot_r"}
};
private void LoadResources()
{
foreach (var pair in _spritesPaths)
pair.Key = Resources.LoadAll<Sprite>($@"Rogue/{pair.Value}"); //this does not work
}

提前感谢!

您尝试过字符串添加吗?

pair.Key = Resources.LoadAll<Sprite>("Rogue/" + pair.Value);