달력

11

« 2018/11 »

  •  
  •  
  •  
  •  
  • 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
  •  
2014.04.09 15:59

Unity 3D 터치 이벤트_2 프로그래밍/Unity & c#2014.04.09 15:59




지난 포스팅에 이어 터치 관련 포스팅.

 

이번엔 화면을 터치하면 cube 를 생성하여, 정해진 위치까지 도착하게( 마치 하늘에서 내가 떨어트리듯이 )하는 것을 목표로 작성을 해보았다.

 

 

먼저 Hierarchy 와 Project를 다음과 같이 세팅해두자.

 

 

 

[ Hierarchy ]

* Dirctional light ( Dirctional light )

* Main Camera ( Main Camera )

* Plane( Plane )

* GameManager ( 빈 게임오브젝트 ) -> CsGameManager가 링크

 

[ Project ]

* CsCube( C# 스크립트 ) -> Cube 프리팹에 링크

* CsGameManager( C# 스크립트 ) -> GameManager에 삽입

* Cube( 프리팹 ) -> Create Cube를 통해 만든 Cube + CsCube

* Cube_Color( 큐브 매터리얼 ) -> 없어도 무관

* Plane_Color( 바닥 매터리얼 ) -> 없어도 무관

* Touch( Game Scene )

 

 

*기본적인 유니티의 프리팹 , C# 스크립트, 매터리얼 설정은 알고 있다는것을 전제로 작성되었습니다.

(그렇지 않으면 내용이 너무 길어져서)

 

이전 포스팅에서 사용했던 코드를 조금만 응용해서 추가로 작성해 보았습니다.

먼저 CSGameManager의 코드입니다.

 

 

 

 

코드로 내용을 보시면 알겠지만, 전에 터치로 좌표를 파악했던 코드에서 크게 변하지 않았습니다.

 

일단, List< GameObject > cubeList 가 추가되어 GameObject를 여러개 담아두기 위한 무언가가 추가가 되었군요.

 

* using System.Collections.Generic; 을 해주어야 LIST가 사용가능 하다는 점을 참고하세요.

 

그외 추가된것이라면 프리팹을 사용하여

해당 위치에 Cube를 생성,

Ray의 방향( Direction )을 가져 와서 그 위치를 SetDir 이라는 함수의 인자로 넣어줬을 뿐이죠.

 

내용 자체는 크게 많지 않지만,

 

터치 후 Ray를 지정, GetComponent를 사용하여 생성된 GameObject의 Function에 인자를 전달 하는 기능까지 한번에 활용해 보았습니다.

 

사실 이것만 가지고는 잘 모르 실 수 있으니 CsCube의 내용을 바로 보도록 하겠습니다.

 

 

 

 

보시는것과 같이 CsCube 또한 대단한 내용은 없습니다.

 

단지 public SetDir 이라는 Function을 통해 어디선가 Vector3의 인자값을 받고 있다는것,

 

OnCollisionEnter가 발생 시, bMove값을 false로 변경해 주는 정도겠네요.

나머지는 Update에서 해당 방향으로 이동시키는 일 뿐이고.

 

그럼 이제 실제로 플레이를 해보면 다음과 같이 진행됩니다.

 

* 동영상을 찍을까 했지만, 그냥 스크린샷으로 대체 합니다.

 

 

 

 

Posted by 안식의후크
2014.04.01 18:44

Unity 3D 터치 이벤트 프로그래밍/Unity & c#2014.04.01 18:44




터치를 활용하는 예제를 만들어 보도록 하겠습니다.

 

PC환경에서는 마우스 클릭이나 키보드 입력을 주로 사용하겠지만, 실제로 폰으로 옮겨 질때는 터치 기능으로 작업을 해야겠죠.

 

터치 자체가 그렇게 어렵지는 않습니다.

 

일단 설명보다 바로 코드로! 

 

 

 

 

 

Unity Remote를 사용해 직접 터치를 해보니 다음처럼 표기 됩니다.

손가락을 여러개로 터치해 보았을 때

 

 

한곳만 터치해 보았을 때,

 

 

일단 기본적인 터치 방법과 그 좌표를 출력하는 테스트를 해보았습니다.

 

여기서 조금더 활용해 보면, 이렇게 됩니다.

 

 

 

 

시작점과, 이동중일때, 그리고 손을 땠을때를 좀더 자세히 알 수 있습니다.

 

 

터치가 되는 좌표는 2D 좌표이기때문에 x, y 뿐이지만 실제로 이것을 이용하여 3D로 바꾸는 작업을 진행해야 합니다.

물론 단순히 터치가 되었나, 어느쪽으로 방향을 틀었나, 정도라면 지금정보로도 충분히 활용 할 수 있습니다만,

저 좌표를 이용해 게임내에 오브젝트를 이동하거나 생성하고 싶다면 3D 좌표로 변환을 해야겠죠~

그 부분은 다른 예제와 함께 다음 포스팅에서 살펴 보도록 하겠습니다.

 

Posted by 안식의후크



 

 

안드로이드에서 기본적으로 환경 설정에 들어 갈 경우 개발자 모드가 있지만,

 

최근 안드로이드 버전에서는 개발자 옵션이 기본적으로 꺼져 있는 경우가 있다.

( 필자의 경우 갤럭시 S4 인데 꺼져 있었음 )

 

개발자 옵션 켜기 그리고 다음 포스팅의 내용인 Unity Remote( PC에서 폰으로 바로 디버그 하기 )를 사용하기 위한 사전 단계인

USB 디버깅 모드 까지 켜놓도록 하자.

 

* 본 내용은 갤럭시 S4, 안드로이드 4.3 버전으로 작성 되었습니다.

 

1. 개발자 옵션 켜기

 

메뉴 버튼 -> [환경설정] -> [더보기] -> [디바이스 정보]

( 해당 스크린샷은 이미 개발자 옵션을 띄워 놓은 상태 )

 

하단에 존재하는 빌드 번호 터치

( 흑백 이라 선택이 안될거 같지만 터치 된다. )

 

 

터치하게 되면 1,2,3 단계 라고 메시지가 뜨고 그 이후에 개발자 옵션이 활성화 되었다는 메시지가 나온다.

 

2. SUB 디버그 모드 켜기

 

다시 초기화면 기준으로

 

메뉴 버튼 -> [환경설정] -> [더보기] -> [개발자 옵션]

 

개발자 옵션 모드를 켠다.

 

[개발자 옵션] -> [USB 디버깅]

 

이로써 다음 포스팅할 Unity Remote를 하기 위한 사전 작업이 완료 되었다.

 

 

 

Posted by 안식의후크



 

* 본 글은 Unity 4.x 기준, 안드로이드 4.3 기준으로 작성 되었습니다.

 

 

Unity Remote 를 하기전에 추가로 설치 해야 하는 부분이 있는데,

usb 통합 드라이버를 설치 해야 한다.

 

설치를 안해도 문제가 없는 경우도 있으나,

거의 대부분 Remote가 정상적으로 실행되지 않는 경우가 많다.

 

꼭 설치 하도록 하자.

 

다운로드 링크(클릭)

 

 

통합 USB 드라이버 설치!


설치 방법 자체는 홈페이지에 더 상세히 나와 있으니 패스!

 

정상적으로 설치가 된것을 확인 했으면 다음 작업을 진행하기 전에

 

혹시 개발자 옵션이 보이지 않거나,

디버그 모드를 설정하지 않았을 경우 설정하고 오도록 하자.

 

 

Android에서 개발자 옵션 켜기 & 디버그 모드로 전환 (클릭)

 

 

본격적으로 Unity Remote를 작동해보자.

 

순서는 다음과 같습니다.

 

1. 스마트폰에 Unity Remote 설치

구글 스토어에 "Unity Remote" or "유티니 리모트" 검색 후 설치

 

이렇게 된건 다운 받으시면됩니다.

 

 

2. PC와 스마트폰을 USB로 연결

통합 usb 드라이버가 잘 설치 되었는지 꼭 확인하시길 바랍니다.

 

 

3. Unity Remote 실행

설치 후 실행 화면

 

 

4. Unity3D 실행

가능하면 Remote를 실행 한 이후에 Uniry를 실행할 것은 권장합니다.

 

5. [Play(▶) 실행]

 

 

 

아마 Game Scene 뿌려지고 있는 내용들이 핸드폰에 똑같이 뿌려지는 것을 확인 하실 수 있을겁니다.

 

 

 

바로바로 해상도를 변경 할 수 있으니 참고 하시기 바랍니다.

 

* 실제로 PC에서도 거의 대부분의 디버그는 다 확인을 할 수 있습니다.

굳이 Remote를 사용하는 이유는 터치나, 드래그 같은 부분은 pc로는 디버그 하기가 매우 힘들고 한계가 있기 때문입니다.

매번 테스트 할때 마다 빌드를 새로 하고 파일을 옮기고 다시 설치 하는 부분이 번거롭기 때문입니다.

( 듣기로는 빌드, 파일 이동, 설치를 좀더 편하게 하는 방법이 있다고 하는데 알아 봐야 겠습니다. )

 

 

Posted by 안식의후크



하하.. 환경 변수 관련 작업 하다 재부팅 했는데 저장을 안해고 했나보다...

글이 다 날아갔네. ㅋ

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

다행이 스샷은 남아 있네.

잡설은 다 지우고 스샷으로 설명하겠음

어째뜬 유니티에서 안드로이드 앱 빌드 하기! 이어 가겠습니다.

 

 

 

 

* 본 글은 Unity 4.x 기준으로 작성 되었습니다.

 

3. (안드로이드 기준) Android SDK 설치

 

다운로드 링크

 

 

 

 

* JDK 처럼 설치 파일이 아니라 압축 파일입니다.

 

압축 파일을 실수로 지울 수 있거나, 한글이 들어갈 법한 위치는 제외하는걸 추천( 바탕화면이나 다운로드 폴더 같은 경우 )

적당한 폴더 위치를 지정하여 기억해 두도록 합니다.

 

 

[Edit] -> [Preferences...] 선택

 

[External Tools] -> [Android SDK Location] 선택

 

 

주의 해야 하는 점은 조금전 [Andorid SDK]를 저장해 놓은 폴더가 아닌 그 폴더 안에 [SDK] 폴더입니다.

 

* 바뀐게 생겼는데, 이제는 Android Studio 를 실행하여 추가로 sdk 주소를 확인 하여야 합니다.


[Configure] 선택


이 곳에 보이는 Android SDK location 의 주소를 복사 하여 입력해야 함.

 

여기까지 하셨다면 기본적인 빌드를 위한 준비는 끝이 났습니다.

 

 

4. Unity 세팅 및 빌드 작업

[File] -> [Build Settings...] 선택

다음과 같은 화면이 나타납니다.

먼저 안드로이드로 빌드를 해야 하기에( 아마 기본이 PC, Mac으로 되어 있을 겁니다. )

[Android] -> [Switch Platform] 선택

 

정상적으로 유니티 아이콘이 안드로이드 옆에 표기 되었다면 이제 빌드를 하게 되면 apk 파일이 나오게 될 것입니다.

( 아직 빌드 하지 마세요 )

 

빌드를 바로 하게 되면 오류가 발생.

 

Bundle Identifier has not been setup correctly

 

라는 에러 메시지를 확인 할 수 있습니다.

 

세팅을 통해서 지역.회사명.제품명을 새로 입력해 달라는 의미입니다.

원하는 이름으로 수정하시고 다시 빌드 하시면됩니다.

[Player Settings...] 를 선택하면 Inspector에 [Identification] 에서 [Bundle Identifier] 이 해당 부분입니다.

버전 정보도 들어가야 하지만 꼭 처음이라고 1.0이 무조건 들어 가야 하는것은 아닙니다.

 

혹시 그 이후 다시 빌드를 하였는데,

 

Unable to find suitable jdk installation

 

오류가 나타난다면, JDK를 설치해 주시면 됩니다.

 

* 중요 : 만약 JDK를 설치 하였는대로 다음과 같은 오류가 뜬다면, 환경 변수가 지정 되어 있지 않거나( 이전 포스팅 참조 ), 환경 변수 설정 이후 재부팅을 하지 않아서 입니다.

 

 

이제 모든 설정 세팅이 마무리 되었습니다.

 

 

 

빌드 버튼을 누르면 실제 출력될 파일 이름 입력 및 출력될 위치를 지정하게 됩니다.

 

여기 까지가 최소한의 빌드를 하기 위한 부분이고

그것과 관련된 추가적인 빌드 옵션은 더 많이 있으나 다음에 포스팅 하는걸로 하겠습니다.

 

 

 

 

 

 

 

Posted by 안식의후크



오랜만에 포스팅이라 감을 다 잃었지만,

첫 포스팅은

 

Unity Build !

 

안쓰이는 로직이나 기술적인 부분이 있을지는 모르지만

빌드는 누구나 다 하게 될테니~

가장 먼저 포스팅하는걸로.

 

 

 

* 본 글은 Unity 4.x 기준으로 작성 되었습니다.

 

실제 빌드 작업을 진행하기전에 다음과 같은 선행 작업이 필요 합니다.

 

1. JDK( Java SE Development Kit ) 설치

2. (대부분 자동으로 설정되지만) 환경 변수 등록

3. (안드로이드 기준) Android SDK 설치

4. Unity 세팅 및 빌드 작업

 

1. JDK( Java SE Development Kit ) 설치

 

JDK를 다운로드 하기 위해 다운로드 페이지로 이동합니다.

 

다운로드 링크

 

접속하면 다음과 같은 화면이 보이게 될텐데,

 

 

(2014-03-19 기준)

 

 

 

 

조금 더 자세히 보면 다음과 같은 창이 뜹니다.

 

 

(2014-03-19 기준)

 

확인 후 자신의 조건에 맞는 파일을 다운받습니다.

 

다운 후 특별한 설정없이 기본으로 설치하시면됩니다.

 

 

다음과 같이 정상적으로 설치 되었음을 확인 한 이후.

 

 

 

설치 폴더를 기억해 둔다.

 

 

2. 환경 변수 등록

 

환경 변수 등록을 진행합니다.

 

 

 

 

 

 

 

 

① 환경 변수를 새로 추가한다.

② 변수 이름, 변수 값 설정

 - 변수 이름 : JAVA_HOME (이미 등록 되어 있는 경우도 있을 수 있음 )

 - 변수 값 : 설치한 jdk의 폴더 위치 입력( 이미 JAVA_HOME 변수가 있는 경우 실제 설치한 위치와 동일한지 확인 )

 

 

JDK 설치가 완료 되었으면, 다음은 Android SDK 설치로 넘어가자.

 

 

 

Posted by 안식의후크
2014.03.19 13:37

Unity 카테고리 추가! 프로그래밍/Unity & c#2014.03.19 13:37




이러나 저러나 유니티를 해야 할 상황인듯,

 

목표는 올해 안에 구글스토어에 출시!

 

덩달아 블로그도 다시 !

Posted by 안식의후크