• Home
  • About
    • KKsDev photo

      KKsDev

      게임 프로그래머를 목표로 Unity, C#을 공부하고 있습니다.

    • Learn More
    • Email
    • Github
    • Steam
  • Posts
    • All Posts
    • All Tags
  • Projects

내일배움캠프 10일차 TIL

28 Jul 2023

Reading time ~1 minute

오늘 배운 내용

  1. 2D 게임 실습 -3

  2. C# Linq, IEnumerable, Generic, 박싱과 언박싱

  3. 월드공간, 로컬공간, 벡터공간, 트랜스폼

nbcbanner

2D 게임 실습 - 3

먼저 오늘 만들기로 예정된 기능을 만들었다.

  1. 고양이가 화면 밖으로 나가지 않도록한다
  2. 고양이를 랜덤으로 생성한다.

그 후 추가로 필요한 기능을 추가했다.

  1. 고양이를 클릭하면 고양이가 사라진다.

그리고 나서 게임의 규칙을 정했다.

  1. 매 라운드 마다 고양이가 라운드 수 만큼 생성된다.
  2. 고양이를 모두 잡으면 바로 다음 라운드로 넘어간다.
  3. x 라운드까지 도달하는데 걸리는 시간을 기록한다.

정리 :

2D 게임 실습 3

C# Linq, Enumerable, Generic, 박싱과 언박싱

사전캠프 조원들과 함께 코딩 테스트 문제를 풀어보면서 문제 풀이에

Linq 라이브러리가 쓰이는 경우를 자주 보게 되었고,

알아두면 편리하게 컬렉션을 관리할 수 있을꺼 같아서 공부를 해보았다.

Linq는 IEnumerable로 구현된 클래스 즉 컬렉션들을 쉽게 조작할 수 있고

컬렉션은 C# 에서 자주쓰이는 Stack, Queue, Dictionary 등의 클래스

또, 제네릭 타입인 IEnumerable<T>가 권장되는 이유를 알아보면서 박싱과 언박싱의 개념을 알 수 있었다.

그리고 마이크로소프트 공식 문서에서 유니티에서 Linq를 사용하는것을 성능 저하 때문에 권장하지 않는다는 것도 알게 되었다.

정리 :

C# Linq, Enumerable, Generic, 박싱과 언박싱

월드공간, 로컬공간, 벡터공간, 트랜스폼

어떤 메쉬로 이루어진 물체가 있다면, 물체 == 로컬공간을 의미한다.

이 로컬 공간은 안에는 메쉬 데이터가 들어있고 이 메쉬는 삼각형으로 삼각형은 세 정점으로 구성된다

점들은 점의 위치 좌표 (아핀 공간) + 이동 벡터 으로 이루어진다.

삼각형은 세 점을 아핀 조합 하여서 만들어 진다.

삼각형을 벡터의 연산을 통해서 메쉬가 된다.

즉 물체는 근본적으로는 수많은 점으로 구성되어있는데

이 모든 점은 위치 좌표와 이동벡터를 가진다.

그렇기 때문에 모든 삼각형과 그것으로 이루어진 모든 메쉬는 위치 좌표와 이동벡터를 가진다.

이 모든 벡터는 로컬 공간 내부에서의 벡터 값들이다.

결국 월드 공간에 이 로컬 공간 (물체)를 배치 했고, 프레임이 지나가서

이동 벡터의 값에 따라 로컬 공간(물체)가 바뀌었다면

월드 공간의 입장에서는 물체의 위치는 가만히 있는데 물체의 형태가 변화한 것이다.

월드 공간의 입장에서 물체의 이동은 트랜스 폼을 사용하여 발생하게 된다.

nbcthumbnail



TIL내일배움캠프스파르타 Share Tweet +1