3가지 종류의 Key와 자물쇠를 만드는 과정에서
각자 종류가 다르다고 확인하는 코드를 깔끔하게 만드는 법을 잘 모르겠다.
일단 Switch문으로 작성해 두었다.
public string GetInteractPrompt()
{
switch (lockedDoor.DisPlayName)
{
case "Blue":
if (Main.Player.KeyCheck.Blue == true)
return string.Format("Open {0} Door", lockedDoor.DisPlayName);
else
return string.Format("Need {0} Key", lockedDoor.DisPlayName);
case "Red":
if (Main.Player.KeyCheck.Red == true)
return string.Format("Open {0} Door", lockedDoor.DisPlayName);
else
return string.Format("Need {0} Key", lockedDoor.DisPlayName);
case "Green":
if (Main.Player.KeyCheck.Green == true)
return string.Format("Open {0} Door", lockedDoor.DisPlayName);
else
return string.Format("Need {0} Key", lockedDoor.DisPlayName);
}
//return string.Format("Open {0} Door", lockedDoor.DisPlayName);
return string.Format("Need {0} Key", lockedDoor.DisPlayName);
}
public void OnInteract()
{
switch(lockedDoor.DisPlayName)
{
case "Blue":
if(Main.Player.KeyCheck.Blue == true)
DoorInteraction();
break;
case "Red":
if(Main.Player.KeyCheck.Red == true)
DoorInteraction();
break;
case "Green":
if(Main.Player.KeyCheck.Green == true)
DoorInteraction();
break;
}
}
이런 식으로 너무 중복되는 코드가 많을 뿐더러
자물쇠를 ScriptableObject로 썼지만 이를 활용할 방법이 떠오르지 않았다.
내일 튜터님에게 어떤 방법이 있을지 질문해봐야겠다.