본문 바로가기

프로그래밍/유니티11

C# 문자열 보간법 $의 활용, 소수점 올림/반올림/내림 메서드의 수행 단계에 따른 프로퍼티 상태 추적을 위해서 디버그 로그를 심어본 경험이 많을 것이다. C#에서 사용되는 문자열 다루기를 한 번 알아보자. 들어가기 앞서, 글쓴이는 유니티를 이용해서 주로 개발해서 예시는 모두 유니티에서 사용되는 UnityEngine.Debug.Log를 사용하고 있다. 유니티 엔진을 사용하지 않는다면 System.Console.WriteLine을 이용해서 로그를 출력해주면 된다. 내 정보를 출력해주는 MyInfo라는 클래스가 있다고 하자. PrintMyInfo 함수 호출을 통해 다양한 로그를 출력해보자. 1. 예전 방식 - string.Format 함수를 이용 using UnityEngine; public class MyInfo : MonoBehaviour { void Star.. 2022. 4. 3.
Visual Studio에서 Unity 디버거 연결 후 잦은 크래시 해결하기!! 유니티 개발을 하다보면 스크립트 디버깅을 하기 위해서 Visual Studio에서 Unity 디버거 연결 기능을 사용하죠. 그런데 유니티 플레이 모드에서 디버거가 붙어있을 때, 스크립트를 수정하고 저장을 하게 되면 높은 확률로 크래시가 발생합니다!! 작은 샘플 프로젝트 같은 경우에는 크래시가 나지 않지만 큰 프로젝트 같은 경우에는 거의 항상 크래시가 발생하더라구요.. 그럼 크래시가 나지 않도록 옵션을 바꿔봅시다!! 아래와 같이 Edit -> Preferences... 메뉴를 열게 되면 Preferences라는 팝업이 하나 뜹니다. 여러 설정들을 세팅하는 곳이에요. General탭에 보면 Script Changes While Playing이라는 옵션이 있습니다. 기본 값으로 Recompile And Con.. 2021. 4. 18.
Unity의 RayCast/BoxCast/SphereCast/CapsuleCast 정리 오늘은 유니티의 RayCast와 관련된 내용을 살펴보려고 합니다. RayCast는 직선 상에 가상의 빔을 쏘아서 충돌하는 Collider가 있는 지 체크하는 함수입니다. 이와 비슷한 기능으로 BoxCast, SphereCast, CapsuleCast가 있는데요, 이것도 모두 RayCast의 일종입니다. 앞에 있는 Box, Sphere, Capsule의 형태로 RayCast를 한다고 보면 됩니다. 가시적인 형태를 한 번 먼저 살펴볼까요? 왼쪽에 있는 객체에서 Ray를 쏘아 오른쪽 객체에 충돌한 상태입니다. 그럼 이렇게 충돌하는 Collider가 있는 지 체크해서 어디에 쓰냐구요? 사정 거리 내에 적이 있는 지 확인을 할 때, 내가 올라설 수 있는 바닥 혹은 객체가 있는 지, 공격을 했을 때 타격 지점(무기.. 2021. 4. 5.
유니티 커스텀 에디터 메뉴 (+정상적으로 동작하지 않는 경우) Unity의 Custom Editor Menu Command를 간단히 살펴보려고 해요. 사용법이 간단하지만 놓칠 수 있는 부분들이 있어서 짧게 정리했습니다. 우선 메뉴 생성을 위해서 메뉴를 눌렀을 때 호출될 함수의 위에 [MenuItem("경로")]를 써줍니다. 경로는 '/'로 구분해서 마지막에는 메뉴의 이름을 넣어주시면 됩니다. 아래와 같이 작성해보았습니다. using UnityEngine; using UnityEditor; public class CustomEditorMenuTest : MonoBehaviour { [MenuItem("MyMenu/Do Something")] void FunctionMenu() { Debug.Log("called FunctionMenu"); } } Method Cust.. 2021. 3. 28.