오늘 배운 내용
-
2D 게임 실습 -3
-
C# Linq, IEnumerable, Generic, 박싱과 언박싱
-
월드공간, 로컬공간, 벡터공간, 트랜스폼
2D 게임 실습 - 3
먼저 오늘 만들기로 예정된 기능을 만들었다.
- 고양이가 화면 밖으로 나가지 않도록한다
- 고양이를 랜덤으로 생성한다.
그 후 추가로 필요한 기능을 추가했다.
- 고양이를 클릭하면 고양이가 사라진다.
그리고 나서 게임의 규칙을 정했다.
- 매 라운드 마다 고양이가 라운드 수 만큼 생성된다.
- 고양이를 모두 잡으면 바로 다음 라운드로 넘어간다.
- x 라운드까지 도달하는데 걸리는 시간을 기록한다.
정리 :
C# Linq, Enumerable, Generic, 박싱과 언박싱
사전캠프 조원들과 함께 코딩 테스트 문제를 풀어보면서 문제 풀이에
Linq 라이브러리
가 쓰이는 경우를 자주 보게 되었고,
알아두면 편리하게 컬렉션을 관리할 수 있을꺼 같아서 공부를 해보았다.
Linq는 IEnumerable로 구현된 클래스 즉 컬렉션들을 쉽게 조작
할 수 있고
컬렉션은 C# 에서 자주쓰이는 Stack, Queue, Dictionary 등의 클래스
또, 제네릭 타입인 IEnumerable<T>가 권장
되는 이유를 알아보면서 박싱과 언박싱
의 개념을 알 수 있었다.
그리고 마이크로소프트 공식 문서에서 유니티에서 Linq를 사용하는것을 성능 저하 때문에 권장하지 않는다
는 것도 알게 되었다.
정리 :
C# Linq, Enumerable, Generic, 박싱과 언박싱
월드공간, 로컬공간, 벡터공간, 트랜스폼
어떤 메쉬로 이루어진 물체가 있다면, 물체 == 로컬공간을 의미한다.
이 로컬 공간
은 안에는 메쉬 데이터가 들어있고 이 메쉬는 삼각형으로 삼각형은 세 정점으로 구성된다
점들은 점의 위치 좌표 (아핀 공간)
+ 이동 벡터
으로 이루어진다.
삼각형은 세 점을 아핀 조합 하여서 만들어 진다.
삼각형을 벡터의 연산을 통해서 메쉬가 된다.
즉 물체
는 근본적으로는 수많은 점으로 구성되어있는데
이 모든 점은 위치 좌표와 이동벡터를 가진다.
그렇기 때문에 모든 삼각형과 그것으로 이루어진 모든 메쉬는 위치 좌표와 이동벡터를 가진다.
이 모든 벡터는 로컬 공간 내부
에서의 벡터 값들이다.
결국 월드 공간에 이 로컬 공간 (물체)를 배치 했고, 프레임이 지나가서
이동 벡터
의 값에 따라 로컬 공간(물체)가 바뀌었다면
월드 공간의 입장에서는 물체
의 위치는 가만히 있는데 물체의 형태가 변화
한 것이다.
월드 공간의 입장에서 물체
의 이동은 트랜스 폼
을 사용하여 발생하게 된다.