Unity 2일차

Amberjack·2023년 11월 22일
0

Unity

목록 보기
1/44

배열

배열 생성

자료형[ ] 배열명 = new 자료형[배열 크기];

string[] games = new string[3];

//미리 선언하고 나중에 만들기
string[] games;
games = new string[3];
// 이미 정해진 배열의 크기는 고정!
int[] number = new int[3];
number[0] = 10;
Console.WriteLine(number[0]) // 10

number = new int[5];
Console.WriteLine(number[0]); // 0

데이터 저장

string[] games = new string[3];
games[0] = "League of Legends";
// 값을 선언하지 않으면 기본값으로 초기화. 값 형식 : 0, 참조 형식 : null

foreach

조건식을 쓰지 않고 해당 배열을 처음부터 끝까지 반복할 때 사용

foreach(변수타입 반복변수 in 배열)
{
	실행 내용
}
string[] Games = new string[3] {"League of Legends", "MapleStory", "Diablo"};

foreach(string game in Games){
	Console.WriteLine(game);
}

다차원 배열

2차원 배열

자료형[,] 배열명 = new 자료형[행, 열];

int [,] arr2 = new int[10, 5];

3차원 배열

자료형[,,] 배열명 = new 자료형[높이, 가로, 세로];

short[,,] arr3 = new short[8, 3, 10]; // 3 * 10 배열에 8의 높이

함수

함수 만들기

반환형식 함수이름()
{
	함수
}

void hello(){
	Console.WriteLine("Hello World!");
}

return값과 반환 형식이 일치해야 함!

매개변수

int hp = 5;

...

void Attack(){
	if(hp < 1)	return;

	--hp;
	Console.WriteLine("데미지 : 1	현재 체력 : " + hp);
}
// 데미지 : 1	현재 체력 : 4

위의 코드에서 데미지를 damage라는 변수로 작동하게 만들기

int hp = 5;

Attack(2);

void Attack(int damage){
	if(hp < 0) return;

	hp -= damage;
	Console.WriteLine("데미지 : " + damage + "	현재 체력 : " + hp);
}
// 데미지 : 2 현재 체력 : 3

OOP(객체 지향 언어)

객체?

객체(Object)는 실제 존재하는 모든 것.
객체 지향 언어에서는 클래스가 실제로 구현된 인스턴스.

ex) 클래스 → 붕어빵틀, 객체 → 붕어빵

객체 지향의 특징

캡슐화
- 데이터와 코드를 외부에서 알 수 없도록 감추는 것

추상화
- 객체들의 공통적인 특징을 추려내는 것 → 클래스를 정의하는 것

상속
- 하위 클래스가 상위 클래스의 모든 것을 활용 가능
- 클래스를 재사용하여 반복적인 코드를 줄일 수 있음

다형성
- 프로그램 언어의 각 요소(상수, 변수, 식, 오브젝트, 함수, 메서드)들이 여러 타입을 가질 수 있는 것

클래스

클래스 생성

캐릭터를 생성한다 가정해보자.

string userName1 = "Chad";
string job1 = "전사";
int level1 = 50;

string userName2 = "MelonG";
string job2 = "마법사";
int level2 = 23;

string userName3 = "Dtail";
string job3 = "도적";
int level3 = 100;

캐릭터의 수가 늘어날 수록 코드가 길어지고 반복되는 코드들이 생김
→ class를 통해 데이터들의 공통된 부분을 추상화!

클래스의 생성

클래스 영역 내에서 변수, 함수 생성 가능!
하지만 함수를 호출하는 것은 불가능하다 ▼

class Character
{
		string userName;
		string job;
		string level;

   	Console.WriteLine("제 이름은 " + userName + "입니다"); <- 실행 불가(함수 호출)
}

함수를 호출하기 위해선 함수를 만들어 그 안에서 호출해야 함 ▼

class Character
{
		string userName;
		string job;
		string level;

		public void IntroduceCharacter()  <- 함수를 만들어서 실행
		{
				Console.WriteLine("제 이름은 " + userName + "입니다");
		}
}

객체 생성

클래스를 만든다고 실행되지 않음! 사용을 위해선 객체를 생성해야 한다.

Character myCharacter = new Character(); // 객체 생성
myCharacter.userName = "chad" ; // 객체 속성 접근 시 '.' 사용
myCharacter.job = "전사"; 
myCharacter.level = 20;

myCharacter.IntroduceCharacter(); // 제 이름은 chad입니다


class Character
{
		string userName;
		string job;
		string level;

		public void IntroduceCharacter()
		{
				Console.WriteLine("제 이름은 " + userName + "입니다");
		}
}

접근 제한자

내가 작업한 클래스의 변수 및 함수를 다른 클래스에서 접근하는 것을 설정.
1. public : 외부 클래스에서 접근 가능
2. private : 외부 클래스에서 접근 불가, 보편적으로 기본값임
3. protected : 상속 관계에서만 접근 가능
4. internal : 같은 프로젝트에서 접근 가능

접근 제한자의 선언 위치

접근제한자 변수타입 변수이름

public int x;
private int y;

단축키!!

Ctrl + k 눌렀다가 Ctrl + c : 드래그한 부분 주석 처리

Ctrl + k 눌렀다가 Ctrl + u : 드래그한 부분 주석 해제

0개의 댓글