유니티 강의를 듣는것도 좋았지만 오늘은 OX 퀴즈가 매우 좋은 기회가 되었다 강의를 들으면서 얼마나 기억하고 알고 있는가에 대해서 알 수 있었고, 잘 모르는 개념들을 다시 찾아보면서 더 자세히 알게 되었다
-왕초보 유니티로 만드는 게임개발 종합반 2,3주차
새로 배운 개념들을 포함하여 중요한 개념들을 잊어버리지 않기 위해 정리해보았다
1. Prefab
: 미리 만들어진 object를 동시에 여러개 생성하기 위해 만든 틀
2. 싱글톤화
: 하나의 인스턴스를 관리하도록 만들어 다른 클래스에서 자신의 인스턴스를 추가로 만들지 못하게 하는, 자기자신을 유일하게 만드는 것
3. Invoke, InvokeRepeating
: 함수를 딜레이 시켜주는 것 주로 Instantiate()를 가진 함수를 호출시켜 Prefab으로 만들어진 오브젝트들을 동시에 여러개 생성할 때 쓰인다
4.PlayPrefs : 앱을 껐다 켜도 데이터가 유지되는 데이터 저장 방법으로 주로 최고 점수나 랭킹시스템을 만들 때 사용한다
- 유니티 OX 퀴즈 오답정리
왕초보 유니티로 만드는 게임개발 종합반 강의를 기반으로 OX 퀴즈를 진행하였다 하면서 헷갈렸던 문제들을 정리해보았다
1.3D와 2D를 나누는 기준은 보통 축의 개수를 바탕으로 한다
그럼 2D게임에서는 Z축을 조정하는 것이 의미가 있는가?
답 : 의미있다
풀이
Z-Ordering (정렬) : 2D게임에서 여러개의 스프라이트나 오브젝트가 겹쳐지는데 Z축을 이용하여 스프라이트의 정렬 순서를 조정하면 화면에 그려지는 순서를 제어하여 특정 오브젝트가 다른 오브젝트 앞이나 뒤로 배치할 수 있다
카메라 시점 변화 : 카메라의 Z축을 변경함으로써 시점을 변화시킬 수 있다
Depth효과 : Z축을 조정하여 2D오브젝트 들에게 3D적인 시각적 효과를 부여할 수 있다.
예를 들면, 특정 오브젝트를 화면 앞쪽으로 이동시켜 크기를 키우거나 화면 뒤쪽으로 이동시켜 작아지게 함으로써 깊이 효과를 줄 수 있다
요약하자면 스프라이트의 정렬순서, 카메라 시점 변경, 오브젝트 깊이효과를 위해 Z축을 조정하는것은 의미가 있다.
이 문제를 다시 생각해보면서
왜 2D게임을 만드는데 Vector3를 사용하지? 라는 의문점이 생겨 구글링을 통해 알아보았다
답은 유니티의 내부 구조와 편의성 때문이라고 한다
유니티의 내부 구조는 3D 게임을 기반으로 하고 있어서 많은 기능들이 3D공간에 최적화 되어있어 2D게임을 만들 때도
3D공간의 개념을 일부 포함시켜서 처리하는데, 이는 특정 기능들을 재사용하거나 다른 기능과의 호환성을 유지하기
위해서 Vector3를 사용한다고 한다
2. GameObject를 생성하는 함수는 다음과 같다
Instantiate(rain,new Vector3(100,100,0), Quaternion.identity);
rain에서
void start()
{ transform.position = new Vector3(0,0,0); }
이렇게 되어있다면 rain은 (100,100,0)에서 생성되는가 ?
답 : 아니다 rain은 (0,0,0) 에서 생성된다
풀이 : rain 오브젝트가 (100,100,0) 위치에 생성되고 나면 rain의 start() 메서드에서 위치를 (0,0,0)으로 변경하기 때문이다.
'TIL' 카테고리의 다른 글
[TIL] 내일배움캠프_Unity 1일차 git,github (0) | 2023.08.07 |
---|---|
[TIL] 사전캠프 5일차 (0) | 2023.08.04 |
[TIL] 사전캠프 4일차 (0) | 2023.08.03 |
[TIL] 사전캠프 2일차 (0) | 2023.08.01 |
[TIL] 사전캠프 1일차 (0) | 2023.07.31 |