[Unity] 같은 종류 다른 타입 구별 - 트러블

고현규·2024년 1월 4일
0

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로 썼지만 이를 활용할 방법이 떠오르지 않았다.
내일 튜터님에게 어떤 방법이 있을지 질문해봐야겠다.

profile
게임 개발과 기획

0개의 댓글