유니티 정수, 실수를 논리 형식으로 변환하는 방법
유니티 작업을 하다가 문뜩 코드 라인을 줄이고 싶다는 생각이 들어서 논리형식(Bool) 값을 정수로 바꿔서 곱해버리고 싶은 생각이 들었습니다. 그런데 오류가 발생하면서 명시적 형변환도, 암묵적 형변환도 되지 않았는데요. (float)를 사용해서 강제 형변환을 하려고 했지만 오류가 발생했습니다.
유니티에서 정수, 실수를 논리 형식으로 변환하는 방법과 그 반대 방법도 알아보겠습니다.
C, C++에서는 불리언값을 강제로 float, int로 변환하는 것이 매우 자연스럽습니다. 때문에 유니티에서 사용하는 C#에서도 동일한 방법을 사용하면 강제 형변환이 될 것이라고 생각했는데요. 유니티 6에서만 막아놓은 건지는 모르겠지만, CS0030 에러가 발생하면서 형변환을 할 수 없었습니다. 분명 C# 문서에는 된다고 되어 있는데 말이죠.
Convert 클래스
system 안에 있는 Convert 클래스는 string을 숫자로 바꾸거나, 각 자료의 형변환을 제공하는 기능이 모여있습니다. 괄호를 사용한 강제 형변환이 안된다면 Convert 클래스를 사용해야 하는데요. 이 클래스 내부에 있는 static 함수들을 사용하기 위해서는 system을 프로젝트에 포함해야 합니다.
유니티 6, Visual Code 기준으로는 Convert 클래스를 사용하기만 해도 자동으로 using System이 추가되는데요. 만약 자동으로 추가되지 않는다면, 스크립트 상단에 using System을 추가하면 에러가 생기는 것을 막을 수 있습니다.
정수, 실수를 논리 형식(Bool)으로 변환하는 방법
정수, 실수를 논리 형식으로 변경하는 방법은 Convert 클래스에 있는 ToBoolean 함수를 사용하면 가능합니다.
int a = 10;
float b = 0.0f;
bool c = Convert.ToBoolean(a);
bool d = Convert.ToBoolean(b);
// c는 true, b는 false가 들어감
반대의 경우는 조금 다른데요. boolean 값을 정수로 변경하고 싶을 때는 ToInt32로 변경할 수 있습니다. 정수로 변경하는 함수는 ToInt32 외에도 ToInt16, ToInt64, ToUint32 등이 있습니다. 큰 수를 저장할 일이 없을 때는 ToInt16을 이용하여 최적화를 할 수도 있을 것이고, 21억 이상의 큰 값을 저장해야 한다면 ToInt64등을 사용할 수도 있을 것입니다.
실수는 ToSingle과 ToDouble이 있는데요. float로 저장하고 싶을 때는 ToSingle, Double에 저장하고 싶을 때는 ToDouble을 사용하면 됩니다.
맨 처음 사진을 에러가 나지 않게 수정한다면 아래와 같습니다.
gameTime += Time.deltaTime * Convert.ToSingle(gameTime < maxGameTime);
유니티 6 Input System 사용하여 캐릭터 이동 추가하기
유니티 6가 새롭게 출시되면서 Input System이 기본 내장되었는데요. 레거시 방법이라고 할 수 있는 Input Manager를 사용해도 상관은 없지만 더 편리한 관리를 위해서 Input System을 사용하는 방법을 알
kwonriver.co.kr
'부업 일지' 카테고리의 다른 글
여행, 액티비티 정보 알려주고 돈 버는 클룩 제휴마케팅 가입 방법, 여행 블로그 부수입 추가하기 (0) | 2025.03.26 |
---|---|
유니티 6 Input System 사용하여 캐릭터 이동 추가하기 (0) | 2025.03.14 |
몇 달 간 나오지 않았던 문맥광고 다시 나오고 애드센스 수익 복구한 방법, SEO아레나와 함께 (0) | 2025.02.13 |
포스팅 700개 쌓고 티스토리 2차 도메인 씌우니 생긴 일 (0) | 2025.02.06 |
상업성 포스팅을 엄청나게 작성하면 생기는 일 : 신뢰도 하락과 애드센스 수익 감소 (0) | 2025.01.31 |