유니티와 C#
- 유니티게임개발/기초공부
- 2023. 9. 8.
유니티와 C#
유니티(unity)는 마이크로소프트의 C# 프로그래밍 언어를 지원합니다(자바도 지원하지만 한계가있습니다)
Unity에서 게임 오브젝트의 동작을 제어하고 상호작용을 구현하기 위해 C# 스크립트를 사용할수있습니다. C#스크립트를 작성하고 게임 오브젝트의 행동을 정의하여 움직임, 충돌 감지, UI 조작, 게임 로직 구현, 데이터 관리등 다양한 작업을 수행할수있습니다.
C# 스크립트는 .cs 확장자를 가지는 텍스트 파일입니다. 유니티에서 C# 스크립트를 작성하고 편집하는데 비주얼스튜디오(visual studio)라는 IDE를 사용합니다. IDE(Intergrated Development Environment)는 개발자들이 프로그램을 작성, 디버그, 컴파일 및 실행할 수 있도록 통합 개발환경을 제공합니다.
(현재 유니티는 MonoDevelop을 기본 스크립트 편집기로 지원하지 않습니다. MonoDevelop 지원은 Unity 2018 이후 중단되었으며 그 이후로 Unity는 기본 스크립트 편집기로 Visual Studio 및 Visual Studio Code를 권장하고 있습니다)
유니티 C# 스크립트
유니티 C# 스크립트는 C# 언어 또는 닷넷프레임워크(.NET Framework)에서 비롯된것, 유니티 API에서 제공하는것, 사용자가 코드로 작성해야하는 부분으로 이루어져있습니다.
유니티 기본 C# 스크립트
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
using UnityEngine;
UnityEngine API를 사용한다는 의미입니다. API는 Application Programming Interface로써 스크립트에서 접근할수있는 공개된 소프트웨어 라이브러리(클래스, 함수, 데이터 타입의 집합)를 의미합니다.
using은 C# 언어의 키워드입니다. using을 사용하여 UnityEngine 네임스페이스에 있는 클래스와 함수를 사용한다는 의미입니다. C#에서 코드 한줄은 세미콜론 ; 으로 끝마칩니다.
유니티의 API는 풍부하고 훌륭하게 설계되어있으며 게임 개발(게임 로직, 그래픽 처리, 물리 엔진, UI 시스템 등 다양한 기능을 구현)에 필요한 클래스와 함수들을 제공합니다.
public class NewBehaviourScript : MonoBehaviour {}
이 스크립트에서 NewBehaviourScript라는 클래스를 정의합니다. 클래스는 한쌍의 중괄호{} 에 의해 둘러쌓입니다.
클래스에서 변수와 메서드(함수)를 정의합니다. 변수는 float, int, boolean, GameObject, Vector3 등 특정한 타입의 데이터를 저장하는데 사용하며 메서드는 명령어의 순차적 실행을 의미하는 로직을 구현합니다.
Start(), Update()
유니티에서 생성한 기본 C# 스크립트에서 사용자 정의 클래스는 기본적으로 MonoBehaviour 클래스를 상속받고 게임 오브젝트의 라이프사이클과 동작을 제어하는데 사용할수있는 두가지 함수를 포함합니다.
Start 함수는 스크립트가 활성화된후 한번 호출됩니다. 예를들어 오브젝트의 초기화 작업에 사용됩니다.
Update 함수는 게임이 실행되는 동안 매 프레임마다 호출됩니다. 예를들어 오브젝트의 위치 또는 상태를 매 프레임 업데이트하는데 사용됩니다.
콘솔(Console)
프로그래밍 언어는 지켜야하는 특정한 문법이 있으며 문법에서 벗어나 이해되지 못해 발생한 스크립트 에러는 콘솔(Console) 패널에 표시됩니다.
'유니티게임개발 > 기초공부' 카테고리의 다른 글
유니티에서 렌더링 패스 설정하기(포워드 렌더링, 디퍼드 렌더링) (0) | 2023.09.10 |
---|---|
유니티(Unity)에서 씬(Scene)과 게임오브젝트(GameObject) 이해 (0) | 2023.09.08 |
유니티 허브(Unity Hub)에서 에디터 설치하고 프로젝트 생성 및 시작하기 (0) | 2023.08.15 |
유니티(Unity) 기본 어셈블리(Assembly-CSharp) 확인하기 (0) | 2023.08.11 |
유니티의 두가지 파티클 시스템(Shuriken Particle System, VFXgraph) (0) | 2023.08.11 |