091
[C#] Unity 속 C# script(1) 본문
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 등이 있음
* 일부 출처 - 고수정, ”게임프로그래밍 ”, 인덕대학교
'Programming Language > C#' 카테고리의 다른 글
[C#] Unity 속 C# script(4) (8) | 2024.10.21 |
---|---|
[C#] Unity 속 C# script(3) (3) | 2024.10.20 |
[C#] Unity 속 C# script(2) (3) | 2024.10.19 |
[C#] 기초문법(연산자,제어문) (4) | 2024.10.13 |
[C#] 기초 문법(토큰,자료형,형변환,배열) (4) | 2024.10.13 |