본문 바로가기

전체 글48

유니티 C# Script에서 Null Conditional Operator C# 6.0 에서 Null 체크 연산자가 추가되었습니다. 최신 언어들에서 자주 볼 수 있는 이 연산자는 //예를 들자면 if(current == null) current = gameObject; current.Start(); //를 아래와 같이 연산 가능하도록 해줍니다. current?.Start(); IDE에서 삼항연산자나 널처리 문을 쓰면 가끔 저렇게 변환시켜주는데 유니티에서는 아직 제대로 지원이되지 않고 있습니다. 클래스나 변수의 값들을 상대로 사용할 때는 사용이 가능하지만 using UnityEngine.Object 즉, 게임오브젝트 상대로 사용하게 되면 Unssigned Reference Exception이 뜨게 됩니다. 이는 유니티에서 ?. 이나 ?? 연산자에 대한 오버로딩 처리를 안해서 그런.. 2020. 8. 4.
UnityEvent UnityEvent https://docs.unity3d.com/kr/530/ScriptReference/Events.UnityEvent.html Unity - 스크립팅 API: UnityEvent Success! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. 닫기 docs.unity3d.com 유니티 Documents에는 위와 같이 api를 제공하고 있습니다만... 사실 필자는 API문서를 봐도 .. 2020. 1. 17.
모듈 만들기 외부 모듈을 만들어야하는 경우가 있다. 예를 들어 서브 모듈로서 관리해야되는 경우라던지... 몇가지 알아야하는게 있는데 일단 서브모듈 자체를 위해서는 총 세가지 *.Build.cs, 모듈의 *.h, 모듈의 *.cpp 가 필요하다. 첫번째로 모듈의 헤더와 구현부를 정의를 해준다. 구현부에서 IMPLEMENT_GAME_MODULE을 사용한게 눈에 띄인다. 하나의 프로젝트에서 메인이 될녀석은 위가 아니라 IMPLEMENT_PRIMARY_GAME_MODULE 로 선언해주고 하나의 서브 모듈로 관리될 녀석은 위와 같이 한다. 개인적으로 .h 파일에 들어가있는 ModuleManager.h를 왜 인클루드하는가에 대한 의문을 갖고 검색해봤는데 만족스러운 답은 얻지 못했다. 판단하건데 모듈로서 관리할 수 있도록하고 모듈.. 2019. 9. 5.
로깅을 위한 공용 매크로 설정 본문에 들어가기에 앞서... 언리얼에서 문자열을 정의할 때에는 모든 플랫폼에서 2바이트 문자열을 지원하는 TEXT 매크로를 사용하는 것이 좋다고합니다. ex) TEXT("Hello world"); 또한 문자열을 관리하는 FString으로 선언된 변수에서 문자열 정보를 얻어오려면 반드시 * 연산자를 사용해야하는데 예를 들자면 FString::Printf(TEXT("Actor Name : %s "), *GetName()); 이러한 형식으로 되어야 한다는 것. 이는 언리얼 엔진만의 방식이라고 소개되어집니다. 로그 카테고리 생성하는 방법 언리얼 엔진은 로그 카테고리를 선언하기 위해 두 개의 매크로를 제공하는데, 하나는 선언부 하나는 구현부에 사용됩니다. 모듈명으로 된 헤더 파일과 소스 파일에 매크로를 각각 선언.. 2019. 8. 29.