전체 글

개인프로젝트 일지

유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 9일차

유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 1일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 2일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 3일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 4일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 5일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 6일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 7일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 8일차 1. 실내 샘플 맵 간단하게 실내용 씬을 만들었습니다. 이걸 뜬금없이 만든 이유는 씬 전환 기능을 테스트할 겸, Collider Trigger로 워프 기능을 구현해보고 만들어봤습니다. 2. Collider Trigger로 워프 기능 구현 [RequireComponent(typeof(Collider))] publ..

개인프로젝트 일지

유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 8일차

유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 1일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 2일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 3일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 4일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 5일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 6일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 7일차 오늘은 따로 한 것 없이 샘플맵을 만들어봤습니다. 이걸 작업하면서 툴 관련 개선이 필요한 부분들이 보여서 몇 가지 수정했고, 영상 00:02~00:03 쯤 보시면 자연스럽게 미리 로드해주지 못하고 있는데, 이 부분은 나중에 개선을 해보도록 할게요. 다음에는 심리스 월드가 아닌 실내를 만들어보려 합니다. 실내 샘플맵을 간단하게 만들고, Trigger를 통해 워프..

개인프로젝트 일지

유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 7일차

유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 1일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 2일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 3일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 4일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 5일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 6일차 0. 오늘 계획 저번까지 심리스 맵처럼 구현을 완료하여 이번에는 샘플로 씬들을 컨셉별로 만들어보려 했는데, 제가 작업하려고 맥북을 들고 카페로 왔는데 마우스 없이 트랙패드로 하려니 정말 너무 힘들어서 다음으로 미루기로 했습니다. 월드맵으로는 사막, 초록숲, 보라숲(음산한 느낌?), 붉은숲(단풍 느낌?), 설원 정도 생각하고 있었고, 샘플용 던전 하나 정도 생각해두었습니다. 그래서 오늘은 게임 구조를 한번 정리..

개인프로젝트 일지

유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 6일차

유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 1일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 2일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 3일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 4일차 유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 5일차 1. 서브 씬 툴로 계산된 영역 보여주기 private void OnFocus() { SceneView.duringSceneGui -= OnDuringSceneGUI; SceneView.duringSceneGui += OnDuringSceneGUI; } private void OnDestroy() { SceneView.duringSceneGui -= OnDuringSceneGUI; } private void OnDuringSceneGUI(SceneView s..

개인프로젝트 일지

유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 5일차

1. SubScene 툴 만들기 저번까지 만들었던 SubSceneSetting을 설정해주기 위해 툴을 개발해볼까 합니다. public class SubSceneTool : EditorWindow { [MenuItem("Tools/SubScene Tool")] public static void Open() { var window = (SubSceneTool)EditorWindow.GetWindow(typeof(SubSceneTool), false, "SubScene Tool", true); window.Show(); } public Vector2 SubSceneScoll = Vector2.zero; private void OnGUI() { //TODO - 메인씬 설정 기능 //TODO - 서브씬 세팅 파일..

개인프로젝트 일지

유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 4일차

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..

개인프로젝트 일지

유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 3일차

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의..

개인프로젝트 일지

유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 2일차

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..

개인프로젝트 일지

유니티로 "젤다의 전설: 꿈꾸는 섬" 모작 1일차

0. 프로젝트 시작하게 된 이유 이번 프로젝트를 시작하게 된 이유는 프로젝트를 2~3년씩 하다 보면 Unity관련 기능들 공부할 시간 없이 지나가는데, 이참에 공부하기 위해서 시작하게 됐어요. 메인 목표는 오픈월드 관련, URP 관련 공부이고, 그 외에도 유니티에서 지원하는 패키지들 이용해서 구현해보는 게 목표입니다. 물론 꿈꾸는 섬을 최근에 정말 재밌게 했던 것도 있고, 너무 복잡하지도 않아 개인 프로젝트로 나쁘지 않겠다 싶어서 꿈꾸는 섬 모작으로 선택하게 됐어요. 1. 프로젝트 생성 https://github.com/PieceOfPaper/Unity_LinksAwakening GitHub - PieceOfPaper/Unity_LinksAwakening: 젤다의 전설 꿈꾸는 섬 (The Legend o..

내 생각

코드 가독성 관련 생각

안녕하세요. 이번에는 가독성 떨어지는 코드들 보면서 빡친 것도 있고 이참에 생각하는 것들을 정리해서 적어보자 싶어서 적어보게 되었습니다. 이번 글은 제 개인적인 의견이 많이 담겨있습니다. 프로젝트 혹은 개인에 의해 많이 다를 수 있습니다. 제 글은 참고만 해주시면 감사하겠습니다. 1. 이름 관련 하지 말아야 할 것들 변수명, 함수명, 클래스명 등등 각각 많인 규칙들이 있는데, 과거에 많은 규칙들은 툴에서 지원하지 못해서 개발 편의를 위해 이름에 넣어서 사용한 것들이 많았습니다. 이번에는 이런 것들을 말하고자 하는 것은 아니고 단순히 가독성을 해치거나 협업에 방해가 되는 코드들을 소개하고 하지 말아야 할 이유를 생각해보고자 합니다. 1) 의미없는 이름 이건 두 말할 것도 없고 이유를 설명할 필요도 없다고 ..