유니티 프로젝트의 에디터 버전 확인하기 에디터를 실행하지않고 버전을 확인하는 방법 1)프로젝트에서 projectSettings 폴더로 이동한다. 2)projectVersion.txt 파일을 열기하면 확인할수있다. 3)프로젝트에서 library 폴더로 이동한다. 4)임의의 .asset 파일을 메모장에서 열기해서 확인할수있다.
그래픽 분석 및 프로파일링 프로그램 RenderDoc renderdoc.org/ RenderDoc I've written this post with a specific target audience in mind, namely those who have a good grounding in existing APIs (e.g. D3D11 and GL) and understand the concepts of multithreading, staging resources, synchronisation and so on but want to know specifi renderdoc.org Intel Graphics Performance Analyzers software.intel.com/content/www/us/e..
유니티에서 렌즈플레어 설정하기(lens flare) lens flare 렌즈 플레어는 렌즈 시스템에서 빛이 산란되거나 플레어되어 이미지 내에 바람직하지 않은 인공물(artifact)을 생성하는 현상이다. en.wikipedia.org/wiki/Lens_flare 1)유니티의 기본 에셋(standard assets)에서 몇가지 렌즈 플레어 에셋을 제공한다. assetstore.unity.com/packages/essentials/asset-packs/standard-assets-for-unity-2018-4-32351 Standard Assets (for Unity 2018.4) | 에셋팩 | Unity Asset Store Get the Standard Assets (for Unity 2018.4) pa..
유니티 - 오브젝트의 lightmap uv, 라이트맵 생성하기 유니티에서 오브젝트의 라이트맵을 생성하려면 두번째 uv채널(맵핑좌표)을 가지고있어야한다. generate Lightmap UVs을 이용한 방법 1)유니티에서 3D모델을 임포트하였다. 2)모델이 현재 1개의 uv채널을 가지고있는것을 확인할수있다. 3)모델의 임포트 설정에서 generate lightmap UVs에 체크하고 적용하면 라이트맵을 베이크하기위한 추가적인 UVs를 생성한다. 4)모델의 uv채널이 추가된것을 확인할수있다. 5)오브젝트의 Static Editor Flags에서 contribute GI에 체크한다. 6)lighting의 Contribute GI에 체크되고 lightmapping 항목이 추가된것을 확인할수있다. 7)예에서 25..
유니티 360 파노라마 동영상 캡처 기술문서 unity.com/kr/solutions/360video 360도 동영상 | Unity 간단한 실시간 워크플로를 이용하여 상호작용성, CG 효과, 시차, 이동성을 추가하세요. unity.com blogs.unity3d.com/2018/01/26/stereo-360-image-and-video-capture/ Stereo 360 Image and Video Capture - Unity Technologies Blog We are proud to announce that in 2018.1 creators can now capture stereoscopic 360 images and video in Unity. Whether you’re a VR developer ..
유니티에서 AddComponentMenu 어튜리뷰트 사용하기 AddComponentMenu 어트리뷰트를 사용하여 사용자 스크립트의 컴포넌트 메뉴를 구성할수있다. 1)일반적으로 게임오브젝트에 사용자 스크립트를 추가할때 컴포넌트의 scripts 메뉴에서 검색 및 추가할수있다. 2)클래스위에 AddComponentMenu를 명시한다. [AddComponentMenu("컴포넌트메뉴이름/컴포넌트이름")] 3)컴포넌트를 추가할때 기존에 존재하는 Mesh 메뉴에서 추가 항목을 확인할수있다. 항목을 추가하면 해당 스크립트가 추가된다(NewBehaviourScript1) 4)새로운 사용자 메뉴를 명시할수있다. 5)컴포넌트 메뉴에 어트리뷰트에서 명시한 사용자 메뉴가 추가된것을 확인할수있다. 6)컴포넌트를 선택하면 해당 스..
유니티에서 RequireComponent 어트리뷰트 사용하기 RequireComponent 어트리뷰트를 작성한 스크립트를 게임 오브젝트에 추가하면 자동으로 게임오브젝트에 필요한 구성 요소를 추가한다. 1)클래스 위에 RequireComponent를 명시한다. [RequireComponent(typeof(컴포넌트타입))] 2)게임오브젝트에 이 스크립트를 추가하면 항상 어트리뷰트에 명시한 유형의 컴포넌트를 게임 오브젝트에 추가한다.
유니티에서 애니메이션 반복실행(loop) 설정하기(legacy, generic) legacy animation type 1)모델의 임포트 설정에서 rig 탭의 animation type을 확인한다. 2)animation으로 이동한다. 3)반복실행(loop)을 설정할 클립을 선택하고 wrap mode에서 loop를 선택하고 적용한다. generic animation type 4)애니메이션에서 클립을 선택하고 loop time에 체크한후 적용한다.
유니티에서 애니메이션 이벤트 추가하기(animation event) 타임라인에서 애니메이션의 특정 시간에 이벤트를 설정하여 오브젝트의 스크립트에 있는 함수를 호출할수있다. 1)씬에 큐브 오브젝트를 추가하고 애니메이션을 생성하였다(new animation) 2)애니메이션의 반복실행을 설정한다(loop time) 3)함수를 작성한 스크립트를 큐브 오브젝트에 추가한다. 3)애니메이션 이벤트를 추가하려면 타임라인에서 재생 위치를 선택하고 add event를 클릭한다. 4)이벤트 라인에서 새로 추가한 이벤트를 확인할수있다. 이벤트를 선택하면 마커가 파란색으로 표시된다. 5)inspector 윈도우에서 애니메이션 이벤트의 함수와 파라미터를 설정한다. 애니메이션 이벤트로 호출할 함수는 오브젝트의 스크립트에 존재해야한..
유니티에서 카메라 layerCullDistances를 사용하기(per-layer culling distances) layerCullDistances를 사용하면 특정 레이어의 게임오브젝트가 카메라의 farClipPlane보다 더 가까운 거리에서 컬링되도록 설정할수있다. 작은 오브젝트를 초기에 컬링하는데 유용하다. 1)예에서 씬을 구성하였다. 2)일반적으로 카메라의 farClipPlane보다 가까이 있는 오브젝트를 모두 렌더링한다. 3)tags & layers에서 새로운 레이어를 추가한다. 예에서 2개의 레이어를 추가하였다. cull5 - 컬링거리를 5m로 설정할 게임오브젝트의 레이어 cull30 - 컬링거리를 30m로 설정할 게임오브젝트의 레이어 4)크기가 32인 실수형 배열을 선언하고 컬링거리로 사용할 ..
유니티에서 CombineMeshes 함수를 사용하여 드로우콜 수치 낮추기 CombineMeshes 함수를 이용하여 다중 메시를 단일 메시로 결합할수있다. 1)프로젝트의 동적배칭 및 정적 배칭을 비활성화하고 아래와 같이 씬을 구성하였다. 2)씬을 구성하는 오브젝트들은 같은 재질을 공유하여 오브젝트의 수와 동일한 수치의 batches를 표시하고있다. 3)새로운 게임오브젝트를 생성하고(parent) 개별적으로 존재하는 오브젝트들을 parent의 하위에 위치시킨다(child) 4)parent 게임오브젝트에 mesh filter, mesh renderer 컴포넌트를 추가한다. 결합한 메시와 재질을 할당하는데 사용된다. meshrenderer에 child 게임오브젝트와 같은 재질을 할당한다. 5)스크립트를 작성하여..
유니티에서 동적배칭 사용하기(dynamic batching) dynamic batching은 런타임에서 매 프레임마다 동적 배칭이 가능한 오브젝트들에 대해 일괄처리하여 드로우콜을 줄일수있다. 다이나믹 배칭을 활성화하면 유니티가 자동적으로 같은 재질을 공유하는 오브젝트들(버텍스의 개수가 적은)의 버텍스를 모아서 한번에 처리한다. 정적 배칭은 메모리 오버헤드를 발생시키는데 반해 런타임에서 매 프레임마다 버텍스 연산을 수행하는 동적 배칭은 CPU 오버헤드를 발생시킨다. 동적 배칭은 정적 배칭과 마찬가지로 게임 오브젝트들이 독립적으로 컬링될수있다는 장점을 가진다. docs.unity3d.com/Manual/DrawCallBatching.html 1)유니티에서 다이나믹 배칭은 기본적으로 비활성화되어있다. 이 기능..