분류 전체보기 133

1. 싱글게임 클라우드 뭐 쓰지?

유니티 기반의 모바일 싱글 게임에 클라우드를 인테그레이션 해야한다. 필수로 필요한 서비스는 아래와 같다. Integration이 원활해야 한다. Unity 클라가 C#으로 개발될 것이기 때문에 백엔드 또한 C#으로 문제없이 돌아가야한다. 서버리스 클라우드 펑션을 제공해야한다. 클라우드 스토리지를 제공해야한다. 가격이 합리적이어야 한다. UI가 깔끔해야한다. 추가로 필요한 서비스는 아래와 같다. Authentication서비스를 제공하여 GPGS, Game Center 구현이 쉬워야 한다. Analytics를 제공하며 UI가 깔끔하여 추적이 쉬워야 한다. 번들을 올려놓을 CDN을 제공해줘야 한다. 후보군 리스트 Unity의 UGS(Unity Gaming Service) : 선정! AWS의 Lambda MS..

클래스와 구조체 차이

클래스와 구조체 가장 큰 차이 1. 클래스는 힙 메모리에 할당된다 vs 구조체는 스택 메모리에 할당된다.=> 클래스는 GC관리 대상 / 구조체는 GC관리 대상이 아니다.2. 클래스는 상속이된다. vs 구조체는 상속이 안된다. 잘못된 사실 1. 구조체에 선언된 필드의 총 사이즈가 16이 넘으면 힙에 할당된다는데 이는 잘못된 사실이다. 2. 구조체에 클래스 타입을 필드로 가진다고 해서 "구조체" 자체가 힙에 할당되는 것은 아니다. 단지, 클래스 타입의 필드는 그 인스턴스만 힙에 있고 그 인스턴스를 가리키는 포인터 값은 구조체 내에 존재하며 따라서 스택에 구조체가 유지된다는 사실에는 변함이 없다. 언제 클래스? 언제 구조체? Choosing Between Class and Struct - Framework D..

게임엔진/Unity 2023.07.03

List를 사용할 때 Reserve해야하는 이유

List는 Size가 가변적인 Collection이다. List에 데이터를 Add할 때 내부코드는 아래와 같다. => Add 를 호출하면 현재 배열의 사이즈를 비교하고 if (this._size == this._items.Length) 가득찼다고 판단하면 EnsureCapacity 메서드를 호출한다.=> EnsureCapacity를 보니, Length가 0이 아니면 무조건 Length의 2배를 Capacity Property에 할당해버림 => 일단 new T[value]로 destinationArray라는 새로운 배열 객체를 생성하는데, EnsureCapacity로부터 받은 원래 사이즈의 두배 만큼의 메모리공간을 할당함. => 그 다음 destinationArray에 원래 데이터들을 Copy한다음의 기존..

게임엔진/Unity 2023.07.03

High Poly 기초 연습 - 구

일반적으로 max에서 제공해주는 구는 모든 엣지가 한점에 모이는 구조라서 High Poly 작업에는 적합하지 않다고 한다. 따라서 구는 직접 만들어줘야하는데 과정은 아래와 같다. 박스를 만들어 준다. Edit Poly에서 Polygon모드로 들어가 GeoPoly를 연타하여 입방체를 만든다.(정육면체) Turbo Smooth 모디파이어를 적용하고 Iteration을 올린다. 그 다음 Spherify 모디파이어를 적용하여 완벽한 구 형태로 면들을 보정한다. 구 모양이 완성돼었고 모든 면이 사면(기본 원리)이기 때문에 원하는대로 구를 베이스로한 모델링이 가능해진다. 모든 면이 사면이기에 원하는 곳을 Inset하여 또다른 내부 면을 만들고 Extrude로 뽑아낸 모습.

High Poly 기초 연습 - Contraint

하이폴리곤 원칙에서 엣지 간격들은 서로 균일할 수록 좋다고 한다. 따라서 버텍스 위치를 아래와 같이 옮겨 간격을 맞춘다. 그런데 위치 이동을 하려니까 엣지 선 따라서 이동시키는게 불가능한 아래와 같은 경우가 있다. 이 때는 Contraint로 버텍스를 구속시켜야 한다. 아래의 두 곳에서 확인할 수 있다. 적용해보자. Contraint Edge로 적용하면 버텍스를 위로 이동시켰는데 엣지 선 따라서 잘 이동한다. Contraints에서 Normal은 법면을 의미한다.(직각 방향) 걍 맥스에서 Normal을 의미하는게 다 법선을 의미한다고 한다. 이제 Swift Loop를 이용하여 엣지를 추가한다. (Alt로 loop를 이동시키다가 한번 끊고 ctrl+alt 누르고 이동시키면 가까운 면에 맞게 loop가 적용..

카테고리 없음 2023.07.02

Transform ToolBox

Transform toolbox는 pivol이나 Rotation size조절을 좀 더 편하게 해준다. 단축키 ctrl + T 이 메뉴에서 Pivot의 위치를 옮길 수 있고 Center에 맞출 수 잇는데 Tool Box에서 Center를 클릭하면 자동으로 맞춰진다. 그리고 오브젝트를 Rotate하게되면 Pivot의 방향이 막 z축이 위로가있고 꼬이는데, 이 때 R버튼을 누르면 Pivot이 정리된다. Get버튼을 누르면 언제든 Size를 볼 수 있다. Rotate는 각도를 지정한 다음 버튼 클릭으로 쉽게 바꿔줄 수 있음 생각보다 90도 딱 맞추는게 마우스 드래그로 힘들다.