본문 바로가기

Coroutine 유니티

유니티 (C#스크립팅) - 코루틴이 잘 안 돌아가는 경우들 정리 안녕하세요? 윈디입니다.유니티 내부에서 코루틴을 사용하다 보면, 코루틴이 잘 작동하지 않을 때가 종종 있습니다. 특히, 오브젝트가 삭제되거나 비활성화되거나, 혹은 스크립트 사이를 넘나들며 코루틴을 사용하다 보면, 코루틴이 잘 작동하지 않을 때가종종 발생하는데요, 그래도 미리 알아두고 사용하다 보면 이런 오류들을 최대한 피하거나, 아니면 오류를 발견했을때 재빨리 해결할 수 있겠다는 생각이 들어서 제가 이번 게임을 코딩하면서 접한 몇 가지 오류들을 정리해 봤습니다. 일단 코루틴을 사용하는 이유는 원하는 만큼 스크립트를 쉬게 하여 연산에 큰 이득을 얻기 때문인데요,코루틴의 개념 자체에 대해서는 여기에 포스팅 해 두었으니 참고해 보시는것도 좋을 것 같아요. http://linecode.tistory.com/9 .. 더보기
유니티 - 탄막 슈팅 게임을 만들자(1), Sin(),Cos()과 Mathf 의 사용 안녕하세요, 윈디입니다!오늘은 처음으로 보스가 탄막을 뿜어내도록 만들었습니다.지난번의 보스 패턴 구현에서 연장선상이 되겠네요. 이러한 탄막을 구하기 위해, 구현해야 하는 두 가지의 파트를 먼저 살펴보겠습니다. 첫번째는, 탄막을 '쏘는' 보스에서 구현해야 할 부분. 두번째는, 탄 자체가 움직이거나, 혹은 시야 범위에서 사라진 탄이 삭제되기 위해 필요한'탄' 내부에서 구현해야 하는 부분이 있겠습니다. 탄을 쏘는 보스의 부분부터 살펴보도록 하지요.탄을 원하는 방식대로 쏘도록 코루틴을 만들어서, 원하는 타이밍에 실행해줄 수 있도록 하면 되니까요.저는 시작하는 시점에 저런 탄을 생성할 수 있도록, SpellStart() 코루틴을 만들었습니다. IEnumerator SpellStart() { float angle .. 더보기
유니티(C#스크립팅) - 코루틴. 코루틴. Coroutine의 이해. 안녕하세요, 윈디입니다! 오늘은 코루틴의 개념에 대해서 좀더 자세하게 이해하게 되어서, 정리할 겸 글을 쓰게 되었네요.오늘 배운 내용으로 게임에 필요했던 메인 화면의 동작을 코루틴을 이용하여 제작해 보기도 했구요. 코루틴이란?Coroutine, 같이한다는 뜻의 접두사 Co와 작업을 뜻하는Routine의 합성어라고 할 수 있겠죠. 같이 하는 일. 그러니까 유니티에서 코루틴이란 간단히 말하자면 코루틴을 호출한 함수와 해당 코루틴이 같이 협동해서 문제를 해결하는 구문이란 뜻인 겁니다. 코루틴은 항상 실행되는 것이 아니라 필요한 상황에서만 발생시킬수 있다는 점에서 매 프레임 실행되는 Update문보다 훨씬 강력하고 효율적인 기능을 발생시킬 수 있죠. 간단히 생각해서, 유니티에서 사용하는 여러 스크립트의 많은 U.. 더보기