사전캠프/TIL

사전캠프 3일차 TIL

서보훈 2024. 8. 14. 17:48

숫자맞추기 게임을 만들때 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