091

[C#] Unity 속 C# script(1) 본문

Programming Language/C#

[C#] Unity 속 C# script(1)

공구일 2024. 10. 14. 02:24
728x90

01. C# script

- 유니티에서 복잡한 동적 효과나 상호작용을 추가하기 위해 게임 오브젝트에 컴포넌트로서 추가되어 여러 동작을 제어함

//C# Script의 기본코드
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Gongguil : MonoBehaviour {

	// Start is called before the first frame update
    void Start()
    {
    
    }

    // Update is called once per frame
    void Update()
    {
    
    }
}

 

- using으로 적힌 세줄은 네임스페이스를 추가하는 것, namespace란 이름(식별자)의 충돌을 방지하기 위한 기능임

-> using System.Collections; : C#의 기본 네임스페이스인 System 안에 있는 Collections을 사용하겠다는 의미

-> using System.Collections.Generic; : C#의 기본 네임스페이스인 System 안에 있는 Collections 안에 있는 Generic을 사용하겠다는 의미

-> using UnityEngine; : 유니티 엔진의 모든 기능을 사용하기 위한 네임스페이스 선언

* 제네릭(Generic) : 특정한 데이터 타입에 의존하지 않고 다양한 데이터 타입에서 재사용 가능한 컬렉션 클래스와 자료 구조를 제공한다는 의미

* 도트 연산자(Dot operator) : 네임스페이스, 클래스, 객체, 필드, 메서드 등 이름을 연결하는 역할, 구조적이고 계층적인 참조가 가능

 

- public class Gongguil : MonoBehaviour은 크게 보면 클래스를 선언해주는 것임

-> 접근 제어자(Acess Modifiers) : 접근 범위를 제어하는 키워드, 코드의 가시성을 제어하며 캡슐화하는데 유용하게 사용됨

종류 개념
public 어디서나 접근 가능, 다른 어셈블리에서도 접근 가능
private 선언된 클래나 구조체 내부에서만 접근 가능
protected 해당 클래스와 이를 상속받은 자식 클래스에서만 접근 가능
internal 같은 어셈블리 내에서만 접근 가능. 다른 어셈블리에서는 접근 불가
protected internal 같은 어셈블리 또는 다른 어셈블리의 자식 클래스에서 접근 가능
private protected 같은 어셈블리 내에서만 접근 가능하고, 상속받은 자식 클래스만 접근 가능
file 같은 파일 내에서만 접근 가능, 다른 파일에서는 접근 불가

* 어셈블리란 배포 및 실행 단위로, .exe(실행파일) 또는 .dll(동적 링크 라이브러리) 형식으로 생성됨

-> class Gongguil을 만들겠다는 의미로 Gongguil과 유니티 C# Script 이름이 같아야하므로 스크립트 이름 변경 시 클래스 이름도 같이 변경해줘야함

-> : MonoBehaviour은 MonoBehaviour를 상속받는 다는 의미로 MonoBehaviour클래스는 유니티 엔진 네임스페이스에 포함돼있음

 

- void Start()이나 void Update()는 부모 클래스로부터 상속 받은 메소드를 자식 클래스 안에서 따로 선언 없이 사용하는 것임

 

02. Unity에서 알아야하는 키워드

- GameObject : 유니티에서 모든 오브젝트의 기본 단위로 눈에 보이거나 보이지 않는 모든 요소는 GameObject 기반으로 생성됨

-> 동작과 속성을 부여하는 기본적인 단위인 컴포넌트의 집합으로 구성돼있다고 볼 수 있음( inspector 창에 떠있는 것들도 다 component로 메인 카메라가 카메라 역할을 할 수 있는 것도 카메라 컴포넌트가 있기 때문임 )

- Component : 동작과 속성을 부여하는 기본적인 단위, 주요 컴포넌트로는 Transform, Rigidbody, Collider, Script 등이 있음

 

* 일부 출처 - 고수정, ”게임프로그래밍 ”, 인덕대학교

728x90