1. 옵저버 패턴
옵저버가 하나의 요소(함수, 클래스 등등)를 주시하고 그 값이 어떻게 변화하는지 확인함
변경된 값이 일정 조건이 되면 옵저버는 옵저버에게 그 값이 필요하다고 한 다른 요소나 함수들에게 값을 전달함
옵저버에게 그 값이 필요하다고 하는 것을 구독한다고 함
조건문을 달아서 값이 변경됐을 때 어떻게 작동하라는 방식이면 간단한데 왜 이런 번거로운 추가 작업을 하느냐
이런 번거로운 일을 하는 이유 : 확장성이 좋기 때문
구조가 커질수록 원하는 기능에 맞춰 조건을 달기 어려워지고 심지어 누락될 수 있음
하지만 옵저버 패턴을 사용한다면 구독만 해놓고 원하는 상황에서의 값만 변경시켜주면 되기 때문에 훨씬 간단해짐
지금 작업하는 캐릭터 움직임 구현에서는 Event 를 이용해 옵저버 패턴을 간단하게 구현해내고 있음
2. getComponent의 특징과 상속
상속받은 클래스가 같은 스크립트가 2개 이상 있을 경우, 값 수정됐을 때, 유니티 getcomponent특성상 inspector 창에서 위의 스크립트에게만 변경사항을 전달하게 됨 그래서 TopDownMovement 에서 변경된 위치방향 값이 TopDownEnemyController가 상속받은 CharacterController에게만 전달하고 TopDownContactEnemyController가 상속받은 CharacterController에선 값 변경 없음
3. git 올리고 내려받는 기본 절차
1). main 은 완전무결하게 돌아가야함(절대 오류 발생하면 안 됨)
2). branch 에 수정 사항이 있다면 이 내용이 최신이기 때문에 main으로 choose a branch to merge 또는 pull request를 하여 main을 최신화 해야함(my branch to main)
3). 그 이전에 다른 사람이 main에 내용을 추가하여 변경사항이 있을 수 있으니 main 에서 petch origin을 진행하여 본인 branch와 main의 최신화가 같은 상황인지 확인
4). main의 내용과 branch의 내용이 다르다면 main to branch 를 먼저 진행하여 branch에서 오류와 conflict를 모두 해결
5). branch to main 을 진행하여 내가 수정한 최신 내용을 main에 merge진행
345 과정을 진행하면 main은 완전한 상태를 유지하면서 내 branch에서 오류와 conflict를 처리하게됨
대충 이렇게 생각하면 될듯
choose a branch to merge -> 내가 main에 직접 merge하여 main을 수정
pull request -> main을 담당하는 사람이 있으면 그 사람에게 변경사항을 올려 main 수정해달라 요청
6). 345번의 과정은 시간을 정해 한번에 받는게 편함(주로 출근하여 merge 받고 작업 시작)
4. 카메라가 맵 범위를 넘어가지 않게 구현하고 싶은데 어떻게?
1). 카메라와 충돌하는 맵 벽 collider를 맵 내부로 만들어 캐릭터가 벽에 붙더라도 collider밖에도 맵이 존재하기 때문에 보여지는 모습으로는 문제 없이 설정 가능
2).2D 카메라의 범위를 제한(카메라를 캐릭터 따라가게 하다가 벽에 부딫히는 좌표값 이상이나 이하가 되면 그 좌표값으로 고정하도록 코드 작성
3).
'질문과답변' 카테고리의 다른 글
240201~240207 개인과제 질의응답 (0) | 2024.02.02 |
---|---|
240109 ~ 240117 텍스트 RPG 만들기 질의응답 (0) | 2024.01.17 |
231226 public 과 private 관련 (0) | 2023.12.26 |