쓰레드(Thread) 사용 시 OnDestroy() 이후 까지 주의하자
공부/Unity2016. 6. 14. 01:21
유니티 자체는 싱글 쓰레드로 되어있다.
하지만 스크립트에서
thread를 동적 할당 하여 사용할 수 있다.
여기서 문제가 발생 할 수 있는 것이다.
유니티의 play를 종료해도
해당 Thread가 계속 동작을 하고 있다는 것이다.
네트워크 게임을 만들다가
유의 했던 사항들 몇가지 적어보겠다.
1. OnDestroy() 이벤트 함수에 종료 처리 할 수 있는 것들은 해두자.
2. Thread 종료는 Abort() 로 하지 말자. 메인 Thread에서 놓아줄 뿐이지 동작 하고 있다.
3. Thread 내에서 While(true) 는 가급적 사용하지 말고 bool 변수를 두어 break 외에도 빠져 나갈 수 있게 하자.
4. 좀 위험 하다 생각하면 try, catch 를 하고 catch 부분에 Debug를 남기자. (뭐라도 남겨라)
5-1. TCP 소켓 통신 에서는 Client 접속이 끊어지면 Read Failure가 계속 발생 함에 유의 하자.
5-2. 연속 발생 횟수를 체크해서 Thread 의 loop를 끝내고 나가도록 하자.
5-3. Thread 나가기 전에 close() 할 수 있는건 하자.
'공부 > Unity' 카테고리의 다른 글
Vector3.forward, transform.forward (World 방향, Local 방향) (0) | 2016.06.15 |
---|---|
유니티 포커싱 없이 백그라운드(Background) 동작 시키기 (1) | 2016.06.14 |
[잡담]유니티로 서버 달지 말자!!! (0) | 2016.06.11 |
Unity Scene Change(씬 바꾸기) (0) | 2016.06.04 |
AudioSource 다중 사용 (0) | 2016.06.03 |