본문 바로가기

분류 전체보기136

스파르타 내배캠 Unity 3기 - 47 위잉~ 치킨(먹고싶다) ModuleSystem(InGame Module 생성) 이전에 진행했던 심화주차 개인과제의 연장선인 ModuleSystem. 플레이어는 상체 / 하체로 구분되어있는 일명 파츠를 선택하여 플레이 가능하다. 완성이 되어야하는 구조는 위의 사진과 같지만 이번에 작업한 것은 InGame Scene에서 Module이 생성되는 것이다. 때문에 미리 만들어둔 Leg_01, Upper_01 프리팹을 이용해 Resources 폴더내의 파츠들의 정보를 끌어오고, 이를 생성하는 로직을 만들었다. public class ModuleManager 전반적인 Module 로직을 담당해줄 ModuleManager. 현재 만들어진 기능을 순서대로 나열하면 Resources 폴더 내 각 Part를 저장한다. (I.. 2024. 3. 12.
스파르타 내배캠 Unity 3기 - 46 시작해 볼까? 최종 프로젝트 2일 차 그리고 Player 로직 이번 최종 프로젝트에서 맡게 된 파트 중 메인급은 Player 로직 부분이다. 주황 표시 되어있는 모듈화가 튜터님께서 잘 다듬으면 좋은 포트폴리오 내용으로 가져갈 수 있다고 하셨다. 하지만 모듈화를 하기 전 가장 먼저 작업해야 하는 부분이 있으니 바로 플레이어의 이동과 공격이다. 그리고 이동과 공격을 생각하면서 고려해야 할 사항이 몇 개 있었다. RigidBody? CharacterController? 어느 것으로 움직임을 구현할까였는데 우리 게임의 특징에 가장 적합한 것을 골라야 했다. 대표적인 컴포넌트별 차이점은 RigidBody 오브젝트 끼리의 상호작용이 가능하다. (서로가 서로에게 물리적 힘을 가할 수 있다.) RigidBody 컴포넌.. 2024. 3. 7.
스파르타 내배캠 Unity 3기 - 45 진짜가 왔다...! 드디어 내일부터 최종 팀 프로젝트를 진행한다... 무섭구만;;; Virtual / Override 뜬금없이 버츄얼과 오버라이드 이긴한데 뭔가 너무 쉬운걸 놓치고 있던 느낌이라 생각난김에 써야겠다. 평소에는 A 라는 클래스와 A 클래스를 상속받은 Ab 클래스가 있고 Ab 클래스가 씬에 컴포넌트로 나와있는 상태에서 A 클래스를 가져와 virtual 메서드를 호출하면 Ab 클래스가 override 하더라도 A 클래스의 virtual 메서드만 호출이 되는 줄 알았다. 그림처럼 Manager 에서 Ab 클래스를 컴포넌트를 가지고있는 ab 오브젝트에게서 A 클래스를 가져와 A.Clear() 를 하면 당연히 Ab 클래스의 override 된 Clear는 실행을 안 할거라 생각했다. 실제 예시를 들.. 2024. 3. 5.
스파르타 내배캠 Unity 3기 - 44 생각해보니 n일차가 아니잖아? 글을 쓸 때 마다 n일차 라고 제목을 쓰는데 단 하루도 빠짐없이 쓴게 아니라서... 이걸 n일차라고 하는게 잘못 됐다는걸 이제서야 인지했다;; 기사단원의 무기 - 알고리즘 (C#) 이제 슬슬 알고리즘에 정성을 들여야 할 때가 다가오는 것 같다. 이제껏 알고리즘 문제 관련해서 글을 쓴 적이 아마 없던 것 같으니 쓸게 없다면 알고리즘을 완전 이해 하도록 TIL을 써야겠다. 문제의 요지는 기사단원 각 숫자의 약수의 개수를 구하고, 약수의 개수가 limit 보다 낮으면 n kg 약수의 개수가 limit 보다 높으면 limit kg 의 철의 무게를 가진다. 단순하게 생각하면 약수의 개수를 일단 구하면 되니 가장 접근하기 쉬운 방법으로 구했다. // 함수 이름은 의미없다. public.. 2024. 3. 5.
스파르타 내배캠 Unity 3기 43일차 이젠 게임보다 아트가 재밌어진다... 이제부턴 주제를 따로 정하지 않고 그날 그날 작업한 내용 중 헤맸던 부분들만 작성해야겠다. 심화주차 팀 프로젝트 - 길건너 친구들 풍 맵 생성기 MapGenerator 완성되어야 하는 모습이다. 맵 생성에는 다음과 같은 조건을 따른다. 정말 복잡하지만 세 줄 요약하면 다음과 같다 잔디는 밝은색, 탁한색 페어로 되어있고 순환 가능해 같은 종류도 생성 가능하다. 도로는 차선 표시가 있는 연속도로는 반드시 처음과 끝이 있다.(중간도 있어 중복이 된다.) 1차선 싱글 도로는 연속과 순환이 불가능해 반드시 다른 플랫폼이 와야한다. 해당 조건을 따르기 위해서 다음 세가지 클래스들을 생성하였다. public class PlatformBase : MonoBehaviour publi.. 2024. 2. 27.
스파르타 내배캠 Unity 3기 42일차 츀킨! 츀킨! 츀킨! 츀킨! UnityEngine.Object.Destroy 에 관하여... 오늘 개인프로젝트를 보강하며 알아낸 내용인데... 원인은 정확히 파악하지 못했지만 Destroy 메서드는 대충 "비동기 방식인가?" 라는 의심을 했는데 코드 내부를 살펴보다 이런 코드를 발견했다. "어... 디폴트 값이 0.0f? 그렇다면 0.0f 초라는 시간을 기다리는거라면 단 1프레임이라도 쉰다는 뜻인가???" 사실 정확한 구조는 모르겠다. 그럼 어쩌다 발견했는지를 보자. 사진을 보면 전, 후 버튼을 누르면 1. 하체 파츠가 변경이 되고 2. 변경된 높이에 맞게 상체 파츠의 좌표 수정이 일어난다. private void ChangeLowerParts(LowerBase lowerParts) { Destroy(_.. 2024. 2. 23.
스파르타 내배캠 Unity 3기 41일차 흑...ㅠ StateMachine.... 아직 글로 풀어쓰는게 어렵다... 너무 어렵다... 그래서 며칠간 좀 고민만 하다 TIL 도 못썼는데 (다른 것도 있었지만) 아무튼 오늘은 대신 개인과제에 쓰인 걸 써봐야겠다. CameraStateMachine 여기서 내가 구현하고자 한 것은 마우스 커서에 따라 3D 효과를 주는 카메라 연출과 버튼을 눌렀을 때 카메라가 돌아가 반대편 화면을 찍으며 3D 효과는 그대로 가져가는 것이다. 기본적으로 역 참조 구조인 것을 활용하였다. public class TitleSceneCameraController : MonoBehaviour public class CameraStateMachine : StateMachine public class CameraStateBase :.. 2024. 2. 23.
스파르타 내배캠 Unity 3기 40일차 뇌절금지 뇌절금지 뇌절금지 뇌절금지 슬슬 끝이 다가와서 그런 걸까? 스스로를 통제 못해가고 있는 느낌이 든다... 마음이 급한건지 이게 맞는 건지 잘 모르겠네... StateMachine & IState - 2 어제 큰 틀로 작성한 것들을 세부적으로 봐보자. InputSystem (InputAction) 이전에 했던 것들과 똑같지만 하나 다른 게 있다면 우측 인스펙터 창에서 C# Class File을 Generate 해야 한다는 것이다. Apply를 눌러 생성하면 다음과 같이 C# Class가 생성된다. PlayerInput (C# Class) : Monobehavior Player 오브젝트에 부착되는 PlayerInput 클래스는 방금 만들어준 InputAction의 C# 클래스 정보를 가지고 있다. .. 2024. 2. 19.
스파르타 내배캠 Unity 3기 39일차 주말은 왠지 아무것도 하기 싫구나~ 이제 드디어 배움의 끝인 마지막 심화주차에 들어왔다! 이번 주차 강의의 전반, 중반부는 애니메이션에 특화된 느낌인데 늘상 느끼듯 일단 판을 깔아놓고 살을 붙이는 느낌이라 이 코드가 왜 여깄지? 라는 느낌을 많이 받는다... 그 말은 이해를 못했다는 뜻이니 리마인드를 해보자. StateMachine & IState 오늘은 짧게 현재 공부한 강의 내용까지에서 사용한 대표적인 것 들을 역할별로 분리 시켜보는것만 해보자. 자세한 내용들은 마저 강의를 들으며 조각이 다 맞춰지고 쓰도록 하자. InputSystem (InputAction) - 사용자의 키 입력을 바인딩 시킨 Action. 그런데 Generate C# Class를 사용한.. PlayerInput (C# Class).. 2024. 2. 19.