[Unity C#] Unity C# 기초

내발은개발내손은개발·2025년 12월 18일

표기법

public class Notation : MonoBehaviour
{
	string myName; // 카멜 표기법
    string my_name; // 스네이크 표기법
    
    string strMyName; // 헝가리안 표기법
    string s_myName; // 헝가리안 표기법
}

namespace

: 코드의 지역성 설정

#namespace 설정
namespace NamespaceExample{
}

#특정 namespace(NamespaceExample) 내부의 코드를 사용할 수 있도록 설정
using NamespaceExample

Class

: 속성(데이터)와 기능의 집합, 자유롭게 조합할 수 있는 하나의 데이터 구조체
-> 객체 지향 프로그래밍의 기초
클래스 안에 함수와 변수를 정의

class 클래스명 : MonoBehaviour{

}
class NPC : MonoBehaviour
{
	public string npcName;
    public int npcAge;

}
public class NPCManager : Monobehaviour
{
	void Start()
    {
    	NPC npc1 = new NPC();
        npc1.npcNmae = "상인";
        npc1.npcAge = 50;
        Debug.Log(npc1.npcName);
        Debug.Log(npc1.npcAge);
    }
}
상인
50

new 연산자

: 메모리 상에 공간을 확보하고 생성한 객체를 저장

Struct

: 속성(데이터)ㅣ와 기능의 집합, 자유롭게 조합할 수 있는 하나의 데이터 구조체
-> Class와 매우 비슷하지만 메모리 상에 저장하는 방식이 다름
-> 상속을 받지 못한다

public struct Car{
	float price;
    int years;
    string name;
}

Method(함수)

: 기능 처리를 위한 작업의 단위

void 함수명()
{

}

매개 변수(Parmeter), 인자(Argument)

: 함수 실행에 필요한 추가 데이터 -> 함수 실행의 재료

 void Start()
 {
 	num1 = 10;
    num2 = 5;
 	AddNumber1();
    AddNumber2(20,10); //Argument(인자)
 }
 
 //매개변수가 없는 함수
  public void AddNumber1()
 {
 	int result = num1 + num2;
    
 }
 //매개변수가 있는 함수
 public void AddNumber2(int num3, int num4) // Parmeter 매개변수값이 존재하는 함수
 {
 	int result = num3 + num4;
 }

Variable(변수)

: 데이터를 저장할 수 있는 공간

public class ExampleVariable : MonoBehaviour
{
	// 맴버 변수
	int iNum;
    float fNum;
    double bNum;
    bool isYesNo;
    char c;
    string str;
    
    void Start()
    {	// 지역 변수
    	int startNum;
        bool isStart;
    }
}

맴버 변수

  • 필드 (Field) : 클래스나 구조체 내부에 선언된 변수를 가리킴
  • 속성(Attribute) 또는 프로퍼티(Property) : 객체의 특성
  • 인스턴스 변수 (Instance Variable) : 객체가 생성될 때마다 메모리에 할당되는 변수

지역 변수

  • 로컬 변수 : 함수 내부에서 선언된 변수를 가리킴

스코프

  • 변수의 유효 범위

자료형

: 메모리에 저장되는 데이터 형식

상수

: 변하지 않는 수(불변 값) -> 변수를 상수로 설정하는 키워드

const float PI1 = 3.1415f;
readonly float PI2 = 3.1415f;

const

  • 컴파일 단계에서 값이 적용
  • int, float, string, enum 등에 적용 가능
  • 선언할 때 초기화가 필요

readonly

  • 런타임 단계에서 값이 적용
  • 모든 Type에 적용 가능
  • 반드시 초기화 필요 X
  • const보다 유연하다

접근 제한자

: 변수나 함수의 접근 권한을 설정 -> Access할 수 있는 보안 수준

private : 자신의 클래스만 접근 가능
protected : 자신의 클래스, 자신의 클래스를 상속받은 클래스만 접근 가능
public : 모든 클래스에서 접근 가능

클래스 접근

: ' . '을 찍어서 내부로 접근 가능

public class ScriptA
{
	
	public int num1 = 1; // public 맴버변수
  	int num2 = 2; // private 맴버변수
    private int num3 = 3; // private 맴버변수
    [SerializeField] private int num4 = 4; // private 맴버변수
    protected int num5 = 5; //protected 맴버변수
    
    void Start(){
    	int num6 = 6; // 지역변수
    }
}
public class ScriptB
{
	public ScriptA scriptA;
    
    void Start(){
    	scriptA.num1 = 10;
        scriptA.num2 = 10;
        scriptA.num3 = 10;
        scriptA.num4 = 10;
        scriptA.num5 = 10;
        scriptA.num6 = 10;
        
    }
}
num1 = 10만 적용

필드

: 일반적인 변수

private int num1; //private 필드 : 자신의 클래스만 접근 가능
public int num2; //public 필드 : 다른 클래스에서 접근 가능

0개의 댓글