1. Singleton Template 씬을 전환시키는 역할의 클래스를 만들 예정인데, 어디서든 접근 가능하도록 Singleton으로 만들 생각입니다. https://coding-paper.tistory.com/2 Unity에서의 Singleton 1편 - 싱글턴 클래스 만들기 이 글과 이후 글에서는 싱글턴에 대한 설명보다는 Unity에서 구현해보는데 집중해보고, 문제점과 해결방법을 이야기해볼 예정입니다. 싱글턴에 대한 좀 더 상세하고 원론적인 내용이 필요하신 coding-paper.tistory.com https://coding-paper.tistory.com/3 Unity에서의 Singleton 2편 - MonoBehaviour Singleton의 문제점 이번에는 MonoBehaviour Single..
1. NavMesh Bake Unity에서 지원하는 Navigation을 써보기 위해 NaveMesh를 Bake 해보겠습니다. 우선은 NavMesh로 만들 GameObject들마다 Navigation Static을 체크해줬습니다. Navigation Static을 체크한 MeshRenderer들을 기준으로 Bake 됩니다. (저는 여러 가지 최적화를 위해 맵 관련 GameObject들 마다 Static 모두 체크해두었습니다.) 적당히 값을 설정하여 Bake 했습니다. Bake에 성공하게 되면, Scene View에서 확인 가능합니다. 2. NavMeshAgent 설정 우선은 플레이어 GameObject에 NavMeshAgent컴포넌트를 추가했습니다. 적당히 값들을 수정해줬는데, Acceleration의..
1. 캐릭터 이동 구현 https://docs.unity3d.com/Packages/com.unity.inputsystem@1.0/manual/index.html Input System | Input System | 1.0.2 Input System The Input System package implements a system to use any kind of Input Device to control your Unity content. It's intended to be a more powerful, flexible, and configurable replacement for Unity's classic Input Manager (the UnityEngine.Input cl docs.unity3d.c..
0. 프로젝트 시작하게 된 이유 이번 프로젝트를 시작하게 된 이유는 프로젝트를 2~3년씩 하다 보면 Unity관련 기능들 공부할 시간 없이 지나가는데, 이참에 공부하기 위해서 시작하게 됐어요. 메인 목표는 오픈월드 관련, URP 관련 공부이고, 그 외에도 유니티에서 지원하는 패키지들 이용해서 구현해보는 게 목표입니다. 물론 꿈꾸는 섬을 최근에 정말 재밌게 했던 것도 있고, 너무 복잡하지도 않아 개인 프로젝트로 나쁘지 않겠다 싶어서 꿈꾸는 섬 모작으로 선택하게 됐어요. 1. 프로젝트 생성 https://github.com/PieceOfPaper/Unity_LinksAwakening GitHub - PieceOfPaper/Unity_LinksAwakening: 젤다의 전설 꿈꾸는 섬 (The Legend o..
안녕하세요. 이번에는 가독성 떨어지는 코드들 보면서 빡친 것도 있고 이참에 생각하는 것들을 정리해서 적어보자 싶어서 적어보게 되었습니다. 이번 글은 제 개인적인 의견이 많이 담겨있습니다. 프로젝트 혹은 개인에 의해 많이 다를 수 있습니다. 제 글은 참고만 해주시면 감사하겠습니다. 1. 이름 관련 하지 말아야 할 것들 변수명, 함수명, 클래스명 등등 각각 많인 규칙들이 있는데, 과거에 많은 규칙들은 툴에서 지원하지 못해서 개발 편의를 위해 이름에 넣어서 사용한 것들이 많았습니다. 이번에는 이런 것들을 말하고자 하는 것은 아니고 단순히 가독성을 해치거나 협업에 방해가 되는 코드들을 소개하고 하지 말아야 할 이유를 생각해보고자 합니다. 1) 의미없는 이름 이건 두 말할 것도 없고 이유를 설명할 필요도 없다고 ..
이번에는 유니티에서 제공하는 UnityWebRequest와 Coroutine 말고 다른 스레드를 만들어서 다운로드하도록 해보겠습니다. 1. 다른 스레드를 사용하는 이유 1.1 프레임 드랍 최소화 위 스크린샷은 다른 게임에 패치 화면인데 미니게임을 진행합니다. 최근 출시되는 게임들에는 이처럼 패치 용량이 너무 많아 패치 화면에서 튜토리얼을 진행하거나 미니게임을 진행하거나 단순히 동영상을 재생시키거나 하는 게임들이 많이 늘어나고 있고 있어 패치 화면에서의 프레임드랍도 체크해야 하는 상황이 생깁니다. UnityWebRequest로 다운로드하는 동안 성능을 많이 먹거나 하지 않지만 다운로드 이후에 패치 리스트 갱신, 압축파일인 경우 압축해제, 파일 검증 등등 다른 작업들로 인해 프레임드랍이 자주 발생하게 됩니다..
이번에는 UI를 위한 정보를 가져오고 UI에 출력해보겠습니다. 원래는 이번 편이 분량이 적어서 저번 편에 같이 써볼까 했는데, 그러기엔 조금 길다 싶어서 따로 쓰게 되었습니다. 1. 패치 UI 그냥 앱스토어 들어가서 가장 상단에 있는 게임을 받아서 확인해보았습니다. (광고 아닙니다!) 패치를 받는 게임들 UI들은 대부분 이런 형식인데, 다운로드 전에는 "받아야 할 파일 크기", 다운로드 중에는 "진행도"를 보여주는 것이 일반적입니다. 제가 간단하게 UI를 구성해보았습니다. 실제 게임을 보고 제 프로젝트를 보니 초라하네요... 다운로드 전 받아야 할 파일 개수 받아야 할 파일 크기 다운로드 중 다운로드 중인 파일 진행도 전체 진행도 다운로드된 파일 개수 / 전체 파일 개수 제가 그냥 머릿속에서 "보통 이 ..
이번에는 패치 다운로드를 UnityWebRequest(구 WWW)와 Coroutine 이용하여 다운로드하도록 구현해보겠습니다. 1. 패치 파일 업로드 실제 프로젝트에서는 보통은 CDN을 사용하는데, 저의 경우에는 간단하게 테스트하기 위해서는 XAMPP를 주로 사용합니다. 저의 경우에는 GitHub 리포에 올려두고 파일의 Raw 데이터 주소를 통해서 다운로드하도록 만들어두었습니다. 개인적으롤 사용 가능한 웹서버 및 CDN이 있으시다면 사용하셔도 무방합니다. 1.1 XAMPP https://www.apachefriends.org/ XAMPP Installers and Downloads for Apache Friends What is XAMPP? XAMPP is the most popular PHP devel..