전체 글 122

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

2024 11 19 TIL

유한 상태 머신 (FSM) 에 관하여 유한상태머신은 객체를 나타낼 때 상태라는 개념으로 정리해놓은 추상적인 장치입니다. 플레이어라는 오브젝트를 플레이어의 행동이라는 개념으로 나타내기 위해기본(Idle) , 걷기(Walk), 뛰기(Run) 처럼 나누어보겠습니다.  기본 서 있는 상태에서 걷거나 뛰려고 한다면 미리 구현해둔 키를 통해 동작을 구현할 수 있습니다.이렇게 wsad로 움직이고 shift로 뛰는 것을 하는 것처럼 키 입력을 트리거 삼아 다른 상태로 넘어가는 것을유한 상태머신 으로 부를 수 있겠습니다. 사실 우린 이 상태라는 개념을 이미 사용하고 있었습니다. 애니메이션을 출력하기 위해 특정 조건(패러미터)를 설정하여 트랜지션을 연결하는 것이나인풋 시스템을 사용하여 키 입력을 통해 다음 행동으로 넘어간..

TIL 2024.11.19

2024 11 18 TIL

이번에 AI 네비게이션의 Agent를 만들어보면서 기존의 Switch Case 문은 상태가 많아질수록 복잡해지고 알아보기 힘들다고 생각되었습니다.  지금까지 쓰고 있던 것도 일종의 FSM 패턴이지만 따로 클래스로 나누어 관리하는 방법을 강의에서 보고 리팩토링 하는 작업을 해보았습니다.   일단 하루를 마치기 전 튜터님께 피드백을 받아 Switch case 문에서 처리하던 상태변경을 각각의 상태에서 자연스럽게 처리되도록 하고 새로 생성한 객체를 더 이상 생성되지 않는 로직을 짜보려합니다.   아래는 현재의 변경 로직이며 이것을 각각 상태 내부에서 ChangeState를 호출하는 식으로 변경해볼 예정입니다.  그렇다면 강의를 다시 정독하는 것이 우선 순위기에 오늘 TIL은 간단하게 마치겠습니다.ublic v..

TIL 2024.11.18

2024 11 15 TIL

팀 과제 시작 후 역할 분담의 시간을 가졌음이번 주제는 자유주제 장르는 공포  현재 맡은 역할은 Navmesh AI를 이용한 적 구현전체적으로 팀 빌딩은 마치고 폴더링 후 제네릭 싱글톤만 구현하고 변경사항을 적용시켜 기본 틀을 만들어두었다. 새로 배우거나 좀 더 확실히 알게 된 개념 1. 제네릭 싱글톤 개선점 이번에 제네릭 싱글톤을 다같이 만들면서 DontDestroyOnLoad 할 싱글톤과 아닌 싱글톤을 기능을 나누어서 하려했는데처음엔 두개의 제네릭 싱글톤 스크립트로 나누어 관리를 하려고 하였다.  그렇지만 만들고보니 비슷한 기능의 스크립트를 두개로 만들어 관리하는 것이 좋은 지에 대해 의구심이 좀 든다. 그래서 팀원분의 조언을 참고하여 두개의 싱글톤으로 구현하는 것이 아닌 상속시키는 클래스에서 커스텀..

TIL 2024.11.15

2024 11 14 TIL

과제를 수행하고 나서 못들었던 강의들을 듣고 개념을 정리해보는 TIL 파티클 시스템은 수 천 개의 작은 오브젝트를 관리하고 동작 생성 파괴를 제어하는 시스템입니다.그리고 그 작은 오브젝트들을 파티클이라고 부릅니다. 파티클 시스템의 주요 컴포넌트emitter //발사체particles //파티클animator //애니메이터renderer //랜더러 파티클 시스템의 주요 모듈MainModule(메인 모듈)//파티클의 움직이는 속도와 크기, 회전, 최대 수량 등을 정할 수 있는 모듈//값을 설정할 때 일반적인 상수말고도 Random Between Two Constant등을 이용하여 랜덤한 값을 설정해줄수도 있다.https://docs.unity3d.com/kr/2021.2/Manual/PartSysMainMo..

TIL 2024.11.14

2024 11 13 TIL

유니티에서 코드를 작성하다 전체화면에서 화면 복원이라는 글씨가 사라지지 않는 오류가 계속 발생하고 있다.초기부터 이런 오류가 있었긴한데 오늘따라 더 심해서 코드를 자꾸 가려서 집중이 안된다.어디서 나온 건지도 모르는지라 아시는 분이 계시다면 알려주시면 감사합니다. 일단 오늘 TIL은  이번 주차에 대한 스스로의 아쉬움이 남아 코드적인 부분보단 회고에 가까운 것 같습니다. 일단 개인과제에서 오브젝트 생성을 하루종일 붙들고 있던 것 같다. 오브젝트풀을 적용시키면서 오류나 깨진 프리팹 수정그리고 배치 로직을 이해하면서 진행하고있다.  스크립터블 오브젝트를 활용하여 데이터를 받아오고 적용시켜보려하는데 내가 쓰면서도 조잡한 느낌이 없지않은 것 같아 계속 건드리니 문제는 해결안되고 시간만 계속 잡아먹었던 것 같다...

TIL 2024.11.13

2024 11 12 TIL

접은 글은 스스로에 대한 개인적인 피드백을 담고 있습니다. (TMI)더보기해설 영상을 보며 과제를 진행할 때 해설 영상의 코드를 이해해보려고 시간을 많이 허비하였습니다.  잘못된 방향으로 쓰여진 코드를 해설 영상의 코드이므로 일방적으로 맞다고 생각하며  너무 맹목적으로 정보를 받아들인 것을 반성하여봅니다.. ( 다른 사람의 코드에서 리팩토링을 하는 방향성만 알려주셨기에 해당 코드의 세부적인 내용에 대해선 튜터님께서도 모르셨다) 이번 개인과제 제출이 얼마안남은 상황이고 중간에 잘못된 방향으로 시간을 많이 잡아먹어 오늘 배운 내용으로만 생각을 간략하게 정리해야할 것 같습니다. 이제라도 과제를 전부 끝마치진 못하더라도 제 방식으로 다시 생각해보며 배운 내용을 활용해 경험을 쌓는 형식으로 과제를 수행해봐야할 것..

TIL 2024.11.12

2024 11 11 TIL

JSON 을 이용해 서버의 API를 가져오는 방법의 특강을 듣다 제너릭과 익명메서드에 대한 이해가 부족하였음을 느끼고 질문을 하게되었습니다.  C# 주차 때 개념을 이해하기 어려워 놓친 부분이 많다는 것을 다시 한번 인식하고 생각을 정리해보는 시간을 가져봅니다. 제너릭에 관해서  기존에는 꺽쇠()안에 자료형을 넣은 형태로만 생각하고 있었기에 리스트와 같은 자료구조에 쓰이는 개념정도로만 생각하였습니다.그래서 특강에서 보았던 제너릭 방식에 대해서 제가 T로 선언하고 호출하는 곳에서 자료형을 사용한 방식을 제대로 이해를 못했던 것 같습니다.//내가 생각했던 개념List  일단 먼저 제너릭을 사용하였던 이유  특강에서 제너릭을 사용하였던 이유는 SavePlayerData, SaveInvenData 등 Json..

TIL 2024.11.11