달력

12

« 2018/12 »

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

'list'에 해당되는 글 2

  1. 2014.04.09 Unity 3D 터치 이벤트_2 (2)
  2. 2010.04.05 시퀀스 컨테이너 - vector, list, deque
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 안식의후크





일단 vector와 deque는 동적 배열,
list는 링크드 리스트 구조 라고 보면 될듯 하다.


vector는 stack구조,
deque는 queue구조 라고 볼 수 있는데.

둘다 동적 배열의 기능으로써 데이터를 삽입하는 것에는 큰 차이가 없다.

vector는 뒤에서 부터,
deque는 앞, 뒤 양쪽에서 삽입이 가능하다.

vector의 사용법.

다음은 deque의 사용법.


list는 [] 참조가 불가능하고 나머지는 비슷하다.
list를 참조하기 위해서는 반복자가 필요 하다.
일단 개념만 파악하기 위해 간단한 예제를 보자.

소스를 보면 데이터를 참조해서 출력하는것이 아닌,
단순히 최상위 데이터만 확인, 데이터를 하나씩 pop하고 있다.
일단 저런식으로 사용한다는 것만 파악해 두자.

'프로그래밍 > STL' 카테고리의 다른 글

연관 컨테이너 - Set, Map, multiSet, multiMap  (0) 2010.04.08
iterator - 반복자  (0) 2010.04.08
시퀀스 컨테이너 - vector, list, deque  (0) 2010.04.05
용어적 설명.  (0) 2010.04.05
2가지 변수를 저장하는 pair  (0) 2010.04.04
numeric_limits.  (0) 2010.04.02
Posted by 안식의후크