본문 바로가기

전체 글36

어드레서블 에셋 시스템 - 개념: 등장 배경, vs 에셋번들 샘플 프로젝트 https://github.com/Unity-Technologies/Addressables-Sample bit.ly/AddressablesAssets 등장 배경 어드레서블은 에셋번들을 토대로 설계된 시스템이다. 완전히 새롭게 만들어진 것이 아니라 에셋번들의 편의성을 개선하기 위해 등장한 시스템이다. 등장 배경에는 에셋번들의 장점에도 불구하고 리팩토링과 커스텀 프로그래밍을 요구하는 단점이 있었다. 에셋번들의 장점 에셋번들은 말 그대로 에셋(콘텐츠)을 특정 규모로 번들링 또는 그룹화하는 것이며 앱 설치로부터 에셋을 분리시킨다. 이에따라... ㆍ초기 빌드 볼륨을 최소화할 수 있다. ㆍ에셋별 동적 로드를 통해 메모리 관리가 가능하다. ㆍ에셋을 Remote 서버(CDN; Contents Delive.. 2020. 6. 15.
Scriptable Object - 응용: SaveData, Saver, SceneController (15) SaveData AdventureTutorial은 씬마다 SaveData가 존재한다. 씬 전환 시 해당 씬의 변경사항을 잃지 않고 저장해보자. (PlayerSaveData는 영속적인 씬에서 계속 존재한다. 씬 로드 시 플레이어 위치를 초기화하기 위해 값이 저장된다. 값은 Reaction 중 SaveScene이 가지고 있으며 Scene전환 시 저장한다.) 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 7.. 2020. 6. 11.
Scriptable Object - 응용: 씬 직렬화의 특징과 활용 (14) 씬 직렬화의 특징과 활용 특징 SO의 인스턴스를 Scene에 직렬화 한다는 뜻은 .asset파일로 직렬화 하지 않는다는 것이다. 씬에 배치된 MonoBehaviour개체에 의해 생성된 SO 인스턴스는 MonoBehaviour의 참조값으로써 .unity 파일에 MonoBehaviour 항목으로 직렬화된다. 이 방식의 한계는 .asset파일을 생성하지 않기 때문에 Prefab으로 직렬화할 수 없다. 이는 곧 디스크에 저장할 수 없다는 뜻이다. "정확히는 씬 파일도 디스크에 저장된다..." 따라서 해당 MonoBehaviour 개체를 Prefab으로 만들어서 다른 씬에 재사용할 수 없다. (왜냐하면 .prefab 파일은 생성된 instance가 .asset파일이 아니라서 fileID로 저장하지 못하기 때문이다.. 2020. 6. 11.
Scriptable Object - 응용: ReactionCollection, 팝업과 드래그박스, 폴드아웃 (13) ReactionCollection ReactionCollection은 Reaction들을 저장한다. ReactionCollection의 React()함수는 Interactable에 의해 호출된다. React()함수가 호출되면 저장된 Reaction들을 모두 실행한다. 위 Reaction들은 ScriptableObject로 만들어진 것이며 추상클래스로부터 구체화된 것이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 using UnityEngine; public abstract class Reaction : ScriptableObject { public void Init () { SpecificInit (); } protected virtual void Specif.. 2020. 6. 11.
Scriptable Object - 응용: ConditionEditor, AllConditionsEditor, 프로젝트뷰 정리 (12) ConditionEditor AllConditionsEditor와 ConditionCollectionEditor는 각각 Condition을 직접 생성한다. AllConditionsEditor는 .asset파일로 생성하고, ConditionCollectionEditor는 인스턴스만 생성한다. Condition의 인스턴스 생성은 ConditionEditor에서 제공한다. 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67.. 2020. 6. 9.