덱 빌딩 게임 "GOTY" 제작 중

프로그래밍

유니티-C# 공부 2일차

게임코패스 2024. 3. 5. 23:12

오늘은 유니티 공부 2일차날이다.

 

오전에는 Unity와 관련된 C#공부를 하고, 업무가 끝난 오후에는 도트 공부를 하기로 했다.

저번에도 말했듯이 나만 기술이 없는 것 같아 그렇다. 40대 때에는 백종원같은 전문가가 되어 있으면 좋겠다.

 

1일차 배움 정리

1) 최초로 배운 것은 Unity-Visual Studio와의 관계이다.

2) C#에서 사용할 수 있는 레퍼런스들과 스크립트 만들기, 스크립트를 메인카메라에 적용시켜 보기 등을 했다.

 

2일차 배움 정리

※ 핵심내용은 변수, 매서드(함수), 클래스

1) 이 3 가지는 코드를 짜는데 가장 핵심적인 것이다.

2) 변수는 특정한 수를 저장하는데 사용되는 용어이다. 예를들어

int VisionAttack = 10;

이런 방식으로 지정하면 변수이다. 여기에서 VisionAttack 이 변수 자체이고, int 나 = 등의 기호는 비주얼 스튜디오같은 프롬프트에서 제공하는 명령어 같은 것이다.

 

현실 세계로 예시를 들면 VisionAttack 이라는 변수는 내가 만든 그릇이다.

앞에 붙는 int, string 등의 문구는 C# 문법에서 정해져 있는 것으로 그릇의 용도를 표현한다. int는 숫자만, string은 문자만 담을 수 있다. 따라서

int VisionAttack = zzz;

이렇게 넣어버리면 오류가 생긴다. zzz는 숫자가 아니기 때문이다.

string VisionAttack = 1;

이렇게 넣어버리면 우리가 생각하는 숫자 1 이 아니라 '1'이라는 문자 자체로 컴퓨터가 인식한다.

정확하지는 않겠지만, 이게 내가 이해한 내용이다.

 

프로그래밍은 꼭 변수에 넣어서 만들어야 한다.

내가 게임을 만들다고 할 때, 유저의 공격력 수치를 정한다고 치자. 게임을 진행하는 동안 공격력이 오르고 내리고 변할텐데 숫자로 딱 적혀있으면 어떤 것이 공격력 숫자인지 알 수 없다. 그래서 공격력은 AttackPower라는 변수에 집어넣어두고 공격력이 변할 때마다 AttackPower가 변하는 방식으로 해야한다.

 

3) 매서드는 함수이다. 이 매서드의 개념이 어려운데, 변수들을 통해서 '기능'을 만드는 것으로 이해했다.

public int UserPower = 10;
public int WeaponPower = 5;


void AttackPower()
{
Debug.Log(UserPower + WeaponPower);
}

 

이 예시를 보면 1 번줄 2 번줄에 변수를 설정해두었다.

하나는 유저파워 = 10, 다른하나는 무기파워 = 5 이다.

 

그 아래 있는 void AttackPower가 함수이다. 이 함수는 디버그 로그를 통해서 유저파워와 어택파워를 더한 수치를 보여주기로 하는 기능을 가진다. 이걸 유니티에 적용해 실행시켜보면 10 + 5인 15가 나온다.

 

내가 기능을 가진 무언가를 만들었기 때문에 이것을 사용하고 싶으면

AttackPower();

이렇게 부르면 바로 값이 나올 것이다.

 

+) 궁금증 : 책에 있는 예제를 보면

void start()
{
	AttackPower();
}

이렇게 실행되고 있던데, 매서드는 매서드 안에서 실행될 수 있는 것인가? 스타트라는 매서드는 무조건 처음에 있어야 하는가? 역할이 무엇일까? 이건 Chat GPT를 통해 답을 들기로하자.

 

4) 마지막으로 Class 이다. 클래스는 가장 넓은 범위의 개념이다. 모든 프로그램은 클래스의 모임으로 이루어져있다. 우리가 지금까지 작성한 매서드와 변수는 한 클래스 안에서 일어난 것이다. 클래스끼리는 연결할 수 있고, 우선순위를 정할 수도 있다. 이것을 상속이라고 부르는데, 나도 자세히는 모른다. 차차 알아가자!

나도 모른다!

매서드를 설명하면서 플레이스 홀더니 뭐니 더 이야기가 있었는데, 모르겠다. 스파게티 코드를 작성하지 않기 위해서 객체화(?) 시킨다고만 이해했다.

 

오늘의 공부는 여기까지. 틀린점이 있으면 언제나 어디서나 누구든지 말해주길바란다.

 

'프로그래밍' 카테고리의 다른 글

프로그래밍 공부 진행 현황  (0) 2024.11.18
오늘부터 배운 부분 정리 시작  (4) 2024.10.23
유니티-C# 공부 5일차  (1) 2024.03.11
유니티-C# 공부 3일차  (0) 2024.03.06
유니티-C# 공부 1일차  (0) 2024.03.04