TIL 82

[멋쟁이사자처럼 부트캠프 TIL회고] 45일차 : 옵저버 패턴 + 리팩토링

옵저버 패턴 마무리  오늘 새벽까지 진행한 코드는 데이터를 전달해주는 StateMachine이 있는 코드였다. 그러나, StateMachine은 상태를 저장하고 관리하는 역할만을 하게 하는 방향으로 코드를 짤 수 있다.(그리고 이 방향이 조금 더 기능을 작게 분해하는 과정이다.)각 State들이 관찰자로 참여해 직접 CapsuleController에 들어오는 데이터를 관찰하고, 그 데이터를 기반으로 행동하게 할 것이다.  그렇게 하기 위해서는 다음과 같은 과정을 거쳐야 한다. 옵저버들을 관리할 새 Dictionary 만들기CapsuleController (subject)에 state들을 옵저버로 등록할 수 있는 함수 생성.Ontrigger와 OnReadValue에서 예외처리 변경하기각각의 State들에서..

TIL 2025.01.05

[멋쟁이사자처럼 부트캠프TIL회고] 43일차 : FSM 패턴

FSM 패턴Fineite State machine : 유한 상태 기계 객체의 상태에 따라 모션, 애니메이션 등을 달리 할 때에 사용enum /interface/ai behavior tree / hfsm / playmaker fsm(only unity asset) 등 다양한 방식이 있음 enum 방식으로 switch case로 상태를 검사하고 애니메이션을 추가함.using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.InputSystem;public enum CharacterFSMState{ Idle, Walk, Jump}public class CharacterFSM : Mono..

TIL 2025.01.03

[멋쟁이사자처럼 부트캠프TIL회고] 42일차 : 테트리스 기능 추가

이 중, 1, 2,3,6은 도전하다보면 되겠는데.. ? 라는 생각이 들어 구현을 시작했다.그러나 도중 4줄 삭제 아이템은 굳이.. ? 3번을 고쳐쓰면 되겠는데라는 생각이 들어 일단 1,2,3 번만 구현해 보기로 했다.  2번 3번은 금방 끝났다. 중간 라인이 끝나도 삭제되게 하기지금은 minY가 -1이 되었을 때, 즉 마지막 칸에 닿았을 때만 부모를 분리하고 gridBlock 배열에 넣어준다.그리고 삭제하는 로직도 minY가 -1이 되었을 때만 작동한다. 이를 바꿔주면 된다. else{ SetGridState(1); var (minX, minY, maxX, maxY) = GetGridState(); if (minY == -1) { SetGridState(0); ..

TIL 2025.01.01

[멋쟁이사자처럼 부트캠프 TIL회고] 41일차 : 테트리스

테트리스 구현하기 어제에 이어서 테트리스를 구현해보았다.지금까지 했던 코드들 중 가장 긴 코드가 될 것 같다.천천히 해석하면서 다시 볼 것이다.using System; using System.Collections; using System.Collections.Generic; using System.Linq; using AYellowpaper.SerializedCollections; using Unity.VisualScripting; using UnityEngine; using Random = UnityEngine.Random; public enum TetrominoType : byte { None, I, O, ..

TIL 2025.01.01

[멋쟁이사자처럼 부트캠프 TIL회고] 40일차 : 테트리스

오전까지는 과제 제출 시간 ~ 그래서 디자인 패턴 예습 겸 다음 영상을 보고 정리https://www.youtube.com/watch?v=J6F8plGUqv8Solid 원칙에 대해 공부함. 정리는 다른 포스트에 !   그리고 Git과 한참을 싸움, 분명 나는 gitignore에 다음 사이트에서 받아온 Unity 관련 무시할 것들을 집어넣었다.https://www.toptal.com/developers/gitignore gitignore.ioCreate useful .gitignore files for your projectwww.toptal.com근데 Push를 하려 하면 할수록 너무 용량이 크다고 안되길래 계속해서 다시 하고, 또 기록을 지우고 다시 하는 과정을 거쳤다. git rm -r --cache..

TIL 2024.12.31

[멋쟁이사자처럼 부트캠프 TIL회고] 38일차 : 폭발통 만들기

폭발물 제작  화살에 맞으면 터지는 물품인 폭발물을 제작하려고 한다. 스스로 했던 게임들의 '폭발'하는 물체들을 찾아보자면, 1. 스타크래프트 : 리버의 스캐럽, 핵 , 벌쳐의 마인, 인페스티드 테란    스타크래프트에 있는 요소들은 대부분 터지는 순간 범위로 데미지가 들어간다.     리버 같은 경우, 스플래쉬 범위에 따라 데미지가 다르게 들어간다.     마찬가지로 마인도 그렇다.2. 배틀그라운드 :  감자그라운드라고 불렸던 시절이 있었을만큼 폭발물인 수류탄의 중요성이 크다.                               엎드리거나, 거리가 멀어지면 데미지가 줄어든다. 3.  발로란트 : 레이즈의 폭발 봇, 폭발 팩, 페인트 탄, 대미 장식(궁극기)  모두 폭발 데미지가 있다.         ..

TIL 2024.12.29

[멋쟁이사자처럼 부트캠프 TIL회고] Unity 게임개발 3기 37일차

유난히도...공부가 되지 않는  Exit Button 새로운 기능을 배웠다. using System.Collections;using System.Collections.Generic;using UnityEngine;public class ExitButton : MonoBehaviour{ public void ExitGame() { #if UNITY_EDITOR UnityEditor.EditorApplication.isPlaying = false; #endif Application.Quit(); }}#로 시작하는 전처리기 지시문이다. 엄청나게 많이 쓰이지는 않는것 같다. https://learn.microsoft.com/ko-kr/dotnet/csharp..

TIL 2024.12.27

[멋쟁이사자처럼 부트캠프 TIL회고] Unity 게임개발 3기 36일차

어제는 오랜만에 푹 쉬느라 패스ㅎ.ㅎ  오늘의 목표 1. 카메라 이동2. UI 3. 배경음악과 버튼 사운드4. 버그 수정 01. 카메라 이동 MainCamera 외에 화살이 날아가는 것을 잡아줄 추가 카메라 생성 (ArrowCam)화살의 발사 시점과 재장전 시점(재생성 시점)에 각각의 카메라를 끄고 켜줌if (Input.GetKeyDown(KeyCode.Space)){ spawnAction?.Invoke(); ArrowCam.enabled = false; Maincam.enabled = true;}  void OnMouseUp(){ Maincam.enabled = false; ArrowCam.enabled = true;}  ArrowCam이 카메라를 따라가게 만들..

TIL 2024.12.26