Unity 강의 정리 3장: C# 프로그래밍 : 기본🎮

나무에물주기·2023년 8월 13일
1

Unity

목록 보기
3/21
post-thumbnail

인프런에 있는 레트로의 유니티 C# 게임 프로그래밍 에센스 강의를 듣고 정리하는 글입니다!

변수와 함수의 이해 🧮

변수와 함수는 프로그래밍의 핵심 요소로, 데이터를 저장하고 조작하는 데 사용된다.

변수

변수는 데이터를 저장하는 메모리의 위치로, 다양한 타입의 값을 보관할 수 있다.

C# 기본 변수
int myInt = 42;            // 정수
float myFloat = 3.14f;     // 부동 소수점 수
double myDouble = 2.71828; // 더블 정밀도 부동 소수점 수
char myChar = 'A';         // 문자
bool myBool = true;        // 부울린 (참/거짓)
var 키워드

var 키워드는 변수의 타입을 컴파일러가 자동으로 결정하게 해준다.

var myNumber = 10; // int로 추론됨
var myText = "Hello World!"; // string으로 추론됨

함수

함수는 특정 작업을 수행하는 코드 블록이다. 입력 매개 변수를 받고, 필요에 따라 값을 반환할 수 있다.

함수 예시

void PrintMessage(string message) {
    Console.WriteLine(message);
}

int Add(int a, int b) {
    return a + b;
}

콘솔 출력과 C# 기본 변수 🖨️

콘솔 출력은 프로그램의 실행 결과를 화면에 표시하는 데 사용된다.

Debug.Log("Welcome to C# Programming!");

변수 사용 예시

int age = 25;
float height = 5.9f;
string name = "Alice";

Debug.Log("Name: " + name);
Debug.Log("Age: " + age);
Debug.Log("Height: " + height + " feet");


사칙 연산과 복합 연산자 🧮

C#에서는 기본적인 사칙 연산과 함께 복합 연산자를 사용할 수 있다.

사칙 연산

int a = 10;
int b = 20;

int addition = a + b; // 덧셈
int subtraction = a - b; // 뺄셈
int multiplication = a * b; // 곱셈
int division = b / a; // 나눗셈

복합 연산자

복합 연산자는 연산과 할당을 동시에 수행한다.

int c = 5;
c += 3; // c = c + 3;와 동일
c *= 2; // c = c * 2;와 동일

함수와 스코프, 형변환 🔄

함수는 특정 작업을 수행하는 코드 블록이며, 스코프는 변수의 접근 범위를 정의한다. 형변환은 한 자료형을 다른 자료형으로 변환한다.

  • 함수
// 매개변수가 있는 함수
void PrintName(string name) {
    Debug.log("Your name is " + name);
}
  • 스코프
void MyFunction() {
    int x = 10; // 지역 변수, 이 함수 내에서만 접근 가능
}

int y = 20; // 전역 변수, 프로그램 전체에서 접근 가능

형변환

C#에서는 명시적 및 암시적 형변환이 가능하다.

// 암시적 형변환
int myInt = 9;
double myDouble = myInt; // 자동으로 double로 변환

// 명시적 형변환
double myDouble2 = 9.78;
int myInt2 = (int) myDouble2; // double에서 int로 변환

조건문과 분기문 🌳

조건문과 분기문은 프로그램의 흐름을 제어하며, 특정 조건을 만족할 때만 코드 블록을 실행한다.

if 문

if문은 주어진 조건이 참인지 거짓인지 평가하고, 참일 경우 해당 블록을 실행한다.

int age = 18;
if (age >= 18) {
    Debug.log("You are an adult.");
} else {
    Debug.log("You are a minor.");
}

else if 문

else if는 추가 조건을 제공하여 여러 조건을 체크한다.

int score = 85;
if (score >= 90) {
    Debug.log("A grade");
} else if (score >= 80) {
    Debug.log("B grade");
} else {
    Debug.log("Below B grade");
}

switch 문

switch 문은 변수가 특정 값과 일치할 때 여러 코드 블록 중 하나를 실행한다.

char grade = 'B';
switch (grade) {
    case 'A':
        Debug.log("Excellent!");
        break;
    case 'B':
        Debug.log("Good!");
        break;
    default:
        Debug.log("Keep trying!");
        break;
}

반복문, 배열 🔄

반복문은 동일한 작업을 여러 번 반복하며, 배열은 동일한 자료형의 여러 변수를 저장한다.

for 문

for 문은 초기식, 조건식, 반복 후 작업을 사용하여 코드 블록을 반복 실행한다.

for (int i = 0; i < 5; i++) {
    Debug.log(i);
}

while 문

while 문은 조건이 참인 동안 코드 블록을 반복한다.

int j = 0;
while (j < 5) {
    Debug.log(j);
    j++;
}

foreach 문

foreach 문은 컬렉션의 각 요소에 대해 코드 블록을 실행한다.

int[] numbers = {10, 20, 30, 40, 50};
foreach (int number in numbers) {
    Debug.log(number);
}

배열

배열은 동일한 유형의 여러 값들을 저장하는 구조이다.

string[] fruits = {"apple", "banana", "cherry"};
Debug.log(fruits[0]); // Output: apple

배열은 일반적으로 반복문과 함께 사용되어, 여러 개의 값을 순차적으로 처리한다. 이를 통해 코드의 효율성과 재사용성이 향상된다.


클래스와 오브젝트 🏛️

클래스와 오브젝트는 객체 지향 프로그래밍의 중심 개념이며, 유니티에서도 중요하게 사용된다.

클래스 (Class)

클래스는 객체를 생성하기 위한 틀 또는 설계도다. 변수와 메서드를 포함하여 객체의 속성과 동작을 정의한다.

클래스 정의

클래스는 class 키워드로 정의하며, 변수와 메서드를 포함할 수 있다.

public class Car {
    public string model;
    public int speed;

    public void Accelerate() {
        speed += 10;
    }
}

클래스 상속

클래스 상속은 기존 클래스의 속성과 메서드를 새로운 클래스에 물려주는 메커니즘이다. 유니티에서는 MonoBehaviour 클래스를 상속받아 사용한다.

public class Player : MonoBehaviour {
    // Player 코드
}

오브젝트 (Object)

오브젝트는 클래스에서 정의된 구조를 바탕으로 실체화된 것이다. 클래스의 인스턴스라고도 한다.

오브젝트 생성

new 키워드를 사용하여 클래스의 인스턴스를 생성한다.

Car myCar = new Car();
myCar.model = "Toyota";
myCar.Accelerate();

유니티에서의 오브젝트

유니티에서 오브젝트는 게임 오브젝트, 컴포넌트, 애셋 등을 포함하며, 모든 오브젝트는 UnityEngine.Object 클래스에서 파생된다.

GameObject player = new GameObject("Player");

클래스와 오브젝트의 중요성

클래스와 오브젝트는 코드의 재사용성, 확장성 및 유지보수를 증진한다. 유니티에서는 게임 구성 요소를 효과적으로 관리하고 다루기 위해 이러한 개념이 광범위하게 사용된다.

컴포넌트와 스크립트

유니티에서 클래스는 컴포넌트와 스크립트로 사용된다. 컴포넌트는 게임 오브젝트에 추가되어 동작을 제어하며, 스크립트는 게임 로직을 정의하는데 사용된다.

public class PlayerMovement : MonoBehaviour {
    public float speed = 5.0f;

    void Update() {
        // Move the player
    }
}
profile
개인 공부를 정리함니다

0개의 댓글