오늘 학습량 : 유튜브 강의 영상 5개
/
유튜브 골드메탈 영상 중 유니티 기초 강좌를 보았다. 재생목록에 있는 영상은 총 88개인데 영상 총 길이가 1일 20시간 46분이다.
일단 2D 개발 영상만 볼 예정이라 아마 다 보려면 반절인 24시간 정도 걸리지 않을까 싶다.
4월 3주차 목표 : 골드메탈 유니티 2D 강좌 전부 보기
유튜브 재생목록 총 길이를 알려주는 사이트: https://ytplaylist-len.sharats.dev/
코드 색상 바꾸는 사이트: https://colorscripter.com/
(아.. 근데 더보기에서 코드블럭으로 바꿀 수 있다. 이러면 들여쓰기도 완벽하게 나온다. 다음부터는 저걸 써야지)
영상 보면서 필기한 내용
유니티 Documentation, Platforms(Android Build Support, WebGL(웹에서 바로 플레이 가능)) 깔려 있는지 체크
일단 WebGL 게임으로 간단하게 만들어 보는 것도 좋을 듯? 포폴용으로 가볍게 미니게임 형식으로 만들어놓고 나중에 깃허브 블로그 다시 다듬어서 만든 게임들 올려놔도 괜찮을 듯
Hierachy(계층구조): 오브젝트를 확인하거나 만들 수 있음(왼쪽 상단)
Inspector: 선택한 오브젝트의 속성을 볼 수 있음(오른쪽)
계층구조에서 우클릭 -> 오브젝트 생성 가능(3D/2D 선택)
Q: 뷰 이동(마우스 중간 버튼 클릭 드래그로도 가능)
W: 오브젝트 이동
E: 오브젝트 회전
R: 오브젝트 크기 조절
T: 2D 또는 UI에 쓰이는 커서(오브젝트 크기 조절도 되긴 함)
Alt+우클릭: 카메라 축 이동
방향키: 카메라 자유이동
마우스 휠: 카메라 줌
<콘솔창에 메시지 띄우기>
1. 스크립트를 만든다(프로젝트창에서 우클릭, C# Script 클릭)
2. 파일을 열면 비쥬얼 스튜디오에서 편집 가능.
3. 콘솔창을 프로젝트 창 옆에 위치시킨다.(콘솔창은 프로젝트창이랑 같은 창에 다른 탭으로 존재함. 드래그&드롭으로 옮길 수 있다)
4. 아래 함수를 사용하여 출력한다.
Debug.log(): 콘솔창에 메시지 출력
5. Hierarchy 창에서 오브젝트 선택 후 열린 Inspector창에 스크립트를 드래그&드롭 해준다. 이러면 스크립트가 게임 오브젝트 안으로 들어감. (오브젝트가 스크립트를 가지고 있어야 출력이 된다.)
6. 상단의 Play 버튼을 누르면 콘솔창에 출력되는 것 확인 가능.
변수타입 예시 : int(레벨) / float(힘과 같은 수치) / string(캐릭터명) / bool(참/거짓)
C# 주석처리 : //
코드예시
<배열>
<리스트>
<연산자를 이용한 레벨 시스템>
int exp = 1500;
int level = exp/300;
int nextExp = 300 - (exp%300);
Debug.Log("다음 레벨까지 남은 경험치는?");
Debug.Log(nextExp);
//이 경우는 300을 변수로 만들고 레벨이 올라갈수록 경험치를 더 많이 얻어야하니까 계속 증가하는 식으로 설계하면 될 듯.
<string끼리 합쳐서 출력하기>
<true와 false>
ex1)
근데 isFullLevel 앞에 bool 안 붙여도 되는건가?
ex2)
ex3)
bool isBadCondition = health <= 50 && mana <= 20;
<if문 같은데 더 간단한거.. 아직도 내 머릿속의 장기기억으로 넘어가지 않은거>
? A : B //true일 때 A, false일 때 B 출력.
string condition = isBadCondition ? "나쁨" : "좋음"
<조건문 중 switch문 예시>
<foreach문>
for문의 그룹형변수 탐색 특화
ex) for문을 사용한 경우
ex) foreach문을 사용한 경우
<클래스>
유니티에서는 보통 하나의 파일에 하나의 클래스가 존재한다.
1. 새 스크립트를 만든 뒤
를 제외한 모든 것을 지운다.
스크립트 예시)
클래스를 작성하고 나면 start와 update가 있는 메인 스크립트에서 클래스를 선언한다.
Actor player = new Actor(); //인스턴스화
인스턴스: 정의된 클래스를 변수 초기화로 실체화(클래스를 변수로 만든다.)
아래와 같이 해당 클래스에 있는 변수나 함수를 사용할 수 있다.
<클래스 참조>
기존에 있는 클래스(부모)의 속성을 그대로 물려받는 새로운 클래스(자식)를 만들 수 있다. (상속관계)
예를 들면 캐릭터 클래스를 만들었는데 천사와 악마로 나눠서 만들고 싶을 때,
기본 틀은 어쨌든 '캐릭터'이므로 캐릭터 클래스를 가져온 다음 천사클래스와 악마클래스를 만드는 것이다.
어떻게 보면 기본 클래스의 코드를 복붙해서 새로 파일을 만드는 과정이랑 같은데, 그런 번거로움을 없애는 것.
이 경우 Actor 클래스를 물려받아서 Player 클래스를 만든 것이다. 플레이어를 제외한 다른 Actor는 움직이지 않으므로, 플레이어에게만 움직이는 동작을 넣고 싶다고 할 때 이런 식으로 함수를 추가할 수 있는 것이다.
그래도 전에 몇 번 찍먹했던 내용들이라 어렵지 않게 들을 수 있었다. 최대한 빠른 시일 내로 강의를 다 듣고, 4주차에는 직접 구현해보면서 진행하면 좋을 것 같다. 빨리 포트폴리오를 만들고 싶다. 질보다 일단 양으로 승부하고 싶음(물론 질도 중요하지만 지금 뭐가 없어도 너무 없어서)
'TIL > 유니티' 카테고리의 다른 글
7. 유니티_InputField (1) | 2024.04.22 |
---|---|
6. 유니티_캐릭터 선택창 만드는 법 맛보기, 코루틴 (1) | 2024.04.21 |
5. 유니티_메인화면 만들기 (0) | 2024.04.20 |
4. 유니티_오브젝트 이동, UGUI 기초 (1) | 2024.04.19 |
3. 유니티_오브젝트의 흐름과 이동, 게임 기획 초반 (0) | 2024.04.16 |