코루틴(6)
-
StopCoroutine() 의 활용 2 - Coroutine continue failure
앞서 정리한 스탑코루틴의 활용 1의 내용으로 개념을 잡고 넘어가자. 코루틴 호출은 script.StartCoroutine() 으로 호출하게 되어있고, 앞부분을 생략하고 StartCoroutine()으로 호출하면 자동적으로 콜링한 스크립트에서 제어하는 코루틴으로 호출되도록 되어있다. 즉 StartCoroutine( ~~~ ) 를 포함하여 코루틴을 호출하면 이 코루틴은 자신을 콜링한 스크립트가 달려있는 게임오브젝트에 할당되는 것이다. 이것이 적용되어 해당 게임오브젝트를 disable시키면, 그 게임오브젝트에 할당되어 돌아가던 모든 코루틴은 정지된다. (StopAllCoroutine의 효과) 위의 그림을 참고하자. 위 그림은 이런 상황을 거친 결과다 Scr Main=== start() { StartCorout..
2015.10.14 -
StopCoroutine() 의 활용
코루틴을 멈추는 데에는 몇가지 방법이 있다. AllStopCoroutine(); 을 이용하여 전체 코루틴을 종료하는 것이 한가지 방법인데, 이때에는 해당 스크립트가 붙어있는 게임 오브젝트에 달려있는 모든 코루틴을 종료하는 것이므로 주의해야한다. 게임오브젝트를 비활성화 하는 것도 AllStopCoroutine을 호출하는 것과 같은 효과를 낸다. 전체를 끄거나 오브젝트에 코루틴이 하나만 달려있거나, 오브젝트별 코루틴을 잘 관리하고 있다면 위와 같은 방법이 효과적이지만 정확히 어떤 코루틴을 집어서 종료하고 싶을때에는 주로 StopCoroutine("코루틴 이름"); 을 이용했다. 해당 스크립트의 해당이름 코루틴을 찾아 종료시키는 것이다. 하지만 이것을 이용하여 코루틴을 멈출때도 제약이 꽤 있다. 같은 이름의 ..
2015.06.16 -
KhjCoroutines - DownMove
이번 글에서는 이미지의 이동과 관련한 코루틴을 작성해보려합니다. 현재위치보다 지정높이만큼 위에서 시작하여 현재위치로 떨어지는 듯한 이펙트로 활용가능한 코루틴입니다. 주로 이펙트로 사용할 로직이다보니 이동을 하고나서, 원래 위치로 돌아와야 다음에 사용할 때 제위치에서 동작할 수 있을 겁니다. 그래서 코루틴 로직 종료시점에 이미지를 원래 위치로 복귀시키는 로직을 작성해봅시다. //내용 //지정 높이만큼 다운(-면 업) 이동 후 제자리로 // img 를 downHeight 값만큼 totalTime시간동안 아래로 이동시킨 다음 // init이 트루면 모든동작이 끝나고 initTimer 시간이후 원래자리로 돌아간다 public IEnumerator DownMove(UISprite img, float downHei..
2014.07.31 -
KhjCoroutines - AlphaOnOffLoop
이번엔 지난 AlphaChange 를 일회성이 아닌 반복해서 보여지도록 Loop로직을 작성해보려합니다. //내용 //알파값 토글 반복 //onTime기간동안 0->1 (or) offTime기간동안 1->0 변환하는 토글, crescendo면 0->1 반대는 1->0부터 토글을 시작한다 //무한루프일 경우 roop변수를 트루, 아닐경우 펄스하고 반복횟수를 cnt로 조정해준다 public IEnumerator AlphaOnOffLoop(UISprite img, float onTime, float offTime, bool crescendo = true, bool roop = false, int cnt = 1) { yield return new WaitForEndOfFrame(); float elapseTime..
2014.07.31 -
KhjCoroutines - AlphaChange
이 게시판에서는 기본적인 동작을 가진 코루틴들을 하나씩 만들어보겠습니다. NGUI 와 애니메이션으로도 충분히 처리 가능한 로직들이지만, 코루틴을 모아서 스크립트로 구현해두고 때에 따라 불러서 사용하면 어떤 프로젝트를 진행하든 자신에 손에 익은 로직으로 구현할수 있는 훌륭한 자산이 될수 있습니다. 개인적으로 애니매이션은 하나의 애니메이션만 동작시킬수 있고, 때에 따라서는 지정된 값이 아닌, 변수값으로 위치정보 등을 받아와야 할 경우 활용이 애매했던 경험이 있습니다. 코루틴은 동작마다 구분지어 놓으면 각자의 코루틴의 제역할을 해냅니다. 물론 퍼포먼스의 속도나 메모리사용에 관한 점에 대해서는 다른 관점이 있을수 있겠습니다. 다만 코루틴 퍼포먼스가 생각만큼 느리지 않고, 효율적인 면이 있다는 것은 다음에 기회가..
2014.07.29