• [Unity Engine] 유니티로 퍼즐드래곤 만들기 - part52014.08.02 AM 10:43

게시물 주소 FONT글자 작게하기 글자 키우기

6번째네요. 세월참 빠르군요...(?)

이번에는 이전에서 언급한 미완성 요소를 완성할 것이다.

콤보
보드 밖으로 나갈때 처리
파괴 - 생성을 좀 자연스럽게
파괴 시퀀드 동안 입력막기

일단 쉬운거부터 하자 Element가 파괴되는 시퀀스 상에서는
터치를 막고자 한다. 터치를 막는 시점은 터치이벤트가 끝난시점이 올바르다.
터치가 끝난후 일처리를 다 한 다음 일이 다 끝나면 터치권한을 다시 주는 것이다.

여기서 생기는 문제점은 터치를 막는 곳은 Element인데
푸는 곳은 Board의 endSequence()가 끝나는 시점이라는 것에 있다.
이렇게 막는곳 따로 푸는곳 따로 있으면 나중에 보기도 어렵고
다른사람이 볼때 짜증을 낼것이다. 해결방법은 board가 Element에게 끝났다고 알려주면 된다.

Board에서는 다음과같이 선언을 하면 Element에게 endSquence()가 끝남을 알릴 수 있다.


이제 Element에서 다음과 같은 식으로 코드를 짜주면...

보기도 쉽고 올바른 형태의 코드가 나오는 것을 알 수 있다.

콤보
보드 밖으로 나갈때 처리
파괴 - 생성을 좀 자연스럽게
파괴 시퀀드 동안 입력막기

이제 파괴를 좀 자연스럽게 해보자.
퍼즈도라에서는 알파값을 서서히 낮추는 식으로 없어지는척(?) 하고 다시 나타날때는
알파값을 서서히 높이는 식으로 생성되는 척(?)한다.

알파값을 조절하는 루틴을 Element에 설정해 주자.
아래는 duration 동안 해당하는 값으로 변하는 코루틴이다.

사실 이런 코루틴들은 서로 비슷할 수 밖에없다. 따라서 Templete으로 만들어서
사용하는 방법이 있을텐데 라는 생각이 문뜩 들 것이다. 뭐 일단 이거에 관해서는 나중에하고

이제 Element들을 손을 보기전에 다음 그림을 보자 대략적인
TurnEndSequece를 표현해 보았다.


여기서 다른 객체에게 명령을 하고 기다리는 것을 코루틴으로 만들 수 있다.
세세하게 많이 고쳐서 모든 코드를 올릴순 없고 새로 고친 endSequence()를 보자
코루틴이 어떻게 활용되고 실행되는 대략적인 코드이다.


여기서 잠깐 코루틴에대한걸 더 알고 싶다면 다음 사이트를 추천한다.
원본 (영어 ) : http://unitygems.com/coroutines/
번역본 : http://unityindepth.tistory.com/entry/Coroutine
내용을 보기 어려우면 유튜브 동영상에 나오는 코드를 보고 차례대로 따라쳐보면 감이 잡힐 것이다.

콤보
보드 밖으로 나갈때 처리
드롭 조작시간처리
파괴 - 생성을 좀 자연스럽게
파괴 시퀀드 동안 입력막기

여기까지만 하고 다음 마이피에선 나머지를 하겠다.


댓글 : 1 개
초반에 대기하는거 코루틴 쓰다가 복잡해서 요즘에는 invoke만 썼는데
코루틴이 다른 기능들도 많았군요 배워갑니다 ~
친구글 비밀글 댓글 쓰기