brand

QUICK
MENU

홈 › 정보 › 게임 › 툴·엔진

유니티(Unity) C# 스크립트 기초

유니티에서 캐릭터를 움직이고 점수를 올리고 적을 등장시키는 일은 모두 C# 스크립트가 맡습니다. 스크립트는 처음 보면 낯설지만 정해진 틀이 있어서, 그 틀만 이해하면 읽고 고치는 일이 훨씬 쉬워집니다. 이 글은 유니티 스크립트의 기본 구조와 자주 쓰는 문법을 정리합니다.

스크립트 파일의 기본 구조

Project 창에서 C# 스크립트를 새로 만들면 클래스 하나가 들어 있는 파일이 생깁니다. 이 클래스는 MonoBehaviour라는 유니티 기본 클래스를 이어받습니다. 상속이라고 부르는 이 구조 덕분에 스크립트를 게임 오브젝트에 컴포넌트로 붙일 수 있습니다.

주의할 점은 파일 이름과 클래스 이름이 같아야 한다는 것입니다. 파일 이름만 바꾸고 안의 클래스 이름을 그대로 두면 컴포넌트로 붙일 때 오류가 납니다.

생명주기 함수: 언제 실행되는가

유니티는 정해진 시점에 정해진 이름의 함수를 자동으로 불러 줍니다. 이를 생명주기 함수 또는 이벤트 함수라고 합니다.

함수실행 시점주로 하는 일
Awake오브젝트가 만들어질 때 한 번자기 자신의 변수 초기화
Start첫 프레임 직전에 한 번다른 오브젝트를 찾아 연결
Update매 프레임마다입력 확인, 일반적인 움직임
FixedUpdate일정한 물리 계산 주기마다Rigidbody에 힘을 주는 물리 처리
LateUpdate모든 Update가 끝난 뒤캐릭터를 따라가는 카메라 이동

Update는 기기 성능에 따라 1초에 실행되는 횟수가 다릅니다. 그래서 이동 거리에 Time.deltaTime(직전 프레임에서 걸린 시간)을 곱해 어느 기기에서나 같은 속도로 움직이게 만듭니다.

유니티(Unity) C# 스크립트 기초 혼자 배우다 막혔다면, 수업으로 체계적으로과정 상담 →

변수와 인스펙터 연결

클래스 안에 public으로 선언한 변수나 [SerializeField]를 붙인 private 변수는 인스펙터 창에 나타납니다. 이동 속도나 체력 같은 값을 코드를 고치지 않고 에디터에서 바로 조절할 수 있어 테스트가 편해집니다.

외부에서 마음대로 바꾸면 안 되는 값은 private에 [SerializeField]를 붙이는 방식이 권장됩니다. 인스펙터에서는 보이되 다른 스크립트가 함부로 건드리지 못하게 막을 수 있기 때문입니다.

다른 컴포넌트와 오브젝트 다루기

  • GetComponent: 같은 오브젝트에 붙은 다른 컴포넌트를 가져옵니다. 예를 들어 Rigidbody를 가져와 속도를 바꿀 때 씁니다.
  • Instantiate: 프리팹을 복제해 새 오브젝트를 만듭니다. 총알 발사나 적 생성에 씁니다.
  • Destroy: 오브젝트를 없앱니다. 맞은 적이나 수명이 다한 총알을 지울 때 씁니다.
  • OnCollisionEnter, OnTriggerEnter: 다른 오브젝트와 부딪히거나 범위 안에 들어왔을 때 자동으로 불립니다.
  • 코루틴(Coroutine): 몇 초 기다렸다가 실행하는 것처럼 시간에 걸쳐 일어나는 동작을 쉽게 만듭니다.

GetComponent는 매 프레임 부르기보다 Awake나 Start에서 한 번 가져와 변수에 저장해 두는 것이 좋습니다. 같은 일을 반복하지 않아 성능에도 유리합니다.

초보가 자주 하는 실수

  • 스크립트를 만들고 오브젝트에 붙이지 않아 아무 일도 일어나지 않음
  • 인스펙터에서 변수에 대상을 연결하지 않아 NullReferenceException 오류 발생
  • Rigidbody가 있는 오브젝트를 transform으로 직접 옮겨 물리가 어색해짐
  • 콘솔 창의 경고와 오류 메시지를 읽지 않고 넘어감

콘솔 창 오류 메시지를 두 번 누르면 문제가 난 코드 줄로 바로 이동합니다. 오류를 읽는 습관이 실력을 가장 빨리 늘려 줍니다.

C#을 탄탄하게 다지려면

SBS아카데미게임학원 유니티3D(Unity) 과정에는 클래스, 캡슐화, 상속, 인터페이스, 델리게이트, 컬렉션, LINQ 등 C# 문법을 따로 다루는 단계가 있어 스크립트 기초를 엔진 실습 전에 정리할 수 있습니다.

자주 묻는 질문

C# 대신 다른 언어로 유니티를 쓸 수 있나요?

현재 유니티의 기본 스크립트 언어는 C#입니다. 코딩 없이 노드를 연결하는 비주얼 스크립팅 기능도 있지만, 실무에서는 대부분 C#을 씁니다.

C언어를 먼저 배워야 하나요?

꼭 그렇지는 않습니다. 다만 C언어로 메모리와 포인터 개념을 익혀 두면 이후 C++이나 엔진 내부 구조를 이해할 때 도움이 됩니다.

Update와 FixedUpdate 중 무엇을 써야 하나요?

키 입력 확인은 Update, Rigidbody에 힘을 주는 물리 처리는 FixedUpdate에서 하는 것이 기본 원칙입니다.

이 글과 이어지는 과정

C# 문법 단계와 유니티 초급 스크립트 실습이 이어져 이 글의 내용을 직접 손으로 익힐 수 있습니다.

게임프로그래밍학과

유니티3D(Unity) 과정

전 세계적으로 가장 널리 사용되는 실시간 개발 플랫폼 Unity(유니티)를 활용해 2D·3D 게임부터 인터랙티브 콘텐츠, 메타버스, AR/VR까지 다양한 디지털 콘텐츠를 직접 기획하고 제작하는 실무 중심 프로그램입니다.

강의정원 10명 내외강의시간 2시간 내외교육난이도 Lv.1~5수업 요일·횟수 월수금, 화목금, 격일, 매일
수업 진행 순서

C언어 기초 → C# 게임 로직 → Unity 기능 실습(UI·물리 효과·애니메이션·씬 관리) → 개인·팀 프로젝트 → 포트폴리오 / 단위 수업: 이론·개념 설명 및 강사 시연 → 단계별 개인·팀 실습 및 과제 제작 → 1:1 강사 피드백 및 수정 보완

실습 내용

C언어로 코드를 직접 작성해 보고, Unity에서 C# 스크립트로 게임 규칙과 동작을 구현합니다. 물리 효과, UI 연결, 애니메이션 제어를 넣어 보고, 게임 오브젝트와 씬을 구성해 하나의 게임으로 엮어 봅니다.

강사 피드백 방식

10명 내외 소수 정원 수업으로 진행하며, 실무 강사진이 수강생의 실습 과제·작품·기획서를 1:1로 확인하고 수정·보완 방향을 직접 피드백합니다.

  1. 유니티 C# 개발C#의 이해 · C와 C#의 문법의 차이 · 클래스 문법의 이해 · 클래스 생성과 구현 · 객체지향과 캡슐화의 이해 · 맴버 속성(property)와 매개변수의 전달 · 일반화(Generalization)의 사용 · 대리자(Delegate)의 사용 · 컬렉션(Collection)의 사용 · LINQ(Language Integrated Query) · 클래스 상속 · 클래스 상속 구현 및 예제 · 가상메소드(virtual)의 이해 · 추상메소드(abstract)의 이해 · 가상화와 추상화의 차이와 구현 · 인터페이스(Interface)와 컬렉션(Collection) · 파일 입출력 · Excel 데이터 파싱
  2. 유니티 초급유니티의 구조와 이해 · 유니티 인터페이스 · 객체 생성 및 컴포넌트 · Scene 구성과 카메라 · Asset의 활용과 객체 이동 · 키보드 입출력 제어 · 물리와 충돌의 이해 · Animation 컨트롤 · 프리팹(Prefab)의 이해와 사용 · Layer와 Tag의 활용 · NGUI와 터치 인터페이스 · 마우스 및 터치 컨트롤 · Scene 제어 및 Popup 제어 · Joint와 2D 물리 · Raycasting과 Picking · 가상 키패드의 제작 · Angry Bird 예제 따라하기 · PC와 모바일 빌드 해보기
  3. 유니티 2D 초급2D 슈팅 게임 프로그래밍 기획 설계 · Scene의 구성과 이동 · 2D Sprite의 출력 · 주인공 출력과 이동 · 배경의 출력과 스크롤 · 2D 물리의 이해와 구현 · 미사일 발사 구현 · 미사일 관리 · 오브젝트 풀(Pool)의 사용 · 적의 생성과 Animator의 활용 · 컨디션 설정으로 상태 변화 · 여러 종류의 적 생성 · 이펙트와 사운드 · 적의 죽음 처리 · 코루틴의 이해(Coroutine) · 매니저를 이용한 적의 관리 · 플레이어의 죽음 처리 · 타이틀, 로비 , 환경설정, 결과화면 처리
  4. 유니티 3D 초급Scene의 구성과 Light · 버텍스(Vertex), 폴리곤, Mesh의 이해 · 텍스쳐(Texture)와 쉐이더(Shader)의 이해 · 3D 공간에서 오브젝트의 이동 · 카메라의 회전과 이동 · Rigidbody를 이용한 물리와 충돌처리 · 본과 리깅의 이해 · Animation(Legacy)의 활용 · Animation(Mecanim)의 활용 · Animation의 제어 및 모션연결 · Animation Event기능과 공격판정 · 엑셀 데이터를 통한 Effect 제어 · 마우스를 이용한 캐릭터 제어 · NavMesh를 이용한 길찾기 · NavAgent 기능을 활용한 AI · Lighting Map · 3D 최적화 방법
  5. 유니티 3D 중급3D 액션 RPG · Scene의 구성과 이동 · 3D 카메라 컨트롤 · 키보드와 가상 키패드로 캐릭터 이동 · Character Controller의 사용 · 적 리소스 추가 및 Spawn 기능 구현 · 무기의 교체 및 애니메이션 · 충돌 처리 및 파티클 생성 · 주인공 점프, 회피, 스킬 등 기능 구현 · 적의 AI 설계 및 FSM의 이해 · 적의 유한상태기계(FSM)의 구현 · 적을 관리하는 매니저 구현 · 적과 주인공의 피격처리 · 점수처리와 PlayerPerfs에 저장 · 보스 몬스터의 구현 · HUD를 통한 UI 구성 · Item과 버프 기능 구현

수료 후 결과물 — 수료 결과물(Unity로 만든 개인·팀 프로젝트 포트폴리오), C언어 기초 문법 실습, C# 게임 로직 구현, UI·물리 효과·애니메이션 기능 실습

이어지는 진로 — Unity 게임 개발자, 인터랙티브 콘텐츠 개발, 메타버스·AR/VR 콘텐츠 개발

유니티3D(Unity) 과정 자세히 보기 →

함께 보면 좋은 글

유니티(Unity) C# 스크립트 기초 배우기 무료 상담

유니티3D(Unity) 과정에서 유니티(Unity) C# 스크립트 기초을(를) 어떤 순서로 배우는지 안내해 드립니다.

  • 현재 실력과 목표에 맞는 시작 단계 진단
  • 목표(입시·취업·취미)에 맞춘 학습 로드맵
  • 선배 수강생 포트폴리오 상담 시 열람

전화 상담 010-2135-9730 · 카카오톡 상담 바로가기

빠른 수강료 조회

관심있는 교육과정을 선택해 주세요.(중복 선택 가능)

게임디자인학과

세부 교육과정 (선택)

세부 교육과정 (선택)

세부 교육과정 (선택)

게임개발학과

세부 교육과정 (선택)

세부 교육과정 (선택)

세부 교육과정 (선택)

세부 교육과정 (선택)

웹툰·웹소설학과

세부 교육과정 (선택)

세부 교육과정 (선택)

AI X 크리에이터

세부 교육과정 (선택)

가까운 지점을 선택해주세요.

    신청하시는 분의 이름과 연락처를 입력해 주세요.

    - -
    자세히 보기
    수집 항목: 이름, 연락처, 수강안내 관련 이력
    이용 목적: 수강안내 제공, 관련 이력 관리 및 맞춤형 재안내를 통한 서비스 품질 개선
    보유 기간: 수집일로부터 최대 3년간 보관 후 파기
    닫기

    개인정보처리 방침

    SBS아카데미게임학원은 이용자의 자유와 권리보호를 위해 『개인정보 보호법』 및 관계법령이 정한 바를 준수하여, 적법하게 개인 정보를 처리하고 안전하게 관리하고 있습니다.
    이에 『개인정보 보호법』 제 30조에 따라 이용자에게 개인정보 처리에 관한 절차 및 기준을 안내하고, 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립∙공개 합니다.


    제1조(개인정보의 처리 목적, 항목 및 보유기간)

    SBS아카데미게임학원은 다음 목적을 위하여 필요한 최소한의 개인정보를 수집·이용하며, 목적 달성 시 또는 보유기간 경과 시 지체 없이 파기합니다. 이용 목적 변경 시에는 법령에 따라 별도의 동의를 받습니다.


    구분 처리 목적 법적 근거 수집 항목 보유·이용 기간
    상담 신청 수강 상담, 문의 응대, 상담이력 관리 개인정보 보호법 제15조 제1항 제1호(동의) 이름, 연락처(휴대전화), 이메일, 상담내용, 상담일시 수집일로부터 3년
    수강생 관리 학사관리, 수강 이력 관리, 계약 이행 개인정보 보호법 제15조 제1항 제4호, 학원법 이름, 연락처, 생년월일, 성별, 주소, 이메일, 수강과정 등 수강 종료 후 5년
    회원 가입 회원관리, 로그인 인증, 서비스 제공 개인정보 보호법 제15조 제1항 제1호(동의) ID, 비밀번호, 이름, 생년월일, 성별, 연락처, 이메일 회원 탈퇴 시까지 (단, 법령에 따름)
    마케팅(선택) 이벤트, 광고성 정보 안내, 만족도 조사 개인정보 보호법 제15조 제1항 제1호(별도 동의) 이름, 연락처, 이메일 동의 철회 또는 1년 후 즉시 파기

    제2조(만 14세 미만 아동의 개인정보 처리)

    SBS아카데미게임학원은 만 14세 미만 아동의 개인정보 수집 시 반드시 법정대리인의 동의를 받습니다. 동의 여부 확인 절차를 별도로 마련하며, 법정대리인의 동의 없이는 수집하지 않습니다.


    제3조(개인정보의 제3자 제공)

    SBS아카데미게임학원은 원칙적으로 정보주체의 동의 없이 개인정보를 외부에 제공하지 않으며, 다음 경우에 한하여 예외적으로 제공합니다.

    • 1. 법령에 따른 제공
    • 2. 정보주체로부터 별도 동의를 받은 경우
    • 3. 급박한 생명·신체·재산상 이익 필요 시

    ※ 현재 SBS아카데미게임학원은 개인정보를 제3자에게 제공하지 않습니다.


    제4조(개인정보 처리 위탁)

    SBS아카데미게임학원은 다음과 같이 개인정보 처리업무를 위탁하고 있습니다.


    수탁자 위탁업무 내용
    (주)코리아교육그룹 고객상담 시스템관리
    재수탁자 위탁업무 내용
    (주)인케이지 서버 및 DB 운영, 보안 관리
    (주)엠노베이션 광고대행, 광고관리, 광고성과 분석

    제5조(개인정보의 파기 절차 및 방법)

    SBS아카데미게임학원은 개인정보 보유기간 경과, 목적 달성 시 지체 없이 파기합니다.

    - 전자적 파일: 복구 불가능한 방식으로 삭제

    - 종이문서: 분쇄 또는 소각

    파기 기록은 내부 규정에 따라 관리하며, 최소 3년 보관 가능합니다.


    제6조(정보주체 권리)

    정보주체는 회사에 대해 다음 권리를 행사할 수 있습니다.

    1. 개인정보 열람 요구

    2. 오류 시 정정 요구

    3. 삭제 요구

    4. 처리정지 요구

    권리 행사는 서면, 이메일, FAX, 홈페이지, 고객센터 등을 통해 요청 가능하며, 코리아교육그룹은 10일 이내에 회신합니다.


    제7조(안전성 확보조치)

    SBS아카데미게임학원은 개인정보 보호를 위해 다음 조치를 시행합니다.

    - 관리적 조치: 내부관리계획 수립, 교육, 정기 감사

    - 기술적 조치: 접근권한 제한, 암호화, 로그기록 보관

    - 물리적 조치: 전산실, 자료보관실 접근 통제


    제8조(녹취 및 CCTV 관리)

    SBS아카데미게임학원은 상담 품질 개선을 위해 유선 상담 시 녹취를 실시할 수 있으며, 상담직원이 고객과의 통화를 직접 녹음하는 경우, 사전 고지 없이 녹음할 수 있습니다. 녹취파일은 1년간 보관 후 파기합니다. 외부 제공은 원칙적으로 금지합니다.


    제9조(개인정보 보호책임자)

    SBS아카데미게임학원은 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보주체의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보보호책임자를 지정하고 있습니다.

    - 개인정보보호 책임자: 강경훈 원장

    - 연락처: 1588-0376

    - 이메일: [email protected]


    제10조(권익침해 구제방법)

    정보주체는 개인정보 침해 시 아래 기관에 신고·상담할 수 있습니다.

    - 개인정보침해신고센터: 118

    - 개인정보분쟁조정위원회: 1833-6972

    - 대검찰청: 1301

    - 경찰청: 182


    제11조(처리방침 변경)

    - SBS아카데미게임학원은 개인정보처리방침을 개정하는 경우 최소 7일 전에 홈페이지의 공지사항을 통하여 고지할 것 입니다.

    - 본 방침은 2025년 5월 1일 시행되며, 변경 시 홈페이지에 공지합니다.


    Customer Center

    010-2135-9730

    010-2135-9730

    주말·공휴일 상담 및 접수가 가능합니다.

    Top