달력

06

« 2018/06 »

  •  
  •  
  •  
  •  
  •  
  • 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

'System.Collections.Generic'에 해당되는 글 1

  1. 2014.04.09 Unity 3D 터치 이벤트_2 (2)
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 안식의후크