유니티 강좌2014. 6. 4. 16:51

(7)  스크롤 바 만들기

Widget Tool 창에서 TemplateScroll Bar로 두고 AnchorAdd To 버튼을 눌러 오브젝트를 생성합니다.

 

 

[그림 7-7]

 

[그림 7-8]

 

      그리고 생성한 ‘Scroll Bar’의 포지션을 X = 50, Y = 210값을 넣어 ‘Label’의 옆에 오도록 조정을 해줍니다.

 

다음으로는 ‘Panel’의 드래깅과 연계가 되도록 ‘Panel’을 선택해서 UIDraggable Panel (Script) 컴포넌트에 있는 Vertical Scroll Bar 기능에 Hierarchy창에 있는 ‘Scroll Bar’를 드래그해서 넣어줍니다.

         

[그림 7-9]

 

그리고 플레이 버튼을 눌러서 스크롤 바가 드래깅에 맞춰서 잘 반응을 하는지 체크해봅시다.

 

  (8)  ‘Label’ 포지션 조정

플레이를 시작했을 때, ‘Label’의 시작부분이 1부터 화면에 보이도록 ‘Label’의 포지션을 변경합니다. 이때 플레이 한 상태에서 값을 바꾸면 플레이모드에서 빠져나오면 사라지게 되니 플레이모드에서 동작을 확인하고 플레이모드를 끄고 값들을 수정합니다.

‘Label’을 선택하고 Transform에서 Y 포지션 값을 -474로 수정해줍니다.

 

[그림 7-10]

 

 

Posted by 알 수 없는 사용자
유니티 강좌2014. 6. 4. 16:25

  (4)  Draggable Panel 설정

‘Panel’오브젝트를 선택하고 Inspector에 있는 Add Component 버튼을 눌러서 NGUI > Interaction > Draggable Panel을 선택하여 컴포넌트로 추가합니다.

그리고 ‘Label’의 드래그가 세로축 방향으로만 일어나야만 하므로 Scale에서 Y의 값만 1로 놔두고, 나머지는 모두 0으로 변경해줍니다.

 

[그림 7-3]

 

(5)  ‘Label’Drag Panel Contents 설정

이번에는 Drag를 위한 Collider 영역을 따로 생성하지 않고 ‘Label’ 자체를 클릭 & 드래그 인식이 가능하게 만들어 사용해보겠습니다.

‘Label’ 오브젝트Inspector창으로 가서 Add Component 버튼을 눌러서 NGUI > Interaction > Drag Panel Contents 를 선택해서 컴포넌트를 추가합니다.

 

생성된 UIDrag Panel Contests (Script)에서 Draggable Panel에 자동으로 설정되어 있는 ‘Panel’을 클릭해서 실제로 우리가 드래그하고자 하는 패널이 제대로 설정되어 있는 것인지 확인해봅니다.

 

위의 그림과 같이 자동으로 설정되어 있는 ‘Panel’을 클릭해보면 Hierarchy창에서 설정된 객체를 표시해줍니다.

 

[그림 7-4]

그리고 ‘Label’ 오브젝트Inspector창에서 Add Component를 클릭해서 Physics > Box    Collider를 클릭해서 Collider 컴포넌트를 하나 추가해줍니다.

생성된 Box Collider 컴포넌트에서 Y Size50으로 변경해줍니다. (숫자가 50까지 줄 바꿈으로 들어갔으므로)

 

[그림 7-5]

 

설정이 끝났다면, 플레이 버튼을 눌러서 드래깅이 제대로 일어나는지 확인해봅시다.

 

(6)  ‘Panel’UIPanel 컴포넌트 설정

‘Panel’오브젝트를 선택하고, Inspector창에 있는 UIPanel (Script)컴포넌트에서 ClippingSoft Clip으로 변경시켜줍니다. 그리고 Size X = 28, Y = 450으로 변경시켜준 뒤에, Softness에서 X = 1, Y = 210으로 설정해줍니다.

 

[그림 7-6]

 

Posted by 알 수 없는 사용자
유니티 강좌2014. 6. 4. 14:09

7.    Drag Label 만들기

 

 

<만들 예정인 결과물>

[그림 7-1]

 

(1)  씬 만들기

이전 강좌에서 사용했던 ‘NGUI Control Sample’프로젝트에서 새로운 씬(File > New Scene)을 엽니다.

‘Main Camera’를 지우고 ‘Drag Label’이라는 이름으로 씬을 저장(Ctrl+S)합니다.

 

 

(2)  UI Root (2D) 생성

UI Tool(상단의 NGUI > Create a New UI 메뉴로 오픈)에서 Create Your UI 버튼을 눌러서 UI Root (2D), Camera, Anchor, Panel 오브젝트를 생성합니다.

생성된 ‘Camera’ 오브젝트의 Camera 컴포넌트에서 Clear FlagsSolid Color로 설정합니다.

 

 

(3)  Label 생성

Widget Tool에서 AtlasScifi, FontScifi Font – Normal로 지정하고, TemplateLabel로 지정한 뒤, Add To 버튼으로 ‘Panel’에 생성합니다.

 

 

[그림 7-2]

 

 

생성한 ‘Label’을 선택하고 UILabel (Script) 컴포넌트에서 ‘New Label’이라고 적혀있는 내용을 지우고, 숫자를 1부터 ~ 50까지, 매 숫자를 적을 때마다 엔터를 쳐서 줄을 바꿔 적어 넣습니다.

 

※  숫자를 적게 적어 넣어서 화면의 Y축 범위를 넘어설 만큼 ‘Label’의 범위가 길어지지 않으면, 한 화면에 오브젝트가 모두 보여서 드래깅이 일어날 필요가 없기 때문에 드래깅이 일어날 수 없게 됩니다.


 

 

Posted by 알 수 없는 사용자
유니티 강좌2014. 6. 4. 13:38

6. 버튼으로 오브젝트 움직이기 

   (6)  FSM Templates 만들기

‘Left Button’을 선택한 상태에서 Playmaker Editor창의 빈 곳을 우 클릭 > Save Template을 클릭합니다.

 

 

[그림 6-16]

 

그리고 나타나는 팝업 창에서 ‘Label Move(Button).asset’ 이라는 이름으로 저장합니다.

 

 (7)  Label 이동 FSM 만들기 – Left Button

‘Right Button’을 선택하고 Playmaker Editor창의 빈 곳을 우 클릭 > Add Template > General > Label Move(Button)을 클릭합니다.

 

  

[그림 6-17]

 

그러면 앞서 저장해두었던 ‘FSM MOVE TO LEFT’ 템플릿이 로드 되어 있는 것을 볼 수 있습니다. 이것을 ‘Right Button’에 맞게 수정을 하겠습니다.

 먼저 FSM의 이름을 ‘FSM MOVE TO RIGHT’로 변경시켜줍니다.

 

 

[그림 6-18]

  

그리고 ‘Move To Left’ State 이름을 ‘Move To Right’로 고쳐주고, iTween Move Add 액션의 Vector 값에서 X 값에 들어있는 -0.5 0.5로 변경시켜줍니다.

 

[그림 6-19]

 

마지막으로 Hierarchy창에 있는 ‘Right Button’을 클릭하고 Inspector창에서 UIEvents To Playmaker FSM (Script) 컴포넌트를 찾은 뒤, Target FSM에서 [None(Play maker FSM)]이라고 되어 있는 곳에 Hierarchy창에 있는 ‘Right Button’을 드래그하여 넣어줍니다.

 

이제 플레이 버튼을 눌러서 ‘Right Button’이 제대로 동작하는지 확인해보세요.

 

Tip.

1)     ‘Right Button’ 버튼이 클릭이 잘 되지 않는다면, UIEvents To Playmaker FSM (Script) 컴포넌트가 있는지 확인해보세요.

 

Posted by 알 수 없는 사용자
유니티 강좌2014. 6. 2. 15:09

 6. 버튼으로 오브젝트 움직이기

 

  (3)  UI Root (2D) 생성

UI Tool(상단 메뉴의 NGUI > Create a New UI로 오픈)에서 Create Your UI 버튼을 눌러서 UI Root (2D), Camera, Anchor, Panel 오브젝트를 생성합니다.

생성된 ‘Camera’ 오브젝트의 Camera 컴포넌트에서 Clear FlagsSolid Color로 설정하고 Background 색상을 검정색으로 변경합니다.

 

[그림 6-2]

 

(4)  Label과 버튼 생성

Widget Tool(상단의 NGUI > Create a Widget 메뉴로 오픈)에서 AtlasSciFi Atlas, 폰트를 SciFi Font – Normal로 지정하고, 앞서 생성한 ‘Panel’의 하위객체로 Label 1개와 버튼 2개를 생성합니다.

 

(SciFi AtlasSciFi Font – Normal Project창의 NGUI > Examples > Atlases > SciFi에서 찾을 수 있습니다.)

 

생성된 Button 2개의 이름을 각각 ‘Left’‘Right’로 변경시키고, Label의 내용을 자유롭게 한 두 개의 단어 구성으로 변경해줍니다.

 

 

[그림 6-3]

 

그리고 버튼 2개의 위치를 아래의 그림처럼 적절한 위치에 배치시켜줍니다.

(그림에서와 같이 Hierarchy창에서 오브젝트 이름을 구분하기 쉽게 바꿔주는 것을 습관화 하는 것이 좋습니다.)

 

그리고 앞서서 다운받아두었던 UIEventsToPlaymakerFSM.cs Project창에 드래그인 하여, Asset으로 등록합니다.

[그림 6-4]

Project창에서 UIEventsToPlaymakerFSM.cs를 드래깅하여 Hierarchy창에 있는 버튼에 각각 한번씩 넣어서 컴포넌트로 등록합니다.

 

[그림 6-5]

※ Project 창에서 오브젝트의 Inspector 창에 드래그인 할 때는, Add Component 버튼의 아래쪽 위치로 드래그인을 해야 컴포넌트로 넣을 수 있습니다 

Posted by 알 수 없는 사용자
공지사항2014. 5. 28. 15:52

 

스마트 앱&게임 개발 강좌 월·수반 6기 수강생을 모집합니다.

개강일 : 6월 16일(월·수반)

교육대상​

·프로그램 언어를 배워본적이 없는 일반인 및 초보 프로그래머

·앱 개발 및 게임 개발을 꿈꾸는 취업 준비자 및 예비 창업자

·게임 기획을 넘어 직접 프로그래밍을 해보려는 기획자

·디자인을 기반으로 자신만의 앱 또는 게임을 개발해보길 원하는 디자이너

 

교육문의 02-567-3885

 

 

 

 

 

'공지사항' 카테고리의 다른 글

창의인재 전형 입시설명회  (0) 2014.07.04
Posted by 알 수 없는 사용자
유니티 강좌2014. 4. 23. 06:00

(6) 다양한 색을 가진 글자 추가하기


Widget Tool에서 Template을 Label로 지정하고, 'Anchor(Center)'의 하위에 있는 Panel에 생성시킵니다.

생성된 'Label'의 이름을 'Label (Content)'로 변경하고, 기존에 'Anchor(Center)' > Panel 하위에 있던 'Label'의 이름은 'Label (Title)'로 변경합니다.


[그림 5-14]



그리고 'Label (Title)'의 y 포지션 좌표를 140으로 변경하고, x, y 사이즈를 30으로 변경시킵니다.


[그림 5-15]


   

'Label (Content)'의 x, y 포지션 좌표를 -195, 100으로 변경합니다.


[그림 5-16]



그리고, 아래로 내려가서 Pivot을 'Top Left'로 변경해줍니다.


[그림 5-17]


   

'Label (Content)'의 UITiled Sprite (Script) 컴포넌트에서 내용을 자유롭게 작성합니다.

 

<결과화면>


[그림 5-18]


   

※ 결과화면에서 색이 들어간 문장.


'[EAFF00]NGUI's[-] labels can have [FF0000]embedded[-] [0090ff]colors[-] .

 

<색상 별 16진수 값>


[그림 5-19]





한국의 구글 핸드스튜디오 - 스마트아카데미 (2)

차량에서 아이폰을 쓴다면 - 스마트 아카데미

국내기업 개인정보유출 정리 - 스마트 아카데미

모바일게임 플랫폼 시장 춘추전국시대 - 스마트아카데미

스타트업 얼라이언스 출범 - 스마트 아카데미

SK텔레콤 서비스 장애 보상안내발표 - 스마트아카데미

Cre8tive ux 훈련 강좌 2014년 4월12일 개강[토요반]


   

Posted by 알 수 없는 사용자
유니티 강좌2014. 4. 21. 06:00

5. NGUI로 간단한 화면 꾸미기


이제 본격적으로 NGUI를 이용한 UI화면 구성을 해보겠습니다.

아래 그림은 이번 예제에서 완성하려고 하는 화면구성입니다.


[그림 5-1]


'NGUI Control Sample'이라는 이름으로 새로운 프로젝트를 만들고, Project창에 Scenes 폴더를 만든 뒤에 'Main'이라는 이름으로 Scene을 저장합니다.

   

그리고 Main Camera를 삭제하고, NGUI 패키지를 Import 시켜줍니다.

   

< 제작 준비물 >

Sprite(Dark) * 4, Label *3, Button * 2 Sprite(Light) * 1, Tiled Sprite * 1

※ Sprite : GUI의 기본인 사각형. Dark, Light 등 사각형의 형태를 변경 가능.

※ Label : 화면에 보일 Text, 원하는 대로 Text 변경 가능.

   

(1) 뒷 배경 만들기 – Sprite(Dark)


앞서 만들어둔 'Main' Scene에 먼저 UI Widget을 생성할 수 있도록 셋팅 환경인 UI Root, Camera, Anchor, Panel이 Hierarchy에 존재할 수 있도록, 상단의 메뉴 NGUI > Create a New UI 메뉴를 통해 네 개의 객체를 생성합니다.

그리고 상단의 NGUI > Create a Widget 메뉴를 클릭해서 Widget Tool 창을 오픈한 뒤, Atlas에 SciFi Atlas를 Font에 SciFi Font – Normal을 설정해 주고, Template을 Sprite형식으로 하고, Sprite에 Dark이미지를 설정하여 Panel에 Add To 버튼을 통해 Sprite (Dark) 객체를 생성합니다. (4강의 (5)NGUI 기초 실습 참조.)


[그림 5-2]


[그림 5-3]


그리고 방금 생성한 Sprite (Dark) 객체의 Inspector창에서 Scale값을 조정합니다. (X = 500, Y = 500)


[그림 5-4]


   

이로써 Background가 세팅되었습니다.

그 위에 다른 이미지들을 올려보도록 하겠습니다.

   

(2) 색깔 있는 사각형 만들기 – Sprite(Dark)


앞서서 Sprite (Dark)를 생성했던 것과 마찬가지로 Template을 Sprite형식으로 하고, Sprite에 Dark이미지를 설정하여 Panel에 Add To 버튼을 통해 Sprite (Dark) 객체를 3개 생성합니다.

생성한 3개의 Sprite의 크기와 위치를 Transform을 통해서 자유롭게 원하는 대로 조정해주고, Inspector에 있는 UISprite (Script) 컴포넌트에서 Color Tint 변경을 통해 원하는 색으로 변경시켜 준 뒤, 색상에 맞춰서 오브젝트의 이름을 바꿔줍니다.


[그림 5-5]


※ 위의 그림처럼 화면에서 겹쳐져 있는 Sprite들은 UISprite (Script) 컴포넌트에 있는 Depth 기능의 수치조정을 통해 어떤 Sprite 더 위에 나오게 만들지 결정할 수 있습니다.

   

(3) 상단 바 만들기 – Sprite(Light)


상단 메뉴에서 Game Object > Create Empty를 클릭해서 빈 오브젝트를 생성합니다.

생성한 빈 오브젝트의 이름을 'Anchor(Top)'으로 변경하고, Inspector창에 있는 Transform 정보에서 포지션 x, y, z 값을 모두 0으로 설정하고, 사이즈 x, y, z, 값은 모두 1로 설정합니다. (기존에 있던 'Anchor'오브젝트의 이름은 'Anchor (Center)'로 변경합니다.


[그림 5-6]

   

'Anchor(Top)' 오브젝트의 Inspector창에서 Add Component 버튼을 클릭해서 NGUI > UI > Anchor를 선택하여 UIAnchor (Script) 컴포넌트를 추가합니다.

그리고 UIAnchor (Script) 컴포넌트의 Side 기능에서 Top을 선택합니다.


[그림 5-7]


Hierarchy창에서 생성한 'Anchor(Top)' 오브젝트를 'Camera' 오브젝트에 드래그인 하여 'Camera'의 하위 객체로 만들어 줍니다.


※ 'Anchor (Top)' 오브젝트를 'Camera'의 하위 객체로 만들어 준 뒤에, Transform의 x, y, z 사이즈 값이 변경되어 있다면, 다시 모두 1로 고쳐줍니다.

   

그리고, 상단 메뉴의 NGUI > Create a Panel를 클릭해서 Panel을 하나 생성합니다.

생성한 Panel의 Inspector창에 있는 Transform 정보에서 포지션 x, y, z 값을 모두 0으로 설정하고, 사이즈 x, y, z, 값은 모두 1로 설정한 뒤, 생성한 Panel을 'Anchor(Top)' 오브젝트에 드래그인하여 'Anchor(Top)' 오브젝트의 하위객체로 만들어줍니다.

  

[그림 5-8]


Widget Tool창에서 Template을 Sprite로, Sprite을 Light로 지정하여 Anchor(Top) 오브젝트의 하위에 있는 Panel에 'Sprite(Light)'를 추가합니다.

   

생성된 'Sprite(Light)'의 Inspector에 있는 Transform에서 포지션 x, y, z 값을 0, -20, 0으로 설정하고, 사이즈 x, y, z, 값은 500, 40, 1로 설정해줍니다.

그리고, Inspector창에 있는 UISprite (Script) 컴포넌트에서 Color Tint 변경을 통해 Sprite색상을 원하는 색으로 변경시켜 준 뒤, 색상에 맞춰서 오브젝트의 이름을 바꿔줍니다.


[그림 5-9]


   

스마트 시장에서 성공하기 위한 당신의 첫 걸음스마트 아카데미

스마트 아카데미 '스마트 앱 개발' 교육과정 안내

스마트 앱 개발 학원 국비지원 안내

스카이 아카데미 취업 정보 - 선데이토즈 이야기

창의인재과정 안내

크리에이티브 UX교육 훈련과정 안내

우아한 형제들 김봉진 대표 - 앱 개발 전문 학원 스마트 아카데미


Posted by 알 수 없는 사용자
창의교육2014. 3. 25. 12:15

Cre8tive ux 훈련 강좌

   

스마트아카데미에서는 사람에 대한 이해로부터 창의력과 UX를 체계적으로 훈련하고 그것을 자신의 능력으로 만드는 교육과정을 진행하고 있습니다.

   

이 과정은 창의력과 UX 융합 실무교육 과정으로써 인문학을 기반으로 한 창의력 증진 강좌, 즉 림빅(Limbic)맵 구성, 전뇌 매트릭스 활용, 퓨쳐스 힐 기법 경험 등 8가지 과학적인 방법을 통하여 자신에게 맞는 창의력을 개발하고, 자신에 대한 이해를 확장하여 다른 사람에 대한 이해와 사용자 경험을 체계적인 UX기법으로 훈련하도록 구성되어 있습니다.

   


개요와 사례분석, 설계단계부터 실무실습까지 체계적으로 학습이 진행되며 사람에 대한 이해를 통해 새로운 경험을 상품, 서비스를 설계하는 능력을 함양 할 수 있습니다.


교육 과정 안내

   

2014년 크리에이티브 UX 훈련 강좌

   

모집과정 크리에이티브 UX 훈련 과정

   

모집기간 과정별 정원 완료 시

   

교육일정 (총 4주간 4일 20시간 / 매주 토요일 13:00 ~ 18:00)

   

토요 반: 1월 25일 토요일 강좌 (마감)

4월 12일 토요일 개강 (모집 중)

 

.

   

교육비용 55만원.

   

교육대상 창의력을 체계적으로 키우고자 하는 사람.

     사람에 대한 이해를 바탕으로 신상품과 서비스를 기획하려는 사람

     새로운 상품과 서비스로 창업을 꿈꾸는 예비 창업자.

   

교육 과정 소개

   

1. 창의력 개발

   

· 인문학을 기반으로 하는 창의력 증진 강좌를 합니다.

· 체계적인 창의력 개발 방법론 적용과 훈련으로 체득화 과정 진행합니다.

· 림빅(Limbic)맵 구성, 전뇌 매트릭스 활용, 퓨쳐스 힐 기법 경험 등 8개의 개발방법론을 모두 사용함으로써 자신에게 맞는 방법을 찾을 수 있습니다.

   

 

   

UX훈련


·UX는 아이팟과 아이폰으로 시작된 애플의 혁명의 근원입니다.

   

사람에 대한 이해, 사용자 경험에 대한 분석으로 새로운 경험을 상품, 서비스, 게임에 제시합니다.

   

 

   

3. 크리에이티브

   

   

·자신에 대한 이해를 창의력으로 발전 시킬 수 있습니다.

·다른 사람에 대한 이해를 UX로 훈련 합니다.

·사람에 대한 과거의 경험과, 현재의 상황, 그리고 미래의 목표를 이해하고 제품과 서비스를 설계하는 능력을 함양할 수 있습니다.

 

커리큘럼

   

 

   

등록안내

   

크리에이티브 UX 강좌 등록안내

   

신청문의: 스마트아카데미 교육안내 (T. 02-567-3885)

   

수업 참여시 준비물 : 간단한 필기도구와 창의력에 필요한 편안한 마음을 준비하세요!



Smart Academy

   

스마트 아카데미의 공식블로그 입니다. 

문의 전화 : 02-567-3885    mail : support@smartacademy.or.kr 




Cre8tive ux 훈련 강좌 2014년 4월12일 개강[토요반]

APP 개발 온라인 강좌 제3강 [3-6-1] - 비주얼 프로그래밍이란? - PlayMaker 사용해보기

SK텔레콤 서비스 장애 보상안내발표 - 스마트아카데미

스타트업 얼라이언스 출범 - 스마트 아카데미

APP 개발 온라인 강좌 제3강 [3-5] - 비주얼 프로그래밍이란? - Finite State Machine(FSM)

 모바일게임 플랫폼 시장 춘추전국시대 - 스마트아카데미

 APP 개발 온라인 강좌 제3강 [3-4] - 비주얼 프로그래밍이란? - 플레이메이커의 설치


Posted by 알 수 없는 사용자
유니티 강좌2014. 3. 25. 06:00

2) State 구성하기


Playmaker의 Editor창에 있는 State탭에서 'State 1'이라고 되어 있는 이름을 'Wait' 이라고 변경해줍니다.


[그림 3-20]


이 State가 하게 될 역할은 큐브가 바닥에 떨어지는 시간 동안 기다릴 역할을 하게 될 것입니다.


그러면 이제 기다리라는 내용의 Action을 State에 넣어서, State 구성을 완성해보겠습니다.


Playmaker Editor 창에서 State를 선택한 상태에서 State 탭을 보면 우측 하단에 Action Browser라는 버튼을 볼 수 있습니다.


[그림 3-21]


이 버튼을 클릭하면, State에 넣을 수 있는 액션들이 나열된 창을 보실 수 있습니다.

Action Browser에서 Time > Wait 메뉴를 더블 클릭해서, 'Wait' State에 추가해줍니다.

  

[그림 3-22]


'Cube'가 'Plane' 위에 떨어지는 속도는 1초 정도 걸리므로, Time의 수치는 기본으로 설정되는 1 값을 그대로 사용합니다.

그 다음, Playmaker Editor창에서 'Wait' State를 우 클릭 했을 때 나타나는 메뉴에서 Add Transition > FINISHED 메뉴를 클릭해서 FINISHED Event를 생성해줍니다.


[그림 3-23]


그리고 다시 State에 설정된 Wait 액션으로 돌아와서 Finish Event를 앞서 설정한 FINISHED Event 이벤트로 연결해줍니다.

 

[그림 3-24]


이로써, Wait 액션의 기능이 [1초 동안 기다린 다음, FINISHED 이벤트를 발동시켜라.] 라는 행동을 할 수 있게 되었습니다.

   

※Playmaker Editor에서 작업을 진행하다 보면, State에 빨간색 느낌표가 나타나는 경우가 있습니다.


   [그림 3-25]


아마 'Wait' State에 FINISHED 이벤트를 생성해준 순간 빨간색 느낌표가 나타났을 것입니다.

이 느낌표 표시는 현재의 State에 에러가 있다는 것을 의미하며, 자세한 내용은 PlaymakerEditor창의 하단에 있는 error 버튼을 누르면 확인할 수 있습니다.


[그림 3-26]


[그림 3-26]에서 에러 내용을 살펴보면 ['Cube'오브젝트에 있는 'FSM CUBE POSITION RESET' FSM의 'Wait' State에 설정된 이벤트 중, 타겟이 될 State에 연결되지 않은 것이 있다.] 입니다.


State에 설정되는 이벤트들은 어떠한 상황이 일어난 것을 액션에서 감지하고, 그 액션에서 [현재의 상태를 특정 이벤트가 타겟으로 잡고 있는 상태로 변화하라.]는 명령을 실행할 때, 타겟을 잡아주는 과정에 포함되기 위해서 존재합니다.


앞서 설정한 'Wait' State의 경우에는 FINISHED 이벤트가 설정된 이유가 [1초 동안 기다린 후, FINISHED 이벤트가 타겟으로 잡고 있는 상태로 변화하라.] 라는 명령을 구성하기 위해서 입니다.

그런데, 정작 FINISHED 이벤트에 연결된 다음 상태가 없기 때문에 에러가 나타난 것입니다.

   

이제 다음 State를 하나 더 만들어 준 후에 State 이름을 'Reset Cube Position'이라고 이름을 지어줍니다.

그리고 'Wait' State의 FINISHED 이벤트를 클릭 & 드래그를 해서 화살표를 꺼낸 뒤, 'Reset Cube Position' State에 연결시켜줍니다.


[그림 3-27]


[그림 3-28]


그 다음 'Reset Cube Position' State를 선택하고 Action Browser 창을 Open 한 뒤, Transform 카테고리에서 Set position 액션을 찾아서 더블 클릭하여 'Reset Cube Position' State에 삽입합니다.

  

[그림 3-29]


※ Action의 카테고리 종류와 그 안의 내용 배치에 대해서 다 이해할 수 있을 때까지는 검색기능을 사용하기보다, 직접 카테고리를 클릭해서 열어보며 액션들과 카테고리의 연결점에 대해서 생각해보는 것이 좋습니다.

   

그리고 삽입한 Set Position 액션에서 Y축 입력 칸의 우측에 있는 변수 사용(Use Variable) 버튼을 눌러서 해제 상태로 만들어준 뒤, 절대값 2를 입력합니다. (2를 입력하는 이유는 Cube를 선택하고 Inspector창에서 Transform을 확인해보면 큐브가 떨어지기 전에 셋팅되어 있는 Y축 좌표 값이 2이기 때문입니다.)


[그림 3-30]


이렇게 설정된 Set Position 액션의 내용을 설명하자면 다음과 같습니다.

① 움직여야 할 Game Object는 Use owner (FSM이 존재하는 오브젝트. 즉, 'Cube' 자기 자신)

② 움직여야 할 위치는 Y축으로 변수 값이 아닌 절대값 2만큼

③ 움직일 때 참고할 방향 좌표는 World를 기준으로


[그림 3-31]


이제 플레이 버튼을 눌러서 어떤 결과가 나타나는지 확인해봅시다.

Game창에 보이는 화면에서 'Cube'가 'Plane' 위에 떨어졌다가, 다시 원래의 위치로 되돌아가서 떨어지는 것을 보실 수 있습니다.

Playmaker Editor창을 보면 초기에 Start > 'Wait' State에 녹색빛이 머물렀다가, 1초 뒤에 'Reset Cube Position' State로 이동하는 것을 볼 수 있습니다.

   

※ 오브젝트에 FSM 컴포넌트가 들어간 이후에는 Scene 창에서 오브젝트를 보면 PlayMaker 로고가 반투명하게 표시되어 보이는 것을 보실 수 있습니다. 이 로고가 오브젝트를 가려서 거슬리는 분들은 아래의 그림과 같이 Scene창에서 Gizmos버튼을 클릭했을 때 나오는 메뉴에서 PlaymakerFSM의 체크를 풀어주면 됩니다.

 

[그림 3-32]


다음으로 큐브가 한 번만 포지션이 리셋되는 것이 아니라, 떨어질 때마다 매번 포지션이 리셋이 되도록 한 번 만들어 보겠습니다.

   

먼저 Playmaker Editor 창에서 'Reset Cube Position' State를 우 클릭 했을 때 나타나는 메뉴에서 Add Transition > FINISHED 메뉴를 클릭해서 FINISHED Event를 생성해줍니다.

그리고, FINISHED Event를 클릭 & 드래그하여 'Wait' State를 타겟으로 하도록 연결시켜 줍니다.


   [그림 3-33]


   그리고 다시 플레이 버튼을 눌러서 매 1초마다 큐브의 위치가 잘 Reset 되는 지를 확인해봅시다.

   

※'Reset Cube Position' State는 내부에 있는 액션이 Finished Event를 설정할 수 없는 액션이 없는데도 불구하고, FINISHED 이벤트가 타겟으로 설정하고 있는 'Wait' State로 상태 변환이 잘 일어나는 것을 볼 수 있습니다.

그 이유는 시스템에서 기본으로 제공하는 FINISHED 이벤트는 State 내에 Every Frame 과 같이 지속적으로 체크를 해줘야 하는 액션설정이 존재하지 않는 이상 자동으로 다음 State로 처리과정을 넘겨주는 기능을 가지고 있기 때문입니다.

만약, State내에 지속적으로 체크를 하는 속성의 액션이 있다면, Wait이나 Send Event 액션으로 Finished Event를 설정해줘야 처리과정을 다음 State로 넘길 수 있습니다.

   

다음 강좌에서는 Prefab 만들기에 대해 알아보겠습니다.


스마트 아카데미 '스마트 앱 개발' 교육과정 안내

스마트 앱 개발 학원 국비지원 안내

K팝 홀로그램 상설공연장 개소

구글의 네스트 인수 의미

스카이 아카데미 취업 정보 - 선데이토즈 이야기

창의인재과정 안내

미래창조과학부 창조경제 실현

크리에이티브 UX교육 훈련과정 안내


Posted by 알 수 없는 사용자