-
[Unity Engine] [Unity3D]Coroutine에 관한 아이디어.2017.04.19 PM 07:31
근래에 UniRx를 쓸일이 많아져서 Linq에서 많이 쓰이는 chain 형식에 관심이 많아졌는데 코루틴도 비슷하게 쓰면 편하지 않을까 싶어서 만들었다. 역시 생각보다 편한거 같다.
가령 예를들어 Test1을 실행시키고 1초 기다린 뒤에 test2와 test3을 동시에 실행시키고 싶으면
다음과 같이 작성하면 된다.
UniRx가 필요합니다. 만약 unirx알러지 가 있다면 coroutine을 재생하는데 필요한 MonoBehavier 내부에서 만들면 됩니다.
파일 1개짜리 짧은 소스라서 gist로 공유합니다.
https://gist.github.com/geniikw/071463c491eee975c863a9163c9dcf69
댓글 : 3 개
- non-oan
- 2017/04/19 PM 09:19
wait, play ,plll 기능이 있는데 한가지만 더 추가되면 좋을거 같네요.
바로 델리게이트를 인자로 받는 call 함수 입니다. 특히 람다식이랑 같이 쓰면 더 좋을거 같네요.
CoroutineChain
.Play(Test1())
.Wait(1f)
.Call(() => {
// Do something in middle of chain
})
.Play(Test2())
.Call(() => {
// do something for complete
}));
이런 식으로 쓰면 고정된 처리는 코루틴으로 만들고 단순하지만 다르게 처리가 필요한건 람다식으로 구현해서
코드를 간결하게 할 수 있을거 같네요
바로 델리게이트를 인자로 받는 call 함수 입니다. 특히 람다식이랑 같이 쓰면 더 좋을거 같네요.
CoroutineChain
.Play(Test1())
.Wait(1f)
.Call(() => {
// Do something in middle of chain
})
.Play(Test2())
.Call(() => {
// do something for complete
}));
이런 식으로 쓰면 고정된 처리는 코루틴으로 만들고 단순하지만 다르게 처리가 필요한건 람다식으로 구현해서
코드를 간결하게 할 수 있을거 같네요
- 잘자염
- 2017/04/19 PM 10:36
일단 간단한거니 만들어 추가하겠습니다.
시작할 때 Play로만 시작할 수 있게 하는게 좀 거시기 하네요 이것도 바꿔야 할듯.
피드백 감사합니다.
시작할 때 Play로만 시작할 수 있게 하는게 좀 거시기 하네요 이것도 바꿔야 할듯.
피드백 감사합니다.
- 잘자염
- 2017/04/19 PM 11:32
추가했습니다!
user error : Error. B.