[목차] #1 Unit(유닛)이란? #2 Pixels Per Unit *개인적인 유니티 공부 내용을 기록하는 용도로 작성된 글 이기에, 잘못된 내용이 있을 수 있습니다. #1 Unit(유닛)이란? 유니티 에서의 "Unit(유닛)" 이란, 게임의 화면 단위를 나타내는 거리 단위 입니다. 즉, 유니티 에서의 "한 칸"을 유닛이라 부릅니다. #2 Pixels Per Unit 2D로 게임을 제작할 때는 한 칸(유닛)이 몇 Pixel 로 이루어 지는지에 대한 정의가 필요한데, 2D Sprite에서 Pixels Per Unit 옵션을 이용해 설정이 가능합니다. 위와 같이 Pixels Per Unit을 32로 설정하면, 유닛 (1칸)의 단위가 32Pixels로 설정됩니다. 저는 슬라임 오브젝트의 크기를 32x32 p..
#0 Raycast? #1 Raycast 사용법 #1.1 Debug.DrawRay() 레이저 출력 #1.2 RaycastHit 충돌 정보 #1.3 Physics.Raycast 레이케스트 사용 #1.4 실행 결과 #2 LayerMask 특정 레이어만 인식 * 개인적인 유니티 공부 내용을 기록한 포스팅으로 잘못된 내용이 있을 수 있으며, 지속적으로 수정해 나갈 예정입니다. #0 Raycast? Raycast란, A의 위치에서 B의 방향으로 레이저를 발사하여 해당하는 위치에 사물이 존재하는 지 판별하는 기능입니다. Raycast는 Physics 클래스 안에 정의 되어 있으며 Raycast를 사용하기 위해선, [1] 플레이어의 위치 / [2] 방향 / [3] RaycastHit (충돌 정보) / [4] 거리 정..
[목차] #0 코루틴(Coroutine)을 사용하는 이유 #1 코루틴 사용 예제 #1.1 코루틴 선언 IEnumerator #1.2 코루틴 실행 StartCoroutine() #2 코루틴 중지 #3 yield return VS yield break * 다음 포스팅은 개인적인 공부 내용을 기록한 글이기에, 잘못된 내용이 있을 수 있으며 지속적으로 수정해 나갈 예정입니다. #0 코루틴(Coroutine)을 사용하는 이유 유니티에서 Update() 메소드는 화면에 변화를 일으킬 때 사용 하고는 합니다. Update() 메서드는 매 프레임마다 호출이 되기에, 60fps라면 1초에 60번이 호출 됩니다. 그런데 만약 5초동안 지연을 시켜야 하는 상황이 발생 한다면 어떻게 될까요? Update() 메서드를 5 * ..
유니티에서 코루틴을 테스트 하면서 다음과 같은 오류가 발생하였다. CS1503 'System.Collections.IEnumerable' 에서 'string'(으)로 변환 할 수 없습니다. 10번째 라인을 확인해 보았는데,,, 그냥 Start() 함수에서 코루틴을 호출한 것 뿐인데 왜 오류가 발생하지 의문 이었다. StartCoroutine(Test()); 이유는 간단했다. 실수로 코루틴을 작성할 때 자동 완성이 되어서, 반환형이 IEnumerator가 아닌 IEnumerable로 선언되어 있었다. IEnumerable Test() { } 아래와 같이 IEnumerable을 IEnumerator로 바꿔주니 간단하게 해결됐다. IEnumerator Test() { }
[Unity] Time.deltaTime #1 성능에 따라 달라지는 Update() 함수 #2 Time.deltaTime *개인적인 공부 내용을 기록한 포스팅 이기에, 잘못된 내용이 있을 수 있습니다. #1 성능에 따라 달라지는 Update() 함수 Unity의 Update() 함수는 매 프레임 마다 호출 되는데, 컴퓨터의 성능에 따라서 호출하는 횟수가 달라지게 됩니다. 따라서 성능이 좋은 컴퓨터는 1초당 30프레임을 호출하는 반면 느린 컴퓨터는 30프레임보다 적게 호출하게 되어 버립니다. 아래 예시 코드를 확인해 주세요. int val = 0; void Update(){ val = val + 1; Debug.Log(val); } 위와 같이 코드를 짜 버리면 컴퓨터의 성능에 따라서 val이 출력되는 횟수..