B 버튼을 누를 때마다 발사 모드(FireMode)를 Auto → Single → Burst 순서로 변경하는 기능을 구현했다.
총기 발사 모드를 변경할 때, 모드가 순환하도록 만들고 싶었다.
즉, Auto → Single → Burst → 다시 Auto 형태로 돌아가야 했다.
Enum을 사용하고, 모드를 변경하는 로직을 한 줄로 처리했다.
public enum FireMode { Auto, Single, Burst }
currentMode = (FireMode)(((int)currentMode + 1) % System.Enum.GetValues(typeof(FireMode)).Length);
(int)currentMode → 현재 Enum을 숫자로 변환
Auto = 0, Single = 1, Burst = 2
1 → 다음 모드로 이동
% System.Enum.GetValues(typeof(FireMode)).Length
모드 개수(3)로 나눈 나머지를 구해서 순환하도록 만듦
2(현재 Burst) + 1 = 3 → 3 % 3 = 0 → Auto로 변경
(FireMode) → 다시 Enum으로 변환
현재 currentMode // (int)currentMode + 1 // % 3 (모드 개수) //최종 currentMode
Auto (0) 0 + 1 = 1 1 % 3 = 1 Single
Single (1) 1 + 1 = 2 2 % 3 = 2 Burst
Burst (2) 2 + 1 = 3 3 % 3 = 0 Auto