숫자맞추기 게임을 만들때 TryParse 부분에 약간 실수가 있었다.
if (int.TryParse(input, out inputNumber))
{
//1~100 사이값만 입력 가능
if (inputNumber > 0 && inputNumber <=100)
{
inputNumber = Convert.ToInt32(input);
}
}
else
{
Console.WriteLine("Wrong Input, Try again");
continue;
}
true가 반환되는 시점에서 inputNumber에 int 형태로 형변환이 적용된 숫자가 저장되고, false에서는 tryParse의 기본값인 0이 저장되는 방식임을 다시 기억할 필요가 있어보인다.
이전에 C#과 유니티를 배울때 tryParse를 사용하지 않았어서 이런 실수가 계속 발생하는듯 하다.
그리고 out 형식을 사용하는 부분을 한번 배운적이 있었는데
unity에서 사용하는 Physics.Raycast 형식이였다.
유니티 공식 문서에서의 사용법은 다음과 같다.
RaycastHit hit;
// Does the ray intersect any objects excluding the player layer
if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), out hit, Mathf.Infinity, layerMask))
{
Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.forward) * hit.distance, Color.yellow);
Debug.Log("Did Hit");
}
else
{
Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.forward) * 1000, Color.white);
Debug.Log("Did not Hit");
}
하면서 이 부분을 대충 넘긴 감이 있었는데, tryParse 문 보면서 다시 보니 Physics.Raycast에서는 true, false만 반환하고 out을 통해 RaycastHit에 무엇이 부딧쳤는지를 던져주는것이 보이게 되었다.
Raycast가 1인칭 게임에서 플레이어 상호작용에 많이 사용되는만큼, 이번 기회에 이 부분을 확실히 해두어야 할것 같다.
'사전캠프 > TIL' 카테고리의 다른 글
사전캠프 08/21 TIL (0) | 2024.08.21 |
---|---|
사전캠프 08/20 TIL (0) | 2024.08.20 |
사전캠프 08/19 TIL (0) | 2024.08.19 |
사전캠프 4일차 TIL (0) | 2024.08.16 |
사전캠프 2일차 TIL (0) | 2024.08.13 |