유니티에서 프리팹(Prefab) 사용하기(프리팹생성, apply, select, revert) 씬에서 여러번 재사용되는 게임 오브젝트를 프리팹으로 만들고 사용하는 방법(apply, select, revert) 1)씬에 empty 게임오브젝트를 생성하고(player) 하위에 큐브 오브젝트 두개를 구성합니다. 2)이 게임 오브젝트(player)의 프리팹 에셋을 생성하려면 해당 게임 오브젝트를 선택하고 프로젝트(project) 윈도우의 에셋(Assets) 폴더로 드래그, 드롭합니다. 에셋 폴더에 프리팹 에셋이 생성된것을 확인할수있으며 씬에 존재하는 해당 프리팹 게임 오브젝트는 파랑으로 표시됩니다(Hierarchy) 3)씬의 프리팹 오브젝트를 복사합니다. 씬(hierarchy)에 존재하는 프리팹 오브젝트의 속성..
유니티 webGL 프로젝트 사용자 템플릿(templates) 설정하기 https://docs.unity3d.com/Manual/webgl-templates.html 1)유니티에서 webGL프로젝트를 빌드하고 브라우저에서 실행하면 일반적으로 아래와 같은 기본 템플릿을 확인할수있습니다. 2)project settings의 player에서 resolution and presantation로 이동합니다. webGL template에. default 템플릿으로 설정되어있는것을 확인할수있습니다. 3)새로운 사용자 템플릿을 프로젝트에 가져오기합니다. 예에서 아래 웹사이트의 프로젝트 템플릿을 다운로드 및 가져오기하였습니다(웹페이지에서 전체화면으로 게임을 실행하는 템플릿) https://github.com/greggma..
유니티 콘솔(console)에 로그 메시지 출력하기(Debug.Log) Debug.Log 함수를 사용하여 프로그램을 디버깅하는데 도움이 되는 정보 메시지를 출력할수있습니다. 문자열 표현으로 변환할 문자열 또는 개체를 함수의 파라미터로 전달합니다. https://docs.unity3d.com/ScriptReference/Debug.Log.html
유니티 에셋 수평선 밴딩 이펙트 에셋 Horizon Bending https://assetstore.unity.com/packages/tools/particles-effects/horizon-bending-55306 Horizon Bending 소개영상 https://youtu.be/5TUSVj8yka8 Horizon Bending 튜토리얼 https://youtu.be/kdMws6Td8iA
유니티 브러시 페인팅 도구 폴리 브러시(poly brush) 브러시 도구를 사용하여 메시 변형 모델링(sculpt mesh), 텍스처 페인팅(blend textures and colors), 버텍스 컬러 페인팅(paint vertex colors), 오브젝트 분산(scatter objects) 기능을 사용할수있는 패키지(Package)로 유니티 패키지 관리자에서 다운로드할 수 있습니다. https://unity.com/features/polybrush 폴리 브러시 소개영상(poly brush) https://youtu.be/JQyntL-Z5bM
유니티 URP 프로젝트에서 객체당 라이트 제한 개수 설정(per object limit) 1)씬에 6개의 조명을 추가합니다. 2)6개의 조명중 4개만 plane 오브젝트에 영향을 미치고있는것을 확인할수있습니다. 유니티 URP에서 객체당 조명 제한 개수는 기본 4로 설정되어있습니다. 3)객체당 라이트 한계(per object limit)를 설정하려면 project settings의 graphics에서 URP 에셋으로 이동합니다. 4)lighting의 additional lights에서 per object limit가 기본값 4로설정되어있는것을 확인할수있습니다. 5)최대값인 8로 설정합니다. 성능 고려사항 때문에 URP에서 객체당 라이트 제한은 8개입니다. 6)씬에 8개의 조명을 추가합니다. 7)8개의 조명..
유니티에서 콜라이더의 충돌 무시(Physics.IgnoreCollision) Physics.IgnoreCollision(collider1, collider2) 함수는 충돌 감지 시스템이 collider1과 collider2 사이의 충돌을 무시하도록 설정합니다. https://docs.unity3d.com/ScriptReference/Physics.IgnoreCollision.html 1)충돌에 사용할 두개의 오브젝트를 생성합니다(sphere1, sphere2) 2)예에서 Sphere1의 콜라이더를 트리거로 설정하고(isTrigger 체크) 리지드바디 컴포넌트를 추가하였습니다. 3)Sphere2의 콜라이더에서 isTrigger 속성을 체크해제하고 리지드바디 컴포넌트를 추가하지않았습니다. 4)Sphere1의..
유니티(unity)에서 Time 클래스 사용하기 Time 클래스는 유니티에서 가져올수있는 시간 정보에 대한 다양한 속성을 제공합니다. https://docs.unity3d.com/ScriptReference/Time.html Time.deltaTime 마지막 프레임에서 현재 프레임까지의 간격(초)을 의미합니다. 아래 예에서 매 프레임마다 프레임 간격 시간을 출력하는것을 확인할수있습니다. Time.unscaledDeltaTime 타임 스케일(timeScale)에 독립적인 deltaTime을 의미합니다. Time.time 현재 프레임의 시작 시간을 의미합니다. 동시에 게임을 시작하고 경과한 시간을 의미한다. Time.realtimeSinceStartup 게임의 일시 중지 영향을 받지않는 현재 프레임의 시작 ..
유니티에서 콜라이더 충돌 레이어 관리하기(collision matrix) 레이어 기반의 충돌 감지 시스템 작동 방식을 설정할수있습니다. https://docs.unity3d.com/Manual/class-PhysicsManager.html 1)충돌에 사용할 두개의 오브젝트를 생성합니다. 2)두 오브젝트에 콜라이더를 추가하고 적어도 한개의 오브젝트에 리지드 바디를 추가하고 콜라이더를 트리거로 설정합니다(is trigger) 3)OnTriggerEnter함수를 작성하고 클래스를 추가합니다. 4)런타임에서 두 오브젝트의 콜라이더를 충돌시킵니다. 5)충돌에의해 함수가 호출된것을 확인할수있습니다. 6)인스펙터에서 새로운 레이어를 추가합니다. 7)새로운 사용자 레이어를 추가합니다. 8)project settings..
유니티에서 리지드바디(Rigidbody)의 Sleep, WakeUp, Sleep Threshold리지드바디(Rigidbody)의 Sleep 및 Wake Uphttps://docs.unity3d.com/Manual/RigidbodiesOverview.html 기본적으로 리지드바디(Rigidbody)의 Sleep 및 WakeUp는 자동적으로 발생합니다. 리지드바디가 Sleep Threshold 속성에 설정한 값보다 느린 속도로 움직이는 경우 유니티는 해당 리지드바디를 Sleep 상태로 설정합니다. 물리 시스템에서 Sleep 상태인 리지드바디는 물리 계산에서 제외되며 프레임에서 업데이트되지않아 덜 자원 소모적이게됩니다(Rigidbody optimization) Sleep 상태인 리지드바디가 충돌이나 힘을 받으..
유니티 프로젝트 폴더에서 에셋 검색 필터링 사용하기 1)project 패널에서 아래 표시한 곳을 클릭합니다. 2)프로젝트(project), 씬(hierarchy), 메뉴(menus)에 대하여 키워드를 검색할수있습니다. 3)project 패널에서search by type을 클릭하고 에셋 유형을 선택합니다. 4)선택한 에셋 유형 목록을 표시합니다.
유니티에서 3D모델의 버텍스 컬러 확인하기(vertex color) 1)3D맥스에서 모델의 버텍스 컬러를 설정하고 fbx파일로 내보내기합니다(export) 2)유니티에서 fbx파일을 가져오기하고(import) 씬에 추가합니다. 3)유니티의 standard 또는 모바일 쉐이더들은 버텍스 컬러를 지원하지않습니다. 모델의 버텍스 컬러를 렌더링하려면 커스텀 쉐이더를 작성하거나 기본으로 제공하는 particles의 standard surface 또는 standard unlit 쉐이더를 사용합니다. 새로운 재질을 생성하고 쉐이더로 standard surface 또는 standard unlit를 선택합니다. 4)모델에 재질을 적용합니다. 오브젝트의 버텍스 컬러가 렌더링되는것을 확인할수있습니다. 5)렌더링에서 버텍스 ..