본문 바로가기

유니티

(43)
[메시 기초] 큐브 구체 (Catlikecoding) 해당 글은 CatlikeCoding의 튜토리얼을 실습하며 번역해놓은 글입니다. 번역 과정에서 제가 내용을 덧붙이거나 삭제한 부분이 존재합니다. 원본의 링크는 글 하단에 있습니다. 원본 글에 적혀있지 않은 내용을 추가할 때에는 (작성자 추가: ..내용)과 같은 형태로 작성하겠습니다. 요약 - 정육면체를 구체로 변환합니다. - Unity에서 매핑을 시각화합니다. - 변환을 비판적으로 검토합니다. - 수학을 사용하여 더 나은 접근 방식을 생각해 보세요 1. 둥근 큐브 조정하기 지난 튜토리얼에서 둥근 큐브로 완벽한 구를 만들 수 있다는 것을 눈치 채셨을 것입니다. 큐브의 세 차원의 값을 모두 같은 값으로 변경하고 Roundness를 해당 크기의 절반으로 설정합니다. 만약 이 컴포넌트로 얻고 싶은 메시가 구라고 ..
[메시 기초] 둥근 큐브 렌더링 (Catlikecoding) 해당 글은 CatlikeCoding의 튜토리얼을 실습하며 번역해놓은 글입니다. 번역 과정에서 제가 내용을 덧붙이거나 삭제한 부분이 존재합니다. 원본의 링크는 글 하단에 있습니다. 원본 글에 적혀있지 않은 내용을 추가할 때에는 (작성자 추가: ..내용)과 같은 형태로 작성하겠습니다. 요약 - 큐브에 둥근 모서리를 추가합니다. - 법선을 정의합니다 - 서브 메쉬를 사용합니다 - 사용자 지정 셰이더를 만듭니다. - 프리미티브 콜라이더를 결합합니다. 1. 큐브 합성하기 평범한 큐브는 그렇게 특별하지 않습니다. 둥근 큐브로 만들어 봅시다. 둥근 큐브로 만들어봅시다! 스크립트 파일과 클래스 이름을 RoundedCube로 변경합니다. Unity는 컴포넌트를 계속 추적하지만 연결이 끊어지면 스크립트를 다시 드래그해서 ..
[메시 기초] 큐브 렌더링 (Catlikecoding) 해당 글은 CatlikeCoding의 튜토리얼을 실습하며 번역해놓은 글입니다. 번역 과정에서 제가 내용을 덧붙이거나 삭제한 부분이 존재합니다. 원본의 링크는 글 하단에 있습니다. 원본 글에 적혀있지 않은 내용을 추가할 때에는 (작성자 추가: ..내용)과 같은 형태로 작성하겠습니다. 요약 - seamless mesh로 큐브를 만듭니다 1. 큐브 합성하기 2D 격자 문제를 해결한 다음 단계는 3D 구조를 절차적으로 생성하는 것입니다. 큐브를 살펴보겠습니다. 개념적으로 큐브는 3D 볼륨을 둘러싸도록 배치되고 6개의 2D면으로 구성됩니다. 그리드의 6개의 인스턴스로 이 작업을 수행할 수 있습니다. 이렇게 하면 6개의 개별 메쉬로 구성된 큐브가 생깁니다. 보기에는 괜찮지만 실용적이지는 않습니다. Mesh.Comb..
[메시 기초] 절차적 그리드 (Catlikecoding) 해당 글은 CatlikeCoding의 튜토리얼을 실습하며 번역해놓은 글입니다. 번역 과정에서 제가 내용을 덧붙이거나 삭제한 부분이 존재합니다. 원본의 링크는 글 하단에 있습니다. 요약 - 점으로 그리드를 만듭니다. - 코루틴을 사용하여 점의 배치를 분석합니다. - 삼각형으로 표면을 정의합니다. - 법선을 자동으로 생성합니다. - 텍스처 좌표와 탄젠트를 추가합니다. 이 튜토리얼에서는 정점과 삼각형으로 구성된 간단한 그리드를 만들어 보겠습니다. 1. 렌더링이란 유니티에서 무언가를 시각화하려면 메시를 사용합니다. 이것은 다른 프로그램에서 익스포트한 3D모델일 수도 있고, 유니티에서 절차적으로 생성된 메시일 수도 있습니다. 스프라이트, UI, 파티클 시스템도 메시를 사용할 수 있으며, Unity에서도 메시를 사..
[의사난수노이즈] 해시 - 시각화(Catlikecoding) 튜토리얼에 포함된 내용이 아니고 제가 추가한 내용은 밑줄로 표시했습니다. 사물을 예측할 수 없고 다양하며 자연스럽게 보이게 하기 위해서는 무작위성이 필요합니다. 이것이 정말로 무작위인지 아니면 정보 부족이나 관찰자의 이해로 인해 그렇게 나타나는지는 중요하지 않습니다. 그래서 이 무작위성을 결정적이며 완전한 무작위가 아닌 것으로 만들 수 있습니다. 잘못 설계된 다중 스레드 코드는 경쟁 조건(race conditions)으로 이어져 예측할 수 없는 결과를 초래할 수 있지만, 이는 신뢰할 수 있는 임의성의 소스가 아닙니다. 진정하게 신뢰할 수 있는 무작위성은 일반적으로 사용할 수 없는 대기 잡음을 샘플링하는 하드웨어와 같은 외부 소스에서만 얻을 수 있습니다. 진정한 무작위성은 일반적으로 바람직하지 않습니다. ..
[RenderTexture] 유니티 렌더텍스처 기본 렌더 텍스처는 런타임에 업데이트 되는 텍스처를 렌더링할 수 있는 텍스처입니다. 게임 내 TV 카메라 또는 미니 맵과 같은 많은 아이디어에 활용할 수 있습니다. 이번 글에서는 렌더 텍스처를 만드는 방법과 렌더 텍스처의 소스 카메라를 셋팅하는 방법을 다룹니다. 렌더 텍스처는 새 레벨 로드, 시스템 화면 보호기, 전체 화면 전환 등 특정 이벤트에서 손실 될 수 있음을 명심하세요. 그런 일이 발생하면 기존의 렌더 텍스처는 'not yet created'상태가 되며 'IsCreated' 함수로 확인할 수 있습니다. 다른 'native engine object' 유형과 마찬가지로 렌더 텍스처의 수명에 주의를 기울이고 릴리스(RenderTexture.Release' 기능과 함께 사용을 마치면 이를 해제하는 것이 중요..
[UGUI] Layout Element - Unity Auto Layout 성능이 악랄하다는 Unity Auto Layout을 개조시키기 위해 공부중입니다. 레이아웃의 요소의 최소(minimum), 기본(preferred) 또는 유연한 크기(flexible)를 재정의하려는 경우 'Layout Element' 컴포넌트를 게임오브젝트에 추가하여 이를 수행할 수 있습니다. 레이아웃 컨트롤러는 다음 순서로 레이아웃 요소에 너비 또는 높이를 할당합니다. - 먼저 레이아웃 컨트롤러는 최소 크기 속성(Min Width, Min Height)를 할당합니다. - 사용 가능한 공간이 충분하면 레이아웃 컨트롤러는 선호하는 크기 속성(Preferred Width, Preferred Height)을 할당합니다. - 사용 가능한 추가 공간이 있는 경우 레이아웃 컨트롤러는 유연한 크기 속성(Flexibl..
[UGUI] Unity Auto Layout, 유니티 UI 레이아웃 시스템 성능이 악랄하다는 Unity Auto Layout을 개조시키기 위해 공부중입니다. -> 성능이 악랄한 이유: 레이아웃 요소 변경시마다 자식에 있던 모든 레이아웃 엘리먼트가 부모로 GetComponent를 호출하며 Layoutgroup 컴포넌트를 탐색하며 리빌딩 과정을 진행함 Rect Transform 레이아웃 시스템은 다양한 유형의 레이아웃을 처리할 수 있게 유연하며 요소를 자유롭게 배치할 수도 있습니다. 그러나 때로는 좀 더 구조화된 형태가 필요할 수 있습니다. 자동 레이아웃 시스템은 수평 그룹, 수직 그룹 또는 그리드와 같은 중첩된 레이아웃 그룹에 요소를 배치하는 방법을 제공합니다. 또한 포함된 콘텐츠에 따라 요소의 크기를 자동으로 조정할 수 있습니다. 예를 들어 버튼의 텍스트 내용에 약간의 패딩을 ..