본문 바로가기
Unity & C#

[C#] 문법 정리 1

by 이재현9999 2024. 7. 12.

C#의 기본 문법을 정리한 글.

 

void Start()

'void Start()'는 주로 Unity 게임 엔진에서 사용되는 메서드로, 초기화 작업을 수행하는 데 사용된다.

이 메서드는 해당 스크립트가 활성화될 때 한 번 호출된다.

using UnityEngine;

public class MyScript : MonoBehaviour
{
    void Start()
    {
        // 초기화 코드
    }
}

 

void Update()

'void Update()'도 또한 Unity에서 사용되는 메서드로, 상속받은 클래스에서 매 프레임마다 호출되는 메서드이다.

주로 게임 로직이나 애니메이션 등을 프레임 단위로 처리하는 데 사용된다.

using UnityEngine;

public class MyScript : MonoBehaviour
{
    void Update()
    {
        // 매 프레임마다 실행되는 코드
    }
}

 

Debug.Log()

콘솔창에 메시지를 출력하는 데 사용한다.

주로 콘솔에 메시지를 출력함으로써 디버깅을 돕는 기능을 한다.

Debug.Log("Hello, Unity!");

 

자료형 Data Type

int: 32비트 정수

long: 64비트 정수

 

float: 32비트 부동 소수점 수 (정밀도: 7자리)

double: 64비트 부동 소수점 수 (정밀도: 15~16자리)

float pi = 3.14f;

float형 변수를 선언하려면 숫자 끝에 f를 붙여야 한다.

 

char: 16비트 유니코드 문자 (한 글자)

string: 유니코드 문자열 (여러 글자)

 

bool: 참 또는 거짓 값(true or false)

 

3항 연산자

int a = 5;
int b = 3;
int c = 4;
a = b > c ? 1 : 2;

물음표 앞이 참이면 앞의 값(1)을 넣고, 거짓이면 뒤의 값(2)를 넣는다.

 

null

string s = null;
string s2 = "abc";

string s3 = s ?? s2;
// s3 == "abc"

s ??= s2;
// s == "abc"

'string s3 = s ?? s2;' 의 뜻은 순서대로 null이면 넘어가고 아니면 넣는다는 뜻.

즉, s는 null이므로 넘어가고 s2는 null이 아니므로 s2가 저장될 것이다.

 

's ??= s2;'는 s의 값이 null이면 s2를 넣고 아니면 넘어간다는 뜻.

s는 null이므로 s2가 저장될 것이다.

 

switch-case

예시

        string groupName = "뉴진스";

        switch (groupName)
        {
            case "르세라핌":
                Debug.Log("르세라핌? 멤버들이 매력적이야!");
                break;
            case "뉴진스":
                Debug.Log("뉴진스는 노래가 좋아");
                break;
            case "카라":
                Debug.Log("이번에 컴백했잖아! 우주를 지배할 아이돌!");
                break;
            default:
                Debug.Log("누군지 몰라요..");
                break;
        }
        // 뉴진스는 노래가 좋아

 

while

예시

        float thickness = 0.0001f;
        int cnt = 0;

        while (thickness <= 1)
        {
            cnt++;
            thickness *= 2;

            if (thickness > 0.5f)
            {
                break;
            }
        }
        Debug.Log(cnt + "번 접었습니다.");
        // 13번 접었습니다.

C#은 파이썬과 다르게 int형과 string형이 합쳐진다.

추가로 무한반복(while true)는 웬만하면 쓰지 말자. 유니티는 무한 반복에 취약하다.

 

for

예시

for (int i = 0; i < 10; i++)
{
	Debug.Log(i);
}

 

 

배열

1차원 배열

int[] numbers = new int[5];	// 크기가 5인 정수 배열 선언

int[] moreNumbers = { 1, 2, 3, 4, 5 };	// 배열 초기화 시 값 할당

 

2차원 배열

int[,] matrix = new int[3, 3];  // 3x3 크기의 정수 배열 선언

// 배열 초기화 시 값 할당
int[,] predefinedMatrix = {
    { 1, 2, 3 },
    { 4, 5, 6 },
    { 7, 8, 9 }
};

 

3차원 배열

int[,,] threeDArray = new int[2, 2, 2];  // 2x2x2 크기의 정수 배열 선언

 

가변 배열

가변 배열은 배열의 배열로, 각 배열이 서로 다른 크기를 가질 수 있다.

// 가변 배열 선언 및 초기화
int[][] jaggedArray = new int[3][];  // 3개의 배열을 담는 가변 배열 선언
jaggedArray[0] = new int[2];  // 첫 번째 배열의 크기 2
jaggedArray[1] = new int[3];  // 두 번째 배열의 크기 3
jaggedArray[2] = new int[4];  // 세 번째 배열의 크기 4

// 배열 초기화 시 값 할당
int[][] predefinedJaggedArray = {
    new int[] { 1, 2 },
    new int[] { 3, 4, 5 },
    new int[] { 6, 7, 8, 9 }
};

 

아 그리고 vs에서

주석 달기: ctrl + k, c

주석 풀기: ctrl + k, u

'Unity & C#' 카테고리의 다른 글

[Unity] 캐릭터 이동  (0) 2024.08.02
[C#] 문법 정리 2  (4) 2024.07.23