Loading...
2017. 9. 24. 13:15

unity의 awake

script 함수 실행 순서는 awake, onenable, start다. 이건 알고있던 건데 작업을 하다가 자꾸 awake에 에러가 나서 에러를 찾다보니하이라키에서 활성화 되어 있는오브젝트에 비활성화로 달려있는 컴포넌트였다. 여기에 붙어있는 컴포넌트의 내용은 아래와 같다.public class TestAwake : MonoBehaviour { void Awake() { Debug.Log("Awake"); } void OnEnable() { Debug.Log("OnEnable"); } void Start () { Debug.Log("Start"); } void Update () { Debug.Log("Update"); }} 똑같은 상태에서 TestAwake 컴포넌트의 active만 꺼 두면 어떻게 될까?..

ExecuteInEditMode

작업할때 디자이너분들이 작업하기 편하게 "ExecuteInEditMode"를 자주 쓰는 편인데어느날 에디터 실행후 종료시에 이상한 에러가 뜬다.봤더니 에디터 실행 후 종료시에 ExecuteInEditMode 코드가 있는 스크립트의 start 함수가 호출된다.누가 호출하는걸까..콜백도 없고...그래서 디버그를 다 찍어서 editor을 실행하니 ExecuteInEditMode 코드가 있는 스크립트에서는 1. 에디터 실행 - script의 OnDestroy 실행, Start 실행2. 에디터 종료 - script의 OnDestroy 실행, Start 실행 위와 같은 루틴을 탄다. [ExecuteInEditMode]public class ExecuteTest : MonoBehaviour { // Use this ..

2017. 6. 21. 12:29

RenderQueue

유니티에서는 Queue를 설정해서 오브젝트를 그릴 순서를 조절할 수 있다.셰이더는 오브젝트가 속하는 render queue를 결정하며, 이 방법에 의해 어떠한반투명 셰이더들도 불투명 오브젝트들 이후에 그려지게 보장한다. 유니티 도큐에 보면 아래와 같이 되어있다. Background : 가장 먼저 그려짐Geometry : 불투명(Opaque) 물체AlphaTest : 알파테스트 물체GeometryLast : 불투명(Opaque)에서 가장 나중에 그려짐.Transparent : Geometry와 AlphaTest 이후에 그려짐. 순서는 뒤에서부터 앞으로.Overlay : 중첩되는 효과. 큐 사이에서 좀 더 특별하게 사용할 수도 있다. 내부적으로 각 큐들은 정수 인덱스로 표시된다.Background는 1000..

2017. 6. 20. 15:42

There are inconsistent line endings

There are inconsistent line endings in the 'Assets/Scripts/SomeThing.cs' script. Some are Mac OS X (UNIX) and some are Windows.This might lead to incorrect line numbers in stacktraces and compiler errors. Many text editors can fix this using Convert Line Endings menu commands. 유니티에서 가끔 위와같은 경고가 찍힌다.대략적인 내용은 아래와 같다. 스크립트의 줄끝이 명확하지 않습니다. 어떤건 Mac을 따르고 어떤건 Window를 따릅니다.이렇게 되면 나중에 컴파일러 오류시 스택 추적할 때 잘..

2017. 6. 3. 17:35

assetbundle building, change file

내용은 이러함.1. 에셋번들 빌드2. 빌드결과 파일들 복사.3. 프로젝트 아무것도 안 건드리고 다시 빌드4. 두번째 빌드결과 파일들과 첫번째 빌드 파일들 비교이상하게 몇몇 파일들이 자꾸 결과물이 다르다.실제로 파일용량도 다르다.대략 내용을 보면 내용은 같은데 파일의 내용 부분에서 저장 데이터 위치가 조금씩 바뀌면서 용량도 틀려지고 하는듯 하다.근데 왜 저장 위치가 달라지는 거지? 현재 사용 버전 : 5.5.1p3결론 : 빌드할 때마다 특정 scene들의 파일 용량이 다르며, 실제이 조금씩 달라진다. 그럼으로 인해 파일의 CRC 또한 달라진다. 첫번째 해결 시도혹시 editor 관련 코드들이 random 을 만들어 내거나 하지 않을까?editor 코드들을 제거. 끝없이 제거..딱히 정확한 연관성을 찾지 못..

메모리 프로파일러

개인 필요에 의해 번역한 글입니다.꼭 원문을 참고하시길 강추드립니다. 유니티 5.3a4는 상당히 저레벨의 새로운 메모리 프로파일러 API가 있다.이 프로파일러는 어느 오브젝트가 얼마나 많은 c++ 메모리 할당을 받았는지에대해 찾아낼 수 있다.IL2CPP 플랫폼에서 c#타입의 설명 뿐 아니라 전체 c# 힙의 덤프까지 제공한다. 이 API는 대부분의 사람들이 사용하기에는 너무 저레벨이다.이 말은 이 API를 사용하기 위해 멋진 UI 윈도우가 더해지면정말로 많은 사람에게 활용하기 유용할 것이며,어느 오브젝트가 로드되었는지, 어느 오브젝트가 많은 메모리를 차지하는지,그리고 가장 중요한 왜 그 오브젝트가 메모리에 있는지를 찾는데 도움을 줄 것이다.이 레퍼지토리는 더 멋진 UI 윈도우로 작업이 진행중에 있다. 일반..

2017. 4. 14. 04:53

Asset Bundles vs. Resources : A Memory Showdown

필요에 의해 번역한 내용입니다. 원문을 보시기를 추천합니다. 리소스 : Resources에셋번들 : Asset Bundles 최근에 우리는 기존 방식의 리소스 시스템 사용에 대한 것과 왜 이전 에셋 로딩이 이후 에셋 로딩보다 메모리 오버헤드가 더 높은지에 대해 많은 문의를 받았다. 본문이 너무 길어 읽지 않은 사람들을 위해 : 만약 리소스 시스템에서 할 수 없는걸 에셋번들이 할 수 있다면 결국에는 에셋번들의 오버헤드가 훨씬 작을 것이다.만약 에셋번들에 익숙하지 않고 에셋번들에 대해 더 알고자 한다면 Unity Manual과Asset Bundles & Resources Guide를 읽어보길 추천한다. 바로 살펴보면, 우리는 기본적으로는 같은 내용인 버그 리포트를 몇개 받았는데,내용은 에셋번들을 통해 에셋을..

2017. 4. 11. 07:40

Mesh 최적화

5.5.1p3 기준 하나씩 테스트를 해 보자.Mesh Compression : 이 값을 높이면 메쉬 파일 크기가 줄어든다.실제로 어떻게 차이가 나는건지 테스트 해 보자.Mesh Compression : Off Mesh Compression : High 뭔가 모습이 좀 달라진거 같기도 하고 아닌거 같기도 하고...겹쳐서 보면 좀 움찔움찔 바뀌는 것 같음. 버텍스 갯수라던지 파일의 용량은 1도 안 줄어들었음.. 뭘까 분명 줄어든다고 했는데... 그런데 모양은 바뀐단 말이지....여기 링크를 읽어보면 이렇게 적혀 있다. "게임 파일에서 적은 공간을 차지하도록 메쉬와 임포트된 애니메이션 클립을 압축할 수 있다.메쉬압축을 하려면, 메쉬를 선택 후 인스펙터에 있는 Mesh Compression을 Low, Mediu..