[ 멤버 ]멤버는 클래스와 구조체에서 객체의 데이터와 동작을 나타낸다. 대표적으로 다음과 같은 요소들이 있다. 이외 다른 요소들은 하단의 링크에서 확인할 수 있다.필드객체의 데이터를 저장하는 변수메서드객체가 수행할 수 있는 행동생성자객체를 처음 생성할 때 초기화하는 메서드이벤트다른 객체에게 특정 액션에 따른 알림 제공 ▼ 참고 자료https://learn.microsoft.com/ko-kr/dotnet/csharp/programming-guide/classes-and-structs/members [ 클래스 상속 ]public virtual string클래스를 상속할 때 사용되는 키워드는 virtual과 override이다.상속을 하는 부모 클래스에서 virtual 키워드가 있는 멤버는 파생 클래스에서 재..
Coding
오늘은 C#으로 던전을 떠나기 전 마을에서 무기를 구하는 콘셉트의 Txt 게임을 만들었다. [ 변수 참조하기 ]문제점public static void State(){ int gold = 1500; Console.WriteLine($"Gold: {gold} G\n");} public static void Store(){ Console.WriteLine("[보유 골드]"); Console.WriteLine("{gold} G\n"); //에러}Store 메서드에서 State 메서드에 있는 gold를 참조하고 싶은데, 계속해서 에러가 났다. 시도한 것public static void Store(){ int state = State();}객체를 생성해서 참조하려고 했지만, State 메..
[ 연산자 ]산술 연산자+, -, *, /, %간단히 말해 사칙연산을 하는 연산자이다. /, %는 자료형에 따라 쓰임새가 다른데, int에서 /는 소수점 없이 몫이 나오고 %는 나머지 값이 나온다.정수형끼리 연산을 할 때 결과값을 소수점을 포함한 실수형으로 나오게 하고 싶다면, 둘 중 하나는 실수형으로 바꿔주어야 한다. 할당 연산자+=, -=, *=, /=, %=변수에 값을 할당함과 동시에 연산을 하는 연산자이다. 단항 연산자x++: 변수값 사용 후 1을 더해줌x- -: 변수값 사용 후 1을 빼줌++x: 변수값 사용 전 1을 더해줌- -x: 변수값 사용 전 1을 빼줌 비교 연산자==, !=, >, =, 두 값이 동일한지 비교하거나, 크기를 비교한다. 논리 연산자&&: 그리고(AND)x × y*참은 1, ..
[ 문자열 처리 메서드 ]문자열 생성string str = new string('s', 7);Console.WriteLine(str);//출력결과sssssssnew 키워드를 사용해서 char 문자와 개수를 지정하면 생성할 수 있다. 분할string str = "Hello, World!";string[] split = str.Split(", ");Console.WriteLine(split[0]);Console.WriteLine(split[1]);//출력결과HelloWorld!Split()은 괄호 안의 값을 기준으로 나누는 것이다. ※ 주의할 점ⓛ 나눈 값을 할당할 변수는 대괄호를 붙여서 배열로 생성해야 한다.② 출력할 때 나눈 값들을 보고 싶다면 인덱싱을 이용해야 한다.③ 나누는 기준이 되는 문자가 1개라..
[ C# 기초 ]개념Unity에서는 C#을 사용하므로, C#에 대해 보다 정확하고 기본적인 개념을 알고 가야 한다. C#은 마이크로소프트에서 개발한 객체 지향 프로그래밍 언어이다. 자바와 구조가 비슷하고 C++의 기능을 혼합했기 때문에, 두 가지 언어를 배웠다면 C#을 좀 더 수월하게 공부할 수 있다.객체 지향 프로그램이란 프로그램을 만들 때, 데이터와 메서드를 하나의 단위로 묶은 객체들의 모임으로 구현하는 것이다. 프로그램 제작에 사용될 객체들을 만들어 놓고, 필요할 때마다 이를 가져가 조립하는 방식이다.객체 지향 프로그래밍은 이미 개발된 코드들을 재사용할 수 있어서, 개발에 드는 시간과 비용을 줄일 수 있다. 또한 수정이 필요할 때 객체 단위로 수정이 가능해 유지보수가 간편하고, 상속 기능을 이용해서..
3주 차 프로젝트에서는 게임을 제작했다. [ 기본 씬 구성 ] 카메라 화면 크기 조절 메인 씬 하이어아키에서 메인 카메라를 클릭하고 사이즈를 25로 맞춘다. 카메라에 보이는 화면이 넓어졌고, 더 많은 오브젝트를 생성할 수 있다. 오브젝트에 이미지 적용 오브젝트에 이미지를 적용하는 법은 간단하다. 오브젝트를 클릭하고 스프라이트에 이미지를 드래그 앤 드롭하면 자동으로 적용된다. 위치만 설정해 주면 되고, 크기는 이미지 크기에 맞춰서 자동으로 조절된다. 새로운 씬 생성 씬 폴더 우클릭으로 Create > Scene을 클릭하면 새로운 씬이 생성된다. 게임 시작 전 인트로 씬을 만들기 위해 StartScene으로 이름을 변경한다. MainScene과 동일하게 메인 카메라의 사이즈를 25로 맞춘다. using Un..
2주 차 프로젝트에서는 게임을 제작했다. [ 기본 씬 구성 ] Square, Circle, Text 오브젝트를 이용해서 게임 기본 씬을 구성한다. 풍선 애니메이션 색이 번갈아가면서 나타나게 하기 위해서 Balloon_Idle 애니메이션을 생성하고 Balloon 오브젝트에 드래그 앤 드롭한다. 애니메이션 창을 열어 왼쪽 상단의 녹화 버튼을 누르면, 오브젝트에 변화가 생길 때마다 변동 사항이 기록이 된다. 프레임 0에서는 맨 처음 상태가 기록이 되었고, 프레임 20에서는 연보라색으로 색상을 바꿔주었다. 프레임 40에서는 다시 흰색으로 변경하고 녹화를 종료하면, 두 가지 색상이 번갈아가면서 나타나게 된다. 왼쪽 상단의 토글을 눌러 Create New Clip으로 Balloon_Die 애니메이션을 생성한다. 녹..
[ UI ] 텍스트 UI는 User Interface의 약자로, 카메라와 상관없이 게임 화면에 계속해서 보이는 정보이다. UI는 하이어아키 빈 공간 우클릭 해서 만들 수 있다. UI > Legacy > Text를 통해 텍스트를 생성한다. 하이어아키에서 캔버스와 그 안에 텍스트가 있는 것을 볼 수 있다. 캔버스는 카메라 화면과 상관없이, 게임 화면 위에 바로 보이는 공간이다. 텍스트의 인스펙터에는 위치, 폰트 스타일, 폰트 크기, 정렬, 색상 등을 조정할 수 있다. UI에 보이게 하고 싶은 텍스트들을 복제해서 서식에 맞게 수정했다. 씬에서는 텍스트를 볼 수 있지만, 메인 카메라에서는 텍스트가 보이지 않는다. 하지만 게임 화면에서는 카메라 화면 위에 UI가 덧씌워져 텍스트가 적용된 모습을 볼 수 있다. [ ..
[ 오브젝트 물리 적용 ]중력빗물을 표현하기 위한 원 오브젝트를 생성한다. 하지만 프로젝트를 실행하면 원은 그 자리에 가만히 있고 움직이지 않는다. 따라서 오브젝트에 물리 작용을 줘야 하는데, 그중 아래로 떨어뜨리기 위해서 중력을 사용해야 한다. Rain 오브젝트에서 Add Component를 클릭하고 Rigidbody 2D를 클릭한다. Rigidbody 2D는 2차원 프로젝트에서 오브젝트에 중력을 부여하는 요소이다. 프로젝트를 실행하면 빗물이 아래로 떨어지는 것을 확인할 수 있다.하지만 빗물이 바닥을 뚫고 계속해서 아래로 떨어지는 문제가 생긴다. 이를 해결하기 위해서 빗물과 바닥이 부딪혔을 때, 빗물이 멈추고 파괴되도록 해야한다. 충돌Rain 오브젝트에 충돌을 적용시키기 위해 Add Component에..
유니티를 설치하고, 오브젝트 만들기부터 코드를 적용시켜 실행하기까지 게임 개발의 기초적인 부분을 학습했다. 프로젝트 명은 로, 하늘에서 떨어지는 빗물을 받아 점수를 모으는 게임을 만드는 것이다. 게임을 만들기 위해서는 게임이 실행될 환경이 구축되어야 한다. 2D 탬플릿의 새로운 프로젝트를 생성하고, 작업하기 쉬운 레이아웃으로 변경한 뒤 본격적인 제작에 들어갔다. ▼ 레이아웃 변경을 통한 작업 환경 구축 더보기 [ 오브젝트 ] 추가 구성 요소인 오브젝트를 추가하는 방법은 Hierarchy 창에서 우클릭 후, 2D Object > Sprites > 모양 선택을 하면 된다. 배경 화면을 만들기 위해서 네모 오브젝트를 추가했다. 추가된 오브젝트는 Inspector 창에서 다양한 속성을 부여할 수 있다. Tran..
[ 배열 생성 ] string food = "치킨"; food = "피자";//데이터 대체 → 출력결과: 피자 string food = "떡볶이";//중복 변수명 → 오류 food 변수를 생성하고 치킨을 저장했다. 여기에 추가로 데이터를 저장하고 싶어서 피자를 입력했다. 하지만 food 변수에는 치킨과 피자 둘 다 저장되는 것이 아니라, 피자가 기존의 치킨 데이터를 대체하여 피자만 저장된다. 또한 떡볶이를 추가로 저장하고 싶어서 food라는 동일한 변수명으로 변수를 새로 생성하게 되면 오류가 발생하게 된다. 이처럼 한 변수에 다양한 데이터를 저장하고 싶을 때는 배열이라는 기능을 사용한다. string[] name;//string 배열 int[] age;//int 배열 배열을 사용하려면 데이터 형식 뒤에 ..
[ for문 ] for (초기화; 조건; 변화) { 실행 내용 } 어떤 일을 여러 번 실행할 때 사용한다. 초기화는 맨 처음에 주어지는 값이고, 조건은 언제까지 for문을 작동할지 알려주는 값이고, 변화는 얼마만큼 데이터를 변화시킬지 알려주는 값이다. for문이 작동되면 초기화 값에서부터 조건을 만족하는한 계속 반복하며 데이터를 변화시킨다. for (int i = 1; i
[ 연습 문제 ] Practice 3 프로그램 실행 중에 데이터를 입력받을 수 있는 Console.ReadLine();이라는 함수를 이용하여 풀이를 진행한다. string input = Console.ReadLine(); //데이터를 입력하고 Enter를 누르면 다음으로 넘어간다 Console.WriteLine("입력받은 데이터는 " + input + " 입니다."); 캐스팅의 TryParse를 활용한다. 1번: 입력받은 데이터가 숫자인지 문자열인지 판단 입력받은 데이터가 숫자라면 숫자입니다. 메시지 출력 숫자가 아니라면 문자열입니다. 메시지 출력 답안 더보기 string input = Console.ReadLine(); int num; bool isInt = int.TryParse(input, out ..
[ if문 ] if (조건) { 실행 코드 } 조건에 일치하면 중괄호 내의 코드를 실행한다. 조건을 만족하지 않으면 실행하지 않고, 출력값도 없다. 여기에서의 조건은 계산이 맞는지를 확인하는 논리 연산(같음, 비교 등)이다. int i = 10; if (i > 5) { Console.WriteLine("i는 5보다 큽니다."); }//i는 5보다 큽니다. 위 코드에서의 i는 10으로, 5보다 크기 때문에 조건을 만족하여 i는 5보다 큽니다라는 문장을 출력했다. [ else if문 ] if (조건) { 실행 코드 } else if (조건) { 실행 코드 } if문 아래에 위치하며, 앞에서 조건을 만족하지 못했을 때 다음으로 조건을 확인한다. if문과 마찬가지로 조건을 만족하면 코드를 실행한다. if문에서 ..
[ 산술 연산 ] 사칙연산 산술 연산은 +, -, ×, ÷ 등의 연산자를 이용해 숫자들을 계산하는 것이다. + 더하기 - 빼기 * 곱하기 / 나누기 % 나머지 ++ 증가 -- 감소 더하기(+) int x = 10; int result; result = x + 5;//result = 15 빼기(-) int x = 10; int result; result = x - 5;//result = 5 곱하기(*) int x = 10; int result; result = x * 5;//result = 50 나누기(/) int x = 10; int result; result = x / 5;//result = 2 / 연산보다 * 연산이 더 빠르게 처리되므로, * 연산 사용이 더 권장된다. 나머지 int x = 10; i..
[ 자료형 ] 숫자 숫자는 크게 정수와 실수 두 가지로 나뉜다. int age = 22; int amount = 7; int level = 100; 정수는 소수점이 없는 숫자를 의미한다. 부호 상관없이 소수점이 없다면 -3, 0, 5와 같은 형태 모두 정수이다. 정수는 int 타입을 사용한다. (integer) float exp = 2053.234f; float speed = 15.5f; double length = 60.12345d; 실수는 소수점이 있는 숫자를 의미한다. 마찬가지로 부호 상관없이 소수점이 있기만 하다면 모두 실수이다. 실수는 float 타입과 double 타입을 사용한다. float 타입은 소수점 7자리까지 표현할 수 있고, double 타입은 소수점 15~16자리까지 표현할 수 있다..
[ 새 프로젝트 추가 ] 하나의 솔루션 안에서 다양한 프로젝트를 관리할 수 있다. 솔루션 탐색기에서 솔루션 'FirstProgram'에 대고 오른쪽 클릭을 하거나, 선택 후 솔루션 탐색기 창 내에서 오른쪽 클릭을 한다. 그중 추가 → 새 프로젝트를 클릭한다. 만약 다른 프로젝트가 선택되어 있다면 다른 창이 보이고, 새 프로젝트 추가 버튼을 볼 수 없다. 이후 방법은 처음 프로젝트를 만들 때와 동일하다. 콘솔 앱을 선택하고 다음을 누른다. 원하는 프로젝트 명을 입력하고 다음을 누른다. 처음 프로젝트를 만들 때와 다른 점은 솔루션의 이름을 입력하는 칸이 없다. FirstProgram 솔루션 안에 새 프로젝트를 생성하는 것이기 때문에, 파일 경로가 WorkSpace에서 끝나는 것이 아니고 FirstProgra..
[ 환경설정 ] Unity에서 지원하는 언어는 C#이므로, 먼저 C#에 대해 알아야 한다. C#을 배우기 위한 프로그램으로 Visual Studio Tools를 사용하며, 아래 사이트에서 설치할 수 있다. https://visualstudio.microsoft.com/ko/downloads/ Visual Studio Tools 다운로드 - Windows, Mac, Linux용 무료 설치 Visual Studio IDE 또는 VS Code를 무료로 다운로드하세요. Windows 또는 Mac에서 Visual Studio Professional 또는 Enterprise Edition을 사용해 보세요. visualstudio.microsoft.com 주의할 점은 Visual Studio Code(왼)가 아니라 ..