문제
1. S 자 형태 경로를 그리며 지나는 오브젝트들이 존재.
2. 오브젝트는 0.7초에 한번씩 생성되어 경로를 따라감.
3. 마지막 끝 점에 도달하면 하나씩 쌓임.
4. 경로 전체에 오브젝트가 꽉 차면 오브젝트 생성 중지.
5. 사용자로부터 특정 이벤트를 받아올 경우 맨 마지막 오브젝트가 Destroy
이때, 쌓인 오브젝트가 다시 경로를 따라가다 마지막 지점에 도달하면 움직임 다시 중지.
그래서 생각해본 해결방안들.
1. S 자 형태 경로를 그리며 지나는 오브젝트들이 존재.
iTween Motion Path 를 사용하여 해결. 정말 너무너무 편하다ㅠㅠ
관련 링크 : http://pixelplacement.com/2010/12/03/visual-editor-for-itween-motion-paths/
동영상으로 친절하게 강의해주심. 짱짱굿bb
영어...로 설명해주시긴 하나 화면 그대로 따라하면 됨! 역시 영어는 선택이 아닌 필수ㅠㅠ
2. 오브젝트는 0.7초에 한번씩 생성되어 경로를 따라감.
Coroutine 문을 사용하여 해결.
코루틴..은 내가 코딩한 부분에서 많이 쓰인건데... 포스팅이 시급하다ㅠㅠ
일단 설명을 링크 : http://docs.unity3d.com/Documentation/ScriptReference/index.Coroutines_26_Yield.html
0.7초에 한번씩 오브젝트가 생성될 수 있도록 하는... 코루틴 함수의 형태는 아래와 같다.
GameUpdate.cs
IEnumerator GameUpdate()
{
while(bLoop) // bLoop == true
{
yield return new WaitForSeconds(0.7f);
// Create Object
}
}
3. 마지막 끝 점에 도달하면 하나씩 쌓임.
오브젝트 프리팹에 Rigid Body 컴포넌트를 붙였다. 아, 물론 경로대로 움직여야 하니 Use Gravity는 꺼준다.. 별로 좋은 방법은 아닌 것 같은데 일단 OnCollisionEnter 함수를 사용하여 충돌이 발생할 경우 오브젝트를 멈추게 해두었다.
Object.cs
void OnCollisionEnter(Collision col)
{
iTween.Pause(gameObject);
]
이렇게만 해 두었더니 물리적인 충돌에 의해서 오브젝트가 쌓이긴 커녕 서로 충돌되어 사방으로 빵빵 날라가는 어마어마한 사태가....
그래서 아래 함수도 추가해주었다.
void OnCollisionStay(Collision col)
{
rigidbody.constraints = RigidbodyConstraints.FreezeAll;
}
Constraints가 뭐냐 하면.. 물론 검색해도 나오겠지만...
Rigid Body 컴포넌트를 보면 위 그림의 형광펜 표시한 부분이 있다. 일반적으로는 접어두기 되어있으니 펼쳐주자.
..학교에서 좀 예전에 배운거라 가물가물하긴 한데 쉽게 생각하면 Freeze Position은 위치를 고정시켜주는 부분이고 Freeze Rotation은 회전되지 않도록 고정시켜주는 것. 이 기능을 스크립트에서 어떻게 쓰는거 하고 찾아봤더니 Rigidbody 컴포넌트에 값을 넣어주는 형식으로 (저 위 소스처럼) 쓰더군.
내가 지금 만드는 게임에서는 회전해서도 안되고, 위치가 이동되어서도 안되니 FreezeAll 을 해주었다.
4. 경로 전체에 오브젝트가 꽉 차면 오브젝트 생성 중지.
아무래도 이건 1)노가다를 한다. 2)이전 오브젝트가 움직임이 없으면 생성하지 않는다. 이 두 가지 방법중에 하나를 선택해야 할 것 같다. 안정??적인건 2)번인듯 하니 2)번을 이 포스팅 완료하고 코딩해봐야지.
5. 사용자로부터 특정 이벤트를 받아올 경우 맨 마지막 오브젝트가 Destroy
이때, 쌓인 오브젝트가 다시 경로를 따라가다 마지막 지점에 도달하면 움직임 다시 중지.
요놈이 제일 문제다. 일단 4번부터 해결하고 나서 고민해봐야겠다. 지금까지 고민해본 바로는... 이전 오브젝트의 움직임이 있을 경우 현재 오브젝트도 움직여주는 방식.... ? 이 어떨까 싶은데. 음...
'스터디 > 졸업작품' 카테고리의 다른 글
13. 3. 31. 발등에 떨어진 불 (0) | 2013.03.31 |
---|---|
13. 3. 21 진행상황. (0) | 2013.03.25 |
13. 3. 2. 진행상황 (0) | 2013.03.05 |
130123 진행상황 (0) | 2013.01.24 |
[졸업작품] 130121 진행상황 (0) | 2013.01.21 |