티스토리 뷰

728x90

안녕하세요 마늘입니다.

지난 시간에는 오브젝트를 생성하고, 인스펙터 속의 내용을 이해해 보았었죠?

오늘은 오브젝트를 움직이고, 동작하게 하는 스크립트를 짜 보겠습니다!

 

 

이전과 바뀐 점이 있다만 신경 쓰지 마세요

 

1. 스크립트 파일 생성하기

 

우선 시작하기 전에는, 역시 파일부터 만들어 주어야겠죠?

 

 

Scripts 폴더에 들어가서...

 

Scripts 폴더에 들어간 후, 우클릭 - > Create -> C# Scripts를 눌러서 파일을 생성해줍시다.

 

 

이름을 지어줍시다

 

 

우선 우리는 복잡한 코드를 작성할 것이 아니고, 그저 오브젝트를 앞으로 나아가게 할 것이기 때문에,

저는 이름을 'GoFoward' 로 지어주었습니다.

다만 당부하자면, 파일 이름을 바꾸어서 이름을 짓지 마시고, 파일을 생성하면서 이름을 바로 적어주세요.

조금만 알면 이럴 필요도 없지만, 이유는 조금 뒤에 설명드리겠습니다.

 

이걸 이제 더블클릭해서 오픈하면...

 

 

2. 스크립트 뜯어보기

 

비주얼 스튜디오

 

드디어, 우리는 비주얼 스튜디오를 열었습니다.

동시에 C#과도 마주하게 되었네요.

언제나 그래왔듯, 하나하나 분석해봅시다!

 

 

Using Sys / UnityEngine

 

유니티 엔진과 시스템 관련 내용을 import하는 내용입니다. 

 

클래스의 대략적인 형태

 

스크립트 클래스의 대략적인 형태입니다. 위에 GoForward가 써있는 것이 보이시나요?

네, 파일명과 저 위치의 이름이 다르면 코드가 정상적으로 동작하지 않고 에러를 뱉습니다.

그 옆의 MonoBehaviour는 모든 유니티의 스크립트가 상속받는 것입니다.

MotoBehaviour에 대해 자세히 알고 싶다면 이쪽 으로...

 

Unity - 스크립팅 API: MonoBehaviour

Javascript를 사용하는 경우에, 자동으로 MonoBehaviour를 상속받습니다. C# 또는 Boo언어를 사용하는 경우에는 명시적으로 MonoBehaviour를 상속받아야 합니다. Note: MonoBehaviour를 비활성화 하는 체크박스(에

docs.unity3d.com

 

 

Start / Update

이곳은 Start / Update입니다, 각각 가장 첫번째 프레임에 / 매 프레임마다 실행되는데요.

아직 저 둘 안에 내용이 아무것도 없기 때문에, 동작을 하지 않습니다.

그렇다면, 이제 내용을 집어넣음으로써 동작하게 해봅시다!

 

 

 

3. 스크립팅을 해보자

 

우선은 "Hello World!" 를 콘솔에 띄워봅시다.

유니티에서는 콘솔 출력을 Debug.Log() 으로 처리하기 때문에, 

이런 식으로 써주면 되겠죠?

 

Hello, World!

 

그럼 일단 Hello World 출력은 끝냈으니, 이제 움직이게 해봅시다.

이번 강의는 직접적으로 함수에 대해 알아보는 것이 아니라 스크립트의 구성만 짚고 넘어가는 위주기 때문에,

다양하게 오브젝트를 움직이는 함수들과 종류에 대해서는 다음에 다룰 예정입니다 :)

 

그럼 지금 쓸 transform.Translate() 함수를 간단히 요약하자면,

x,y,z 인자를 받아서 그만큼 움직이는 함수 정도다 라고만 기억해두세요.

어쩌피 곧 있으면 움직임을 만들 때 쓰이는 함수를 더 알아두어야 하니까 말이죠.

 

Translate

 

여기서 0.1 이라고 작성하지 않고 뒤에 f를 붙인 이유는, 자료형이 double이 아니라 float이기 때문입니다.

아무튼 이렇게 적어주었다면 저장을 해주고, 다시 유니티로 되돌아와줍시다.

 

 

 

4. 스크립트는 어떻게 적용시키는가?

 

스크립트를 적용시키는 방법은 간단합니다. 오브젝트에 붙여 주면 됩니다!

말 그대로 드래그를 시키라는 것은 아니고, 하이어라키 창에서 오브젝트를 눌러서 인스펙터를 띄워 보세요.

 

 

Add Component 를 눌러줍시다

 

여기서 이제 Add Component 를 눌러준다면, 이런 식으로 처음 보는 것들이 쭉 나올 겁니다.

하지만 걱정 마세요. 이들은 유니티의 기본 제공 컴포넌트들입니다.

 

 

기본적으로 제공되는 컴포넌트

 

 

이곳에는 VR/AR에 관련된 것들이나, 물리엔진, 렌더링, 사운드 등등 다양한 기능을 가진 컴포넌트가 있습니다.

우리가 짠 스크립트는 컴포넌트로 취급되기에 여기다가 "GoForward" 라고 치면...

 

 

두둥탁

 

 

이걸 더블클릭해주고, 게임오브젝트에 적용시켜 봅시다.

 

 

인스펙터에 컴포넌트가 추가되었습니다.

 

이렇게 인스펙터에 컴포넌트가 추가되면, 우리가 작성한 코드가 GameObject 내에서 동작하게 됩니다!

 

실행 화면

 

따라했을 때 움직이는 속도가 다를 수도 있습니다. 하지만 지금은 어쩔 수 없는 일입니다.

모니터의 주사율에 따라서 완전히 다른 결과가 나올 수 있다는 것은 중요한 문제입니다.

단순한 렉이 아니라 기기의 성능에 따라서 완전히 다른 결과를 낳는다는 것은 말도 안되는 일이죠.

 

다음 시간에는 이를 해결할 수 있는 deltaTime과 스크립트에 대해서 상세히 다뤄보겠습니다.

 

728x90
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함