일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 중단
- OnMouseClick
- 훅
- 코루틴
- 리액트
- C#
- 클래스
- useEffect
- >.NET
- 구독
- implicit Conversion
- File
- GetKey
- 명시적형변환
- 마우스
- 암시적형변환
- 리액트네이티브
- Subscribe
- Unity
- 키보드
- 팁
- 불러오기
- 유니티
- oveflow
- stopcoroutine
- JSON
- 오버플로우
- Explicit Conversion
- 저장
- Fetch
- Today
- Total
Log to grow
[Unity] 스마트 게임엔지니어링의 3대 요소 본문
1. 모듈화 (Keep things modular)
1) 시스템간에 직접적인 종속관계가 없도록 한다.
- 시스템 간에 Hard reference를 생성하지 않는다.
- 시스템을 다른 설정과 관계로 수정하기 어려워짐
2) 씬을 클린 슬레이트로 생성
- 씬 간에 임시 데이터가 없도록 한다.
- 씬을 히트할 때마다 완전히 중단 후 새롭게 로드되어야 한다.
- 씬을 해킹하지 않고도 다른 씬에 없는 고유한 동장이 포함된 씬을 생성할 수 있다.
3) 각 프리팹에 기능을 포함한다.
- 가능하면 씬으로 드래그하는 모든 프리팹이 각각의 기능을 포함하도록 한다.
- 대부분의 체크인이 프리팹 수준에서 이루어져 씬에서의 충돌이 감소함
4) 각 컴포넌트를 한 가지 문제 해결에 집중적으로 사용한다.
2. 수정 가능성(Editable)
1) 게임을 최대한 데이터 기반 구조로 제작한다.
- 명령어를 통해 데이터를 처리하는 컴퓨터처럼 게임 시스템을 설계한다.
- 게임이 실행 중인 경우에도 변경 사항을 게임에 더 효율적으로 적용할 수 있다.
2) 시스템을 모듈 및 컴포넌트 기반으로 설정하면 협업자가 더 쉽게 편집할 수 있다.
3) 런타임에 팀이 변경 사항을 게임에 적용할 수 있는 것이 중요하다.
- Scriptable Object처럼 런타임 상태를 외부에 다시 저장할 수 있으면 더욱 좋다.
3. 디버그 가능성(Debuggable)
1) 위 두 가지의 하위 요소
- 게임의 모듈성이 높을수록 일부만 따로 테스트하기가 쉬워진다.
- 게임을 수정하기가 더 쉬울수록, 즉 자체 인스펙터 뷰가 있는 기능이 많을수록 디버그하기 쉽다.
- 인스펙터에서 디버그 상태를 볼 수 있게 하고, 디버그 방식에 대한 계획을 수립하기 전까지는 끝난 것이 아니다.
유니티 코리아 페이지의 "스크립터블 오브젝트로 게임을 설계하는 멋진 방법 세가지" 글을 참고하여 요약했습니다.
출처 : "how-to/architect-with-scriptable-objects." Unity3d.korea. Accessed Aug,13,2018, https://unity3d.com/kr/how-to/architect-with-scriptable-objects
'Game > Unity' 카테고리의 다른 글
[Unity] 클래스를 Json으로 저장, 불러오기(Json.NET) (0) | 2020.01.24 |
---|---|
[Unity] 코루틴 중단하는 모든 방법 정리 (StopCoroutine) (1) | 2019.07.15 |
[Unity] 키보드, 마우스 조작 정리 (0) | 2019.07.15 |
[Unity] Awake, Start, OnEnable 간단 정리 (0) | 2018.08.28 |
[Unity] 오브젝트의 회전에 대하여(Rotation, Quaternion, Euler) (4) | 2018.08.03 |