본문 바로가기
반응형

개발/Unity312

소식)Unity 2019 LTS Unity 2019 LTS가 출시되었다. 유니티 LTS(Long Term Support)의 약자로 호환을 위해서 장기적으로 지원을 할 예정이라는 말로 대체적으로 상용서비스 버전은 LTS를 많이 사용한다. 년마다 새롭게 업데이트를 하는 Unity 지만 이번에는 좀 늦게 나온 감이 있다. 하이라이트 영상은 다음과 같다. URL : youtu.be/x6jx_qPm6rY 간략하게 설명하면 에디터 창이 개선되고, 프로파일러가 더 강화됐으며 많은 비주얼 라이징을 해야 하는 요소들을 외부에서 만들어서 임포트 한 과정들이 합쳐졌다. 2D 라이트 및 본, 애니메이션, 타일 맵 시스템이 추가됐고 (그전에 비해서 개선 및 추가) 쉐이더 파이프라인 라던지 HDRP , Visual Effect Graph에 대한 요소들이 추가되.. 2020. 6. 14.
Unity) 오브젝트 바라보게하기(Lookat) 오브젝트 바라보게하기(Lookat) 오브젝트가 특정 타겟을 기준으로 바라보게 하는 코드이다. 회전방향을 특정 타겟으로 향하게 한다. Vector3 relativePos = target.position - transform.position; // the second argument, upwards, defaults to Vector3.up Quaternion rotation = Quaternion.LookRotation(relativePos, Vector3.up); transform.rotation = rotation; URL :https://docs.unity3d.com/ScriptReference/Quaternion.LookRotation.html Unity - Scripting API: Quatern.. 2020. 6. 11.
Unity) 워크플로우 속도 향상을 위한 기능 5가지(2019 v) 워크플로우 속도 향상을 위한 기능 5가지(2019 v) 워크플로우 속도 향상을 위한 5가지 기능을 발췌했다. 1) 플레이 모드(Enter Play Mode) 2) 에셋 임포트(Asset Import Pipeline) 3) 에셋 관리(Addressable) 4) 디바이스 프리뷰(Device Simulator) 5) 패치 빌드(Script Only Patching) Unity Korea에서 공개한 기능으로 'Dev Week : 워크플로 속도 향상을 위한 기능 소개'를 편집한 포스팅입니다. 원본 URL :https://www.youtube.com/watch?v=Kel7NIP2AOg ------------------------------------------------------------------------.. 2020. 6. 1.
Unity) 프로파일러( Profiler ) 프로파일러( Profiler ) 프로파일러는 게임을 최적화하는데 최적화된 툴이다. GPU, CPU, 렌더링, 메모리 등 여러 가지 정보를 보여준다. 프로파일링을 켜놓고 게임을 재생하면 성능에 대한 데이터를 기록해준다. 사용방법은 다음과 같다. [Window] -[Analysis] -[Profiler] 하게되면 Profiler 창이 나온다. 프로파일링을 켜놓고 게임을 재생하면 성능에 대한 데이터를 기록해준다. 개발을 진행하면서 많이드 보는 카테고리는 CPU 항목과 렌더링 항목이다. 런타임 상황에서 오브젝트를 생성하거나 연산을 하는 과정에서 유니티 특성(C#)에서 GC 콜이 발생하는 과정에서 많은 부하가 생기고 프레임 드랍을 많이 경험하기 때문이다. 프로파일러의 항목을 자세히보면 상세정보를 볼 수 있는데 현.. 2020. 6. 1.
Unity) MeshCollider.convex MeshCollider.convex 오늘의 삽질은 Fbx의 파일에서 충돌 영역 관련돼서 맵에 구멍(Hole) 처리를 한상황에서 물리를 적용했을 경우에(RigidBody) 충돌 여부 관련돼서 convex의 여부를 깜빡해서 나왔다. ' MeshCollider.convex '의 설명음 다음과 같다. 충돌 감지를 위해 사용되는 메쉬 오브젝트를 나타냅니다. 이것을 true로 설정하게 되면, 해당 메쉬 충돌체는 구멍(holes)이나 입구(entrances)를 갖지 않습니다. 컨벡스 메쉬는 다른 컨벡스 충돌체나 컨벡스가 아닌 메쉬들과 충돌이 가능합니다. 따라서 만약 제공되는 기본 충돌체보다 더 디테일한 충돌체가 필요한 경우라면, 컨벡스 메쉬 충돌체는 강체들에서 적합합니다. 체크를 하게 되면 메쉬의 콜라이더가 구멍을 .. 2020. 6. 1.
문제해결) Raycast Target (터치가 안되는 삽질) Raycast Target (터치가 안 되는 삽질) 해결 UI 작업을 하던도중 버튼에 버튼이 클릭이 안 되는 경우가 생겼다. 삽질과 삽질 끝에 확인된건 Debug 용으로 사용하던 Text의 'Raycast Target'이 활성화되어있던 것이었다. 왼쪽의 버튼은 정상적으로 클릭이 되었지만 오른쪽의 광고보기 버튼은 Text의 영역 안에 포함되어 잇고 Raycast 세팅이 되어있어서 버튼까지 이벤트가 가지 않고 텍스트가 받았던 것이었다. 이런 간단한 삽질을 이런저런 버튼 설정이라던지 삽질을 하고 알게되었다. ㅠㅠ ★★☆☆☆ 2020. 5. 11.
Unity) Notch Design(Safe Area) Unity- Notch Design(Safe Area) 개발을 하는 과정에서 기본 중에 기본은 해상도 대응이다. 디스플레이되는 화면 해상도에 따라 어떻게 보일 것인지를 정해야 한다. 모바일 해상도 대응하는 과정에서 Notch Design이라는 카메라가 전면부로 나오게 되면서 생기는 이슈에 대한 대응이 필요하게 되었다. Safe Area라고 하기도한다. 이런 과정에서는 스크린 사이즈와 뷰 사이즈가 다르게 표현되어야 한다. 그래야 Notch Design 영역에 가려지는 화면이 생기지 않게 된다. Sfae Area의 영역(Notch Design)이 해당되지 않는 영역에서 화면을 그려져야 한다. 이론으로는 배경(전체 화면)을 제외한 나머지 오브젝트들이 [Root]를 기반으로 하위에 포함되고 Root는 Notch.. 2020. 5. 7.
Unity) UGUI RectTransform (사각 트랜스 폼) UGUI RectTransform (사각 트랜스 폼) 유니티 Canvas에서는 RectTransform이라는 컴포넌트를 지원한다. GUI에서 위치 포지션을 설정하는 기본적인 컴포넌트로 UI에 대한 작업을 지원한다. 기본적으로 Canvas의 하위에 있는 UI에 포함되는 항목에 자동으로 붙으면 LocalPosition을 사용한 값으로 인스펙트의 값이 변경된다. RectTransform은 GUI에 사용되지만 다른 용도로도 사용할 수 있다. 사각형의 위치, 크기 및 고정을 저장하고 조작하는 데 사용되며 상위(부모) RectTransform을 기반으로 다양한 스케일링 형식을 지원한다. Alt 단축키 (Also Set Position) Shift 단춬키 (Also Set Pivot) < Inspector 속성 설명.. 2020. 5. 3.
Unity) Unity JSON Library Unity JSON Library 유니티에서 JSON을 사용할 때 편리한 라이브러리를 소개하려고 한다. Unity Asset 스토어에서 JSON.Net을 검색하면 다음과 같이 나오는데 impot 한다. 특징으로는 클래스를SerializeObject 와 DeserializeObject 가 가능하다는 장점이 있다. 그냥 string 을 읽어서 파싱을 하지 않아도 된다. 데이터 클래스로 바로 변환하면 된다. 데이터를 InfoSkinUnit 클래스로 바로 변환하는 과정이다. 변환할 JSON 데이터는 다음과 같다. InfoSkinUnit의 클래스는 다음과 같다. JObject loaddata = JObject.Parse(_loadstring); JObject levelJObject = (JObject)loadda.. 2020. 4. 29.
문제해결) Android 빌드 시 에러 UnityEditor.BuildPlayerWindow+BuildMethodException: 2 errors Android 빌드 시 에러 UnityEditor.BuildPlayerWindow+BuildMethodException: 2 errors UnityEditor.BuildPlayerWindow+BuildMethodException: 2 errors at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (UnityEditor.BuildPlayerOptions options) [0x00242] in /Users/builduser/buildslave/unity/build/Editor/Mono/BuildPlayerWindowBuildMethods.cs:194 at UnityEditor.BuildPlayerWindow.CallBuildMethods (S.. 2020. 4. 22.
Unity)Unity Hierarchy 순서 변경 Unity Hierarchy 순서 변경 Unity에서는 기본적으로 Canvas를 기준으로 Hierarchy의 순서(위에서 밑으로) 계층으로 Draw 된다. 그렇기 때문에 Hierarchy의 순서를 변경해야하는 경우가 종종 있다. 스크립트로 처리할 경우는 다음과 같다. Index to 0 m_IndexNumber = 0; //Set the Sibling Index transform.SetSiblingIndex(m_IndexNumber); //Output the Sibling Index to the console Debug.Log("Sibling Index : " + transform.GetSiblingIndex()); } void OnGUI() { //Press this Button to increase .. 2020. 4. 20.
Unity) Rigidboy(Script)로 (Freeze)프리즈 처리하기 Rigidboy(Script)로 (Freeze)프리즈 처리하기 Rigidboy는 물리에 대한 처리를 하기 위한 기본 컴포넌트이다. Rigidboy를 사용하다보면 특정 순간에는 Freeze 기능을 수정해야 하는 경우가 생길 때 위와 같이 처리하면 된다. +) X와 Z의 포지션을 프리즈 하기 rigidbody.constraints=RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionZ; +) 모두 프리즈 하기 rigidbody.constraints = RigidbodyConstraints.FreezeAll; Unity Rigidbody : [링크] 리지드바디 - Unity 매뉴얼 Rigidbody 는 GameObject 가 물리.. 2020. 4. 14.
Unity) NavMesh 만들기 NavMesh 만들기 유니티에서는 AI -Navigation을 지원한다. Unity 3D 프로젝트를 생성하고 메뉴의 [Window- AI - Navigation]을 선택하면 설정창이 나온다. Navigation 항목에는 4가지 서브 메뉴가 있다. Agents - 길을 찾을 봇의 설정이고 Areas - 길을 찾는 영역 (우선순위)를 설정할수 있다. Bake - Navmesh를 만들 설정이다. Object - Navmesh를 만들기위한 Object를 설정하기 위함이다(이동 부락, 이동 가능, 점프 등등) 오브젝트 설정 Navmesh를 만들 오브젝트들을 선택하고 Walkable을 선택하고 Bake를 하면 다음과 같이 NavMesh가 생성된 것을 확인할 수 있다. Navmesh는 Scene당 한 개만 만들어지고.. 2020. 4. 12.
Unity)다중 Scene 로드 및 처리(Scene Additive) 다중 Scene 로드 및 처리(Scene Additive) Unity에서는 기본적으로 Single Scene의 형태이다. 하지만 작업하다 보면 Scene을 여러 개 중복해서 사용해야 하는 경우가 생긴다. 본인의 경우에서는 NavMesh를 사용하는 상황인데 NavMesh는 Scene당 1개(Only One) 이기 때문에 여러 가지 NavMesh를 사용하기 위해서는 결국 맵 신을 Attach 해서 NavMesh를 교체하는 방법을 사용하고 있다. 그 외 여러 가지 기타 상황에 의거해서 Scene을 여러 개 사용하는 경우도 있다. (인게임/아웃 게임 구분)하는 CDN으로 맵을 분리하는 경우 등등.. using UnityScene = UnityEngine.SceneManagement; UnityEngine의 Sc.. 2020. 4. 9.
문제해결)Unity) Error - AnimationEvent has no function name specified! AnimationEvent has no function name specified! AnimationEvent has no function name specified!라는 에러가 콘솔에 찍히는 경우가 종종 발생한다. 이 에러가 나는경우에는 해당 애니메이션 클립의 이벤트가 정상적이지 않는 경우 (이름이 없거나, 제외된) 경우에 발생한다. 해결방법은 다음과 같다. 해당 애니메이션의 클립으로 선택해서 이벤트를 삭제해주면 된다. Unity Animation Event : [링크] 애니메이션 이벤트 사용 - Unity 매뉴얼 애니메이션 이벤트를 사용하여 애니메이션 클립을 최대한 활용할 수 있으며, 타임라인의 특정 시간에 오브젝트의 스크립트에 포함된 함수를 호출할 수 있습니다. docs.unity3d.com ★☆☆☆☆ 2020. 2. 28.
반응형