Luna
[TIL Day 5] Unity Quset 5, 6, 7 + 기초 문법 공부 본문

오늘의 학습 키워드
오늘은 미니 프로젝트 제출도 다 되어서 따로 작업할 것이 없었기 때문에
사전캠프 때 못 했던 Unity 퀘스트를 좀 진행하였다.
Unity 퀘스트를 다 마친 후엔 아직 다 보지 못 했던 C# 기초 문법을 공부했다.
공부한 내용 본인의 언어로 정리하기
Quest5 : Unity로 만들어진 게임, 프로젝트, 서비스 조사하기
Unity를 이용해 만든 프로젝트
서비스 명 장르, 분류 제작사 명
첫 번째 프로젝트 | Monument Valley | 인디, 퍼즐 | ustwo |
두 번째 프로젝트 | DJ Max Respect V | 리듬게임 | Neowiz |
세 번째 프로젝트 | Dave the Diver | 경영 시뮬레이션 | Nexon |
네 번째 프로젝트 | 쿠키런 : 킹덤 | 소셜 RPG | Devsisters |
다섯 번째 프로젝트 | 전염병 주식회사 | 전략 시뮬레이션 | Ndemic Creations |


위 프로젝트들의 공통된 특징이 있나요?
- 그래픽이 아기자기하고 귀엽다, 간단하거나 혹은 단순하다.
- 보통은 2D가 대부분이고 도트 그래픽도 있다.
여러분이 생각하는 Unity의 강점은 뭐라고 생각하나요?
- 접근성이 좋고 호환성이 좋다 (다른 플랫폼 간에 서로 호환이 잘 된다고 생각함)
- 다른 엔진보다 다루기 쉽다
여러분은 Unity를 이용해 어떤 게임을 만들어보고 싶으신가요?
- 장르 : 타이쿤, 인디 게임
- 특징 : 도트감성 게임
- 그 이유는? : 도트 같은 레트로 느낌을 좋아하기도 하고, 픽셀 찍는 것도 공부해서 혼자 게임개발해보는 것도 재밌을 것 같다고 생각했습니다. 타이쿤이나 농장 경영, 인생 시뮬레이션, 인디게임을 만들어 보고 싶습니다.
Quest6 : 에셋 스토어 둘러보기
에셋? 그게 뭔가요?
에셋은 게임을 구성하는 소리, 캐릭터의 이미지, 음악, 그리고 아이템들과 같이 ‘게임을 이루고 있는 각각의 요소’ 입니다. 이와 같은 요소들을 적재적소에 잘 활용하고 조합하여 하나의 게임이 만들어지게 되는데요, 이 에셋은 직접 만들기도, 또 만들어진 에셋을 구입하여 사용하기도 합니다!
이번주 무료에셋

에셋 스토어 사이트모음
https://itch.io/game-assets
https://kenney.nl/assets
Quest7 : 게임의 특정 상호작용 분석해보기
🎮 플레이의 일부 그 잠깐의 순간도 개발을 위해 조금 더 자세하게 분류해본 범위와 동작 과정은 생각보다 굉장히 많고 복잡합니다.
- 스킬을 사용하여 플레이어 적중 시 (아군인지 적군인지 구분 함)
- ➡️ 적군이라면 이펙트와 함께 스킬 투사체 소멸 이후 데미지 적용, 피격 대상의 HP 감소
- ➡️ 아군이라면 관통 및 데미지 계산 X
- 플레이어의 소지 아이템, 캐릭터 레벨에 영향을 받은 능력치와 스킬의 고유 데미지 값 연산 함
- 연산된 데미지만큼 상대방의 체력이 줄어들고 스킬의 고유 효과나 부가 효과가 있다면 발동 함.
-
1. 선택한 게임의 이름?
로스트아크
2. 선택한 게임의 장르?
MMORPG
3. 선택한 게임의 어떤 시스템에 집중 하셨나요?
로스트아크의 생활 시스템
4. 해당 시스템이 동작하는 구조의 시작부터 과정을 자세하게 분석, 나열해봅시다.
- 로스트아크 생활은 (낚시, 수렵, 고고학, 벌목, 채광, 채집) 6개로 나뉨.
전체 공통 체크사항
생활의 기운(생활 할 수 있는 게이지)이 남아있는지 체크
각자 생활에 맞는 도구를 장착했는지 체크
생활도구 내구도가 0이 아닌지
도약의 정수(생활 버프 아이템)가 적용되었는지
생활에 성공했을 때 생활 도구 레벨과 생활 레벨 경험치 지급
일정 수치에 도달하면 새로운 스킬 해금, 보상 획득 확률 증가
좋은 도구(파랑 - 보라 - 노랑 - 주황) 일 수록 기본 도구 수치 옵션 + 생활 레벨 획득 수량, 보상 합연산
- 낚시 : 낚시 가능한 지역에 가서 낚시 스킬 누르기
낚시 가능한 지역인지
낚시 스킬 사용 후 언제 입질이 오게 할 것인지 (랜덤 값? 넣은 타이머? 너무 길지도 짧지도 않게)
입질 온 후 E (낚시하기 스킬)를 타이밍에 맞게 눌렀는가
누르지 못했다면 ? : 낚시 실패
눌렀다면? : 낚시 성공, 랜덤 물고기 재료 보상 드랍
따로 낚시를 완료하면 확률로 지급되는 버프 5중첩시 통발 낚시 가능 : 보상 많이 줌
- 수렵 : 수렵 가능한 동물 수렵 스킬 누르기 / 동물에 따라 1번 또는 2번에 걸쳐 때려야 수렵가능해짐
탐색 스킬이 ON되어있는지 (수렵 가능 동물 표시 스킬)
토끼 종류인지 고양이 종류인지 (토끼 수렵 1회 , 고양이면 수렵 2회)
수렵 스킬 썼을 때 수렵 도구(칼)의 범위?
범위 안의 동물이 맞았을 때?
1번 : 1번에 죽는 토끼같은 경우는 바로 갈무리 가능한 상호작용 (G키) 활성화
갈무리 후 보상 랜덤 보상 드랍
2번 : 2번에 죽는 고양이 같은 경우는 2번 맞았을 때만 상호작용 활성화
마찬가지로 갈무리 후 보상 랜덤 드랍
채집물 사이에 숨어있던 동물이었으면?
타격판정 처음에 받지 않음. 나와서 뛰어다니는 거 확인 후 수렵해야 갈무리 가능
- 고고학 : 고고학 가능한 지역에 가서 탐색 스킬 누른 후, 고고학 스킬 누르기
탐색 스킬을 켰는지 : 탐색 스킬을 켜지 않으면 고고학 불가능
고고학 가능한 범위 안의 지역에 들어갔는지 체크
범위에 가까워 질 수록 탐지기 소리, 애니메이션 변경
고고학 스킬 눌렀을 때
범위에서 벗어났을 때 : 고고학 할 수 없음, 탐색부터 다시
범위 안에 있을 때 : 고고학 2종류 중 랜덤으로 1개 띄우기
기본 고고학 : 삽으로 파는 모션, 보상 일반 랜덤
보라 고고학 : 삽으로 파는 모션, 보상 보라 랜덤 (조금 더 좋음)
고고학을 완료했을 때 낮은 확률로 보물상자 튀어나옴 : 보물상자 열어보면 보상 조금 더 많이 줌
- 벌목 : 벌목 가능한 나무에 가서 G키 누르기 / 2명이서도 가능, 2명이 되면 모션이 바뀌고 빠르게 벌목 가능
벌목 가능한 나무에 G키 누르기
혼자 눌렀을 때 : 도끼 모션 나옴. 조금 느리게 벌목됨. 랜덤 보상 지급
둘이서 눌렀을 때 : 톱질 모션으로 변경. 조금 더 빠르게 벌목됨. 랜덤 보상 지급
나무 종류 2가지
일반 나무 : 일반 랜덤 보상
보라 나무 : 보라 랜덤 보상 (조금 더 보상 좋음)
나무차기 스킬 활성화 됐을 때 : 나무 하나를 벌목 다 했을 때 확률적으로 나무차기 스킬 활성화
나무에 나무차기 스킬 쓰면 벌목 안 해도 추가로 랜덤 보상 획득 가능
- 채집 : 채집 가능한 채집물에 가서 G키 누르기 / 2번 or 3번까지 가능
채집물에 가서 G키 누르기
최소2번~3번까지 가능
등급이 좋은 채집물은 보상 더 좋음.
- 채광 : 채광 가능한 광물에 G키 누르기 / 2번 or 3번까지 가능
채광 가능한 광물에 G키 누르기
2번~3번까지 가능
가끔 뜨는 미니게임이 있음 : 미니게임 성공시 추가 보상 획득
등급 좋은 채광물은 보상이 더 좋음
5. 직접 분석해본 내용 중 가장 핵심이 되는 구성 요소는 무엇이라고 생각하나요?
생활도구를 이용해 생활할 수 있는 지역, 구역으로 가서 상호작용 키를 누르면 생활이 되고, 그에 맞는 보상을 획득하는 것이 중요하다고 생각함. 또한 랜덤으로 얻을 수 있는 보상과 낮은 확률로 더 좋은 아이템을 얻을 수 있는 시스템도 좋은 것 같음.
C# 기초 문법
변수의 생성, 규칙
변수는 사용하기 전에 미리 생성해둬야 함.
데이터를 저장한 이후에 사용가능.
변수 이름 만들기
변수 타입과 변수 이름을 다 적어야함. 둘 중 하나 불가능
한 공간에서 같은 이름의 변수는 사용 불가능
대소문자 구분가능 (웬만하면 대소문자로 구분하는 변수는 추천X, 혼동이 많이 와서 코드 읽기 힘듬)
영어, 숫자, 언더바 정도 가능 한글로도 가능한데 추천 x
연산자
더하기 : +
빼기 : -
곱하기 : *
나누기 : /
나머지 : %
증가 : ++
감소 : --

몫을 구하는 계산 : /
나미지를 구하는 계산 : %
변수에 값을 저장하지 않으면 변수 그대로 출력됨
int x = 10;
Console.WriteLine(x + 10); // 20 출력
Console.WriteLine(x); // 10 출력
변수에 저장하면 변수가 저장됨
int x = 10;
x = x + 10;
// x 는 처음에 10 이었지만
// = 를 이용해 x 에 다시 값을 다시 할당했습니다.
// 그리고 할당한 값은 x + 10
// 여기서 x 는 10 이었으므로 10 + 10 이 됩니다.
Console.WriteLine(x); // 20 출력
이처럼 일반 연산 (+, -, *, /, %)들은 다시 할당을 해야 값이 저장됨.
하지만 증감 연산자는 사용하고 다시 할당하지 않더라도 값 저장됨.
int x = 10;
x++; // x++ 를 하고 다시 x 에 할당하지 않았습니다.
Console.WriteLine(x); // 11 출력
int y = 10;
y--; // y++ 를 하고 다시 y 에 할당하지 않았습니다.
Console.WriteLine(y); // 9 출력
전위 연산 / 후위 연산
x++; ++y;
int x = 10;
Console.WriteLine(x++); // 10 출력 - ++ 를 x 뒤에 붙였기 때문에 여기까지는 아직 10입니다.
Console.WriteLine(x); // 11 출력 - 이후에는 11로 저장된 것을 볼 수 있습니다.
int y = 10;
Console.WriteLine(++y); // 11 출력 - ++ 를 x 앞에 붙였기 때문에 여기서 부터 11 로 인식합니다.
Console.WriteLine(y); // 11 출력 - 물론 이후에도 저장된 11로 남아있습니다.

(헤깔은 쫌.)
Bool
살펴봤듯이 bool (boolean) 은 단 두가지의 값을 가지는 자료형입니다.
보통 논리 연산의 결과로 얻게 됩니다.
- true
- false
비트 연산
나중에 어려운 연산을 최적화 할때 사용합니다.

if 구성
if
( 조건 ) ←
{
실행 내용
}
if(3 > 1)
{
// 조건을 만족했기에 실행합니다.
Console.WriteLine("3은 1보다 크다!");
}
if(0 > 1)
{
// 조건을 만족하지 못해서 실행되지 않습니다.
Console.WriteLine("0은 1보다 크다!");
}
else if
int x = 20;
// x가 10보다 큰지 체크했습니다. - O
if(x > 10)
{
// 조건을 맞아서 if문 안에 내용을 실행합니다.
Console.WriteLine("x는 10보다 크다!");
}
else if(x > 5)
{
Console.WriteLine("x는 10 보다는 작지만 5보다는 크다");
}
else
if(3 > 1)
{
// 조건을 맞아서 if문 안에 내용을 실행합니다.
Console.WriteLine("3은 1보다 크다!");
}
else
{
Console.WriteLine("틀렸습니다!!");
}
if, else if, else 다 같이 쓰기

switch case

변수 한개를 가지고 그 변수가 무엇인지 확인하는 조건문입니다.
if ~ else if 로 완벽하게 대체 할 수 있지만 한가지 조건을 더 정교하게 체크 할 수 있습니다.
- case 에 들어가는 조건은 고정된 상수여야 합니다.
- 1, 2, 3 : 고정된 값 O
- x > 10 : 변할수 있는 값 X
- int a 등 새로운 변수 활용 X
- case 에 들어가는 조건은 중복되면 안됩니다.
논리 연산자


for 반복문

1부터 세기 시작 ; 10까지 셀것 ; +1 씩 샙니다
for ( int i = 1 ; i <= 10 ; i++ )
{
Console.WriteLine(i); // 조건을 만족하는한 계속 반복됩니다.
}
실행결과
1
2
3
4
5
6
7
8
9
10
while

int i = 1; // 1부터 세기 시작
while(i <= 10) // 10까지 셀것
{
Console.WriteLine(i);
i++; // +1 씩 증가
}
실행결과
1
2
3
4
5
6
7
8
9
10
break
실행되면 진행되고 있던 구문들이 즉시 종료됨.
for(int i = 0 ; i < 5 ; i++) // <- 멀리 있는 for문은 계속 반복됩니다.
{
for(int j = 0 ; j < 5 ; j++) // <- break 가 걸리면 가장 가까운 for문 종료
{
if(j == 2)
{
break;
}
}
}
continue
반복문에서 해당 반복을 넘기고 싶을 때 사용
에러사항
코드 작업도 없었고 오늘은 X!
오늘의 회고
전날 밤에 늦게 자는 바람에 .. 오늘 아침이 너무너무 피곤했다. 일어나기가 힘들었다. 앉아있는 시간도 많아 허리도 아프고 .. 맨날 회고의 시작은 피곤하고 힘듦으로 말을 시작하는 것 같다. 익숙해지면 조금은 괜찮겠지. 내가 너무 늦게 자는 탓인 것 같다. 하루일과가 끝나면 아침부터 이미 저녁 9시가 넘어있기에 다른 할 일을 대충하고도 12시는 그냥 넘는다. 그러고 그냥 자면 되는 거 같지만 난 또 먹을 걸 좋아해서 그런지 뭘 먹고 소화시키고 이래저래 하다보면 3시는 기본이다. 그래서 하루가 매일 피곤한 것 같다. 너무 TMI를 적은 것 같지만 나중에 다시 보게 될 때 아 이랬었지 하면서 생각 할 것 같다.조금 더 일찍 잠을 자려고 노력해야겠다. 아니면 주말에 푹 쉬던가.. 내일은 주말이다.. !
C# 문법 공부하는 건 많이 어렵지 않았다. 이전에 C언어를 공부한 적이 있기도 했고 기본적인 것들은 많이 봐와서 그냥 훑어보는 정도로도 충분했다. 단 배열 부분부터는 좀 꼼꼼하게 보려고 그 전까지만 다 공부해놓았다. 다음주 월요일부터는 또 새로운 챕터로 들어가 문법 공부를 하게되니 주말에 제공받은 강의를 ,, 볼 수 있을 지 모르겠지만 그래도 틈틈히 공부하자 ^^!
내일 공부할 것
내일은 주말이다.. 첫 주를 위해서 푹 쉬어야겠다. ^^
만들고 싶은 게임 기획 하기 :)
'🎮 Unity_7 TIL WIL' 카테고리의 다른 글
[튜터님 피드백] + [미니프로젝트 회고] (0) | 2025.01.24 |
---|---|
WIL 주간 회고록 1주차 (0) | 2025.01.24 |
[TIL Day 4] 미니 프로젝트 , 5주차 완강! (0) | 2025.01.23 |
[TIL Day 2] 3주차, 4주차 게임 완강! (0) | 2025.01.21 |
[TIL Day 1] Git Bash 와 GitHub 익숙해지기 (0) | 2025.01.20 |