플레이 캐릭터 선택 기능을 만드는 과정에서 캐릭터를 enum으로 선택할 수 있는 기능을 만들기위해 enum을 index로 조작하려고 했는데 잘 안됐다.
게임상의 버튼을 클릭하면 enum의 다음 인덱스로 변경하는 기능을 원했는데 다음과 같이 해결했다.
Character[] characterValues = (Character[])Enum.GetValues(typeof(Character));
int currentIndex = Array.IndexOf(characterValues, currentCharacter);
int nextIndex = (currentIndex + 1) % characterValues.Length;
currentCharacter = characterValues[nextIndex];
enum인 Character을 배열로 선언해 배역에 각각의 Enum을 할당해준다.
그 후 인덱스 번호int currentIndex에 현제 characterValues배열의 값을 저장한다. 이 인덱스 번호를 이용해서 enum을 조작해줄 수 있다.
쉽게 말하자면 함수를 변수처럼 넣어서 사용할 수 있게 해주는것.