본문 바로가기
NOTE/Unity

[Unity] 유니티 작업에 대한 50 팁

by DevAthena 2016. 10. 19.

번역된 블로그

http://seungngil.tistory.com/entry/%EC%9C%A0%EB%8B%88%ED%8B%B0-%EC%9E%91%EC%97%85%EC%97%90-%EB%8C%80%ED%95%9C-50-%ED%8C%81-%EB%AA%A8%EB%B2%94-%EC%82%AC%EB%A1%80-50-Tips-for-Working-with-Unity-Best-Practices


원문

http://devmag.org.za/2012/07/12/50-tips-for-working-with-unity-best-practices/


타이틀만 적어보자.

1. 자산을 여러 버전으로 나누지 말라.

2. 버전 컨트롤을 사용할 경우 각 팀 구성원들은 테스트를 위해 체크 아웃한 프로젝트의 두번째 복사본이 있어야 한다.

3. 레벨 수정을 위한 외부 레벨 툴을 사용하는 것을 고려하라.

4. 레벨 저장을 Scene 대신 XML으로 하는걸 고려하라.

5. 일반적인 커스텀 inspector 코드를 작성하는 걸 고려하라.

6. Scene 폴더를 빈 게임 오브젝트의 이름으로 사용하라.

7. 관리하는 Prefab과 폴더 (빈 게임 오브젝트) 를 0 0 0 에 넣어라.

8. GUI 컴포넌트의 offset 사용을 최소화 하라.

9. 당신의 월드 바닥을 y = 0으로 하라.

10. 모든 Scene을 게임 실행 하능하게 하라.

11. 캐릭터와 서있는 오브젝트는 pivot 기반이어야 하며, center 중심이어선 안된다.

12. 제작하는 모든 메시의 바라보는 방향을 일치 시킨다 (+Z 또는 -Z)

13. 시작시 스케일의 규모를 정하도록 한다.

14. GUI 컴포넌트와 파티크러을 수동으로 생성 해야 할 경우 2개의 삼각형으로 된 평면을 사용한다. 평면을 Z+방향으로 하는 것이 빌보드와 GUI를 만드는데 쉽게 한다.

15. 테스트 작업물 만들기 및 사용

16. 모든 것에 프리팹을 사용하도록 한다.

17. 특수화된 프리팹은 사용해도 좋지만, 특수화된 인스턴스는 사용하지 말라.

18. 프리팹과 프리팹의 링크는 되나, 인스턴스와 인스턴스간의 링크는 안된다.

19. 가능하다면, 인스턴스간의 연결 설정은 자동으로 하라.

20. 분기 프리팹에 대해서 안전한 절차를 사용하도록 하라.

21. 기본 Mono Behaviour를 확장하고, 당신의 컴포넌트를 그것으로부터 모두 파생하라.

22. Invoke를 위해 안전한 메서드를 정의하며, StartCoroutine 과 Instantiate가 있다.

23. 공유 인터페이스를 사용하여 컴포넌트를 함께 작동하도록 확장을 사용 합니다.

24. 구문보다 편리하게 사용하기 위해 확장을 사용합니다.

25. 방어적인 GetComponent를 대안으로 사용하라.

26. 비슷한 일에 다른 해결책을 사용하지 마십시오.

27. 쉽게 일시 중지 하기 위해 당신만의 Time Class를 유지하라. 

28. 게임이 실행 될 때 생성되는 개체가 계층 구조를 더럽히게 하지 말라.: DynamicObjects라는 빈 객체 밑으로 넣는게 나음

29. 편의를 위해 싱글톤을 사용하라

30. component 들을 들어, inspector에 변화를 주지 말아야 할 변수는 공개 하지 않습니다.

31. 게임 로직에서 인터페이스를 분리하여 제공합니다. 기본으로 MVC 패턴같은 경우

32. 별도의 상태와 Bookkeeping -> 게임상태 저장, 그리고 게임상태 디버그

33. 별도의 특성화 구성

34. 표시 텍스트 일외에 다른 용도로 문자열을 사용하지 마시오.

35. 공개된 인덱스 결합 배열을 사용하지 마시오.(배열의 인덱스를 직접적으로 사용하는걸 줄이라)

36. 시퀀스 이외에 다른 구조에 대한 배열을 사용하지 마시오

37. Serializable 클래스의 그룹 데이터는 가까운거 끼리 모아 inspector로 만들어야 한다. 

38. 스토리 텍스트가 많은 경우, 파일에 넣도록 합니다.

39. 당신이 로컬라이징을 할 계획이 있다면, 하나의 지역에 모든 문자열을 분리합니다.

40. 물리, 애니메이션, 그리고 AI를 디버기어 하기 위해서 그래픽 logger를 구현합니다. URL

41. HTML logger를 정의합니다. URL

42. 당신의 FPS counter를 구현합니다.

43. 스크린샷을 이용해 바로가기를 구현합니다. 

44. 플레이어의 월드 위치를 출력하기 위한 바로가기를 구현합니다.

45. 테스트를 쉽게 만들기 위한 디버그 옵션을 구현합니다.

46. 충분히 작은 팀의 경우, 디버그 옵션을 사용하여 각 팀의 구성원을 위한 prefab을 만듭니다.

47. 모든 게임 플레이 요소와 scene을 유지합니다. 

48. 디버그 바로가기 키를 위한 상수를 정의하고, 한 곳에서 보관합니다.

49. 설치를 문서화 합니다.

50. 문서화 규칙 및 폴더 구조를 따르시오.


Folder Structure


Scene Structure


Script Structure