■ 학습 개요
○ 오늘 계획
- 09:00~10:00 : 오전 회의 - 오늘 할일 정리
- 10:00~12:00 : 플레이어 UI (수분, 체온) 추가 & bar UI 실시간 반영되도록 수정
- 12:00~13:00 : 꾸준실습
- 13:00~14:00 : 점심😁
- 14:00~15:00 : 유니티 배치고사
- 15:00~16:00 : 무기 & 음식 스크립터블 오브젝트 제작
- 16:00~17:00 : 첼린지 특강
- 17:00~18:00 : 수분관리 시스템 구현
- 18:00~19:00 : 저녁😁
- 19:00~20:00 : 물 스크립터블 오브젝트 제작
- 20:00~21:00 : 오후회의 - 깃허브 팀프로젝트 병합
- 21:00~00:00 : 캐릭터 애니메이션 작업
○ 학습 회고
- UI 프리펩을 수정하며 자잘한 오류들이 있어서, 디버깅에 꽤 많은 시간을 쏟았다.
- 스크립터블 오브젝트로 음식과 물을 추가했다.
- 인터페이스 특강을 통해 추상클래스와의 용도 차이점을 확실히 알게되었다.
■ 인터페이스 특강 메모
○ 추상화
- 공통된 속성과 기능을 묶어줌
- 확장성이 장점(인터페이스 등)
○ 인터페이스
- 인터페이스는 행동에 대한 추상화 -> 다른 모듈이 들어올 수 있도록 대응해줌
- 인터페이스는 상속이란 말보단 구현이라 표현함
- 인터페이스를 구조를 계획하는데 오래걸리면 굳이 안써도 됨 -> 시간과 코드 구조 중 효율성을 따져 선택할줄 알아야 함
- 추상클래스와의 차이점
- 추상클래스 : 좀더 개념적인것. 주체가 있는 것(동물 - 댕댕이),
a is b
(사실상 동일한것에 활용)
- 인터페이스 : 행동에 대한것(move, damage),
a has b
(a가 b를 들고있다)
■ 숙련 팀플 - 트러블 슈팅
○ 이벤트 시스템
- 다른 팀원의
TestScene
에 내가 만든 Player
와 UI
프리펩을 추가했는데, UI가 제대로 작동하지 않는 오류가 있었다.
인벤토리를 켜도 마우스 입력이 제대로 이루어지지 않아서 다른 씬과 비교하며 찾아보니 EventSystem
이 없었다. 이벤트 시스템을 추가하니 정상 작동했다.
- 이벤트 시스템(Event System)이 없는 씬에 UI 프리팹을 추가하더라도 이벤트 시스템이 자동 생성되지 않기 때문에 주의가 필요함
○ 프리펩 SerializeField 변수 해제
- _UI 프리펩의 DropPosition
- Player 프리펩의 Prompt Text
- UI 프리펩을 새로 만든 후 위 사진과 같은 SerializeField 변수에 값 에 계속 Null이 뜨는 오류가 있었다. 프리펩을 하이러키 창에 올릴때마다 해제 되는건가 했는데, 그건 아니었다
- Unity에서는 SerializeField 변수로 프리팹 간 연결을 수동으로 설정해 주어야 하며, 이 연결이 자동으로 해제되거나 초기화되지 않음
- 다만, 프리팹을 인스턴스화할 때 연결된 다른 프리팹이 없거나 경로가 변경되면, Unity에서 경고 메시지가 표시될 수 있지만, 그 외에는 연결 상태가 유지됨.
프리팹 간의 연결 관계는 해당 프리팹의 인스턴스가 있는 씬이나 프리팹 상호 간의 구조가 바뀔 때 주의해서 관리해야 함
■ 매일매일 알고리즘 11일차
○ 종이 자르기 (하)
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
int solution(int M, int N) {
int sum = 0;
int minV = min(M, N);
int maxV = max(M, N);
sum += minV - 1;
sum += (maxV - 1) * minV;
return sum;
}
#include <string>
#include <vector>
using namespace std;
int solution(int M, int N) {
return M*N-1;
}
○ 피보나치 수 (중)
○ 삼각 달팽이 (상)