전체 글

YMS Games 의 블로그입니다
· Unity/Tip
유니티는 에디터에 콘솔창에 뜨는 모든 메세지들을 로그파일에 저장하는데, 빌드된 게임의 로그도 이 로그파일에 저장된다. 이 로그파일의 경로는 윈도우 기준 아래와 같다. 아래 경로로 가기위해선 윈도우에서 숨긴폴더표시 기능을 사용해야 할 수도 있다. %USERPROFILE%\AppData\LocalLow\CompanyName\ProductName\Player.log
· Unity/Tip
가끔 어떤 오브젝트들은 오브젝트의 피벗과 중심이 다른 경우가있다. 가끔 오브젝트의 피벗위치가 아니라 중심을 얻고 싶은경우가 있는데, 이때는 아래와 같은 방법을 사용하면된다. renderer.bounds.center 위 코드는 렌더러의 바운딩 박스에서 중심을 얻어오는데 이 바운딩 박스는 오브젝트를 둘러싸고 있는 박스라고 생각하면 된다. 여기서 이 바운딩 박스의 중심은 월드스페이스상에서 중심위치를 반환한다. 따라서 바운딩 박스의 중심을 얻어온다는 것은 월드스페이스에서의 오브젝트의 중심을 얻어오는것과 같다.
· Unity/Tip
유니티로 게임을 제작하다 보면 게임이 시작되기 전에 특정 오브젝트가 씬에 로드되어 있으면 하는 순간들이 있습니. 그냥 Hierarchy창에서 미리 만들어두거나 싱글톤을 사용하는 방법도 있지만, 이 글에서는 유니티 어트리뷰트를 이용한 방법을 설명하겠습니다. 유니티는 "RuntimeInitializeOnLoadMethod" 라는 어트리뷰트를 지원하는데, 이 어트리뷰트를 가진 함수는 씬이 로드되기 전에 호출될 수 있습니다. using UnityEngine; public class BootStrapper { [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] public static void CreateNeededObjectsBe..
· Unity/Tip
🎈 해당 글은 URP를 사용할때를 기준으로 작성되었습니다. 카메라는 메인카메라와 UI카메라 두개가 필요합니다. 메인카메라는 UI를 제외한 모든 오브젝트를 그리고, UI카메라는 UI요소만을 그린다음 메인카메라화면에 UI카메라 화면을 덮어씌운다고 생각하시면 됩니다. 메인카메라 위에 UI카메라 화면을 그리기 때문에 항상 UI오브젝트가 가장 위에 그려지게 됩니다. 아래의 과정을 따라하시면 UI요소가 항상 카메라에 보이게 할 수 있습니다. 메인카메라의 카메라 컴포넌트의 Culling Mask값에서 UI레이어를 제외시켜준다. UI카메라의 Culling Mask값은 UI레임어만 체크해준다. (UI오브젝트에는 UI레이어가 할당되어있어야 합니다) UI카메라의 Render Type을 Overlay로 바꿔준다. 메인카메라의..
· Unity/Tip
유니티에서는 새로운 장면을 비동기로 로드하는 "LoadSceneAsync" 함수를 제공합니다. 이 함수는 반환값으로 "AsyncOperation" 이라는 비동기작업객체를 반환하는데 이 객체로 비동기 작업이 어디까지 진행되었는지 알 수 있습니다. 이 경우에는 새로운 장면이 얼마나 로드되었는지는 알 수 있겠죠. 필요한 코드만 하나하나 살펴봅시다. 먼저 스페이스바를 누르면 새로운 장면을 로드하는 로직을 만듭니다. private void Update() { if (Input.GetKeyUp(KeyCode.Space)) { StartCoroutine(LoadSceneCoroutine()); } } 다음은 새로운 장면을 로드하는 함수입니다. 여기서 눈 여겨볼 부분은 AsyncOperation 객채의 allowSce..
· Unity/Tip
유니티에서는 특정한 축을 기준으로 거리에따라 오브젝트를 정렬하는 기능을 제공합니다. 탑뷰형식 2D게임에서 유용하게 사용될 수 있습니다. 오브젝트를 정렬할 축을 설정하는방법은 Edit > Projecting Settings > Graphics > Transparency Sort Axis 에서 설정할 수 있습니다. Y축을 기준으로 정렬하고 싶다면 Y값에 1을 주면됩니다.
YMS Games
YMS Games