2024/11 24

2024 11 29 TIL

최종프로젝트 5일차  현재 메인 퍼즐의 기믹은 한쪽 플레이어에서만 보이는 문양에 해당하는 석상을 찾아 5개의 석상을 전부 활성화시키는 것을 목표로 한다. public class MainPuzzle : MonoBehaviour{ [Header("StatueInfo")] [SerializeField] public GameObject statuesContainer; //석상들을 자식오브젝트로 두는 게임오브젝트 [SerializeField] private Statue[] statues = new Statue[5]; //석상 5개 고정이므로 배열로 처리 [field : SerializeField] public Statue curStatue { get; private set; } = null;..

TIL 2024.11.29

2024 11 28 TIL

최종 프로젝트 4일차  본격적 프로젝트 시작전 프레임워크 세션에서 작업하셨던 싱글톤을 토대로 제네릭 싱글톤을 만들어 두었다.내용은 어제 TIL과 같다.이 싱글톤을 선택한 사유는 왠만해서 예외처리에서 벗어나는 경우가 많이 없을 것이라 생각하였기 때문이다. 브런치를 파기 전 각자 필요한 패키지들을 다시 한번 더 확인하는 과정을 거쳤고 dev를 접합점으로 두되 이름 이니셜과 기능을 토대로 각자 분기점을 새로 파서 작업하기로 약속하였다. 지금 맡은 매니저 관리와 퍼즐제작 역할을 수행하는 데 있어 진척도를 살펴보면매니저같은 경우 작업 진행도에 따라 필요성을 보고 제작을 하는 것으로 생각해서 아직 진행하지 않았다. 퍼즐의 경우 우선 게임 클리어의 기반이 되는 메인 퍼즐을 먼저 제작하고 있다.메인 퍼즐은 기획당시의 ..

TIL 2024.11.28

2024 11 27 TIL

최종 프로젝트 3일차 최종프로젝트 진행관련 접은 글더보기에셋들의 호환성 여부를 확인해보고 프로젝트를 개설하기 시작하였다.  미리 봐둔 에셋의 경우 퀄리티가 높은 쪽은 URP와 HDRP의 경우가 많았고 URP 와 HDRP만 지원하는 경우 호환성을 장담할 수가 없어 어느 한쪽으로 타협을 보아야 했다. 맵 요소로 봐둔 에셋의 경우 Built In 으로 되어 있으나특정한 기능쪽 에셋은 아니라서 URP 컨버터를 이용해 형식을 변환해보기로 하였다. 집의 인터넷이 좋지 않아 맵관련 요소들을 집어넣는 과정에서 커밋에 실패하는 상황이 발생하였는데 팀원분께서 대신 올려주신다고 하셔서 다행인 것 같다.  본격적인 프로젝트 시작 일시는 내일 오전 혹은 오후 초로 예상되며 시작전에 이번 프레임워크 세션에서 들려주신 내용을 정독..

TIL 2024.11.27

2024 11 26 TIL

최종 프로젝트 시작 2일차  어제 시작한 기획에 이어서 현재는 마인드맵에 프로젝트 기획에 있어 구현할 요소를 정리해보았다.  장르 : 동양풍 1인칭 공포게임, 2명 협력게임게임의 현재 컨셉은 대학원생이 갇혀있는 교수를 구하기 위해 귀신들을 피하며 기믹을 풀어나가는 게임이다. 멀티플레이에 대해 배워보고 싶은 팀원들이 많아 멀티플레이를 기반삼아 제작해보기로 하였고멀티플레이에 관한 지식이 매우 부족해서 계속해서 구글링이 필요해보인다. 게임의 컨셉이 동양풍이라 적당한 에셋을 찾는 것부터가 매우 어려운 상황이다. UModelerX 특강을 받았지만 세부적인 모델링에 시간을 많이 쓸수는 없으니 적당한 선에서 타협을 봐야할 것 같다.  본격적인 프로젝트 시 맡은 역할은프로젝트 내내 매니저를 관리하여 게임의 흐름을 제어..

TIL 2024.11.26

2024 11 25 TIL

아침에 멀티플레이 강의에 대해서 조금 들어보았다.  멀티플레이를 하기 위해 네트워크에 대한 기본적인 지식이 필요한 듯하다.솔직히 네트워크라는 것에 대해선 예전에 컴퓨터활용능력이나 정보처리기능사 자격증을 따려고 했을 때암기식으로 외우기만 한 것 같아 아는 것이 없다고 봐야한다. IP Address (아이피 주소) : 아이피 주소는 대중적으로도 이름은 많이 들어본 개념이다. 물론 세부적인 내용을 아는 사람은 많지 않을 것이다.   인터넷에 연결된 모든 장치들은 고유한 식별자 IP 의 주소를 가지는데 이것을 이용하여 인터넷 상에서 장치가 서로 찾고 통신을 할 수 있다고한다. IP 주소도 IPv4, IPv6 로 나뉘어 있는데  이건 간단하게 살펴본다.IPv4는 12자리로 나누어진 주소체계이다. 0~255까지를 ..

TIL 2024.11.25

2024 11 24 TIL

지금까지 프로젝트를 살펴보았을 때 나는 델리게이트와 이벤트 구독을 사용하지 않았다.  이유는 내가 개념만 알고쓰는 방법을 모르고 있기에 사용하는 것을 꺼리는 게 아닌가 싶다. 강의를 진도를 나가면서 이벤트를 어떤식으로 사용하는 지 보고 다음 팀프로젝트 때 어떤 식으로 사용할 지 구상해보는 연습이 필요할 것 같다.private void SpawnEnemyAtPositions(int posIdx){ int prefabIdx = Random.Range(0,enemyPrefabs.Count); //등록된 적 프리팹의 카운트만큼 난수를 돌린다. GameObject enemy = Instatntiate(enemyPrefabs[prefabIdx],spawnPosition[posIdx].position,Quater..

TIL 2024.11.24

2024 11 23 TIL

이번 주말엔 밀렸던 피로가 한번에 몰려온건지 하루종일 잠을 잤던 것 같다.  일어나서 저번 팀 프로젝트 때 코루틴으로 처리하였다면 좋았을 상황이 많았던 것 같아코루틴에 대해서 강의를 다시 정독해보고 정리해본다.  코루틴 Coroutine 코루틴은 하나의 작업을 여러 개의 프레임에 분산하고 싶을 때 쓰이는 개념이다. 코루틴이 쓰이는 용도 1. 수초간 지속적으로 진행되어야할 때 유니티의 프레임에서 처리하는 방식으로 작업한다면for문에 돌려놓고 중간에 진행을 멈추고 다시 되돌아오는 표현을 하기가 힘들다.(즉 진행시키는 것을 중간 중간 유예시키고 싶을 때 쓰인다.) 2.조건을 걸어주고 싶을 때만약 상대가 이번까지만 상대편이고 아군으로 들어온다거나 현실적인 초 개념이 지났을 때아군으로 전환되는 연출이 필요할 때 ..

TIL 2024.11.23

2024 11 22 TIL

최종 프로젝트를 앞두고 있는 시점 이번 주말에는 다 못들은 강의들을 살펴보고 이번 프로젝트 시작전 구체적인 기획을세워볼 예정이다.  이번 주말이 마지막으로 부족한 부분을 정비할 수 있는 시간이라 생각하며 하루종일 공부 좀 해봐야할 것 같다. TIL은 간략하게 계획만 적어보고 내일 사용할 체력을 보충하기 위해 이만 자러가봐야겠다.   목표 : 강의 내용 전체 수강 및 내용 정리 이해가 안되는 부분은 유니티 Docs, 공식 블로그 참고 결국 많이 사용해보는것이 기억에 남는다.더보기1.장르 선정  : 장르는 구체적으로 해상도와 멀티게임 여부  Built in 인지  URP 인지 구체적으로 구상한다 2.레퍼런스 확보 : 해당 장르의 시장에서 대표작들을 나열해본다.3. 공통부분 정리 : 장르들의 공통점을 찾아 핵..

TIL 2024.11.22

2024 11 21 TIL

저번에 만든 적 AI 가 아무런 전조도 없이 바로 추격 상태로 들어가는 것이 밋밋하다고 생각되었다. 사실 현실적으로 본다면 바로 추격을 하는 것이 맞겠지만 지금 적은 인간이라기 보단 괴물 컨셉이 맞기에 약간의 전조 동작을 넣어주면 재밌지 않을까 생각되었다.//코드블록에 tap이 들어가면 이상하게 바뀌는 것 같다.public class RageState : EnemyBaseState{ public RageState(EnemyStateMachine stateMachine) : base(stateMachine) { } public override void Enter() { stateMachine.butler.agent.isStopped = true; Coro..

TIL 2024.11.21

2024 11 20 TIL

AI Navigation 2.0  NavMeshSurface 컴포넌트 NavMeshSurface 컴포넌트를 사용하여 맵을 베이킹이 가능하다.NavMesh를 생성하는 기준은 크게 두가지 (Render Mesh   3DPhysicsColliderMesh) Object Collection 옵션에서는 범위를 기준으로 생성이 가능하다- ALL GameObject는 활성화된 모든 오브젝트를 타깃- Volume은 오브젝트 구분 없이 지정한 육면체 범위 안쪽으로 기준이 되는 방식- Current Object Hireacrchy  NavMeshSurface 오브젝트를 기준으로 아래에 있는 자식 오브젝트를 대상으로 잡음- NavMeshModifier Component Only  NavMeshModifier 컴포넌트를 가진..

TIL 2024.11.20