-
[Unity] 작업 속도를 향상 시키는 새로운 에디터 기능
1. Grid and Snap Settings이제 그리드의 회전을 지원하여 맞춤작업에 용이해짐. 회전 그리드 사용법객체 선택 > 객체를 회전시킴 > 그리드 세팅에서 복사를 클릭 > 그리드 생성됨 > 좌표계를 그리드로 변경 > 기즈모가 그리드에 맞춰져 원하는 각도로 객체를 복사, 정렬할 수 있음. 2. 계층 창 추가 정보Preferences > General > New Hierarchy에서 Use Ner Hierarchy에 체크 계층창에서 우클릭을 통해 다양한 탭을 추가할 수 있음. 3. 라이트 검색씬의 모든 라이트를 하나의 창에 표시함.Window > Rendering > Lighting Search에서 모든 라이트와 설정값을 확인할 수 있음.여러 개의 라이트를 한 번에 선택하여 작업할 수 있음...
-
[Unity] Unity TDD를 위한 배경 지식, DLL과 Assembly Definition
이전 글에서 Unity TDD 방법을 설명드렸죠. 그 안에 TDD 패키지는 Assembly Definition이 필요하다는 내용이 있었는데, 이 부분을 설명하기 위한 글입니다. Unity에서 C# 코드를 컴파일하면 여러 개의 Assembly(어셈블리)라는 단위로 묶입니다.Assembly = 여러 C# 코드를 하나로 묶어서 컴파일한 논리적인 코드 묶음 Assembly Definition(.asmdef)은 컴파일 중에 사용되며, 어떤 Assembly 단위로 묶을지가 적혀있는 유니티 설정 파일입니다. .dll은 실제 코드가 컴파일된 결과물이라고 생각해도 됩니다. 여기에는 내 코드, 유니티가 제공한 코드, 외부에서 가져온 코드가 모두 포함됩니다. pdb는 디버깅용 정보입니다. DLL이 "실제 코드"라면 PDB는..
-
[Unity] AI 작업의 기본, TDD(Test-Driven Dev)
먼저 TDD가 무엇인지 간단하게 말씀드리면,TDD는 코드를 점검할 테스트 케이스를 먼저 만들고, 그 테스트를 통과할 수 있는 코드를 작성하며, 리펙토링하는 기법입니다. AI가 발전하면서 개발 속도가 빨라지고, 자동 생성되는 코드도 굉장히 많아졌는데요. 그럴수록 AI가 만드는 모든 코드를 읽는 것은 어렵겠죠. 그래서 우리는 Test Case를 만들어두고, AI가 작성한 코드가 그 Test를 통과함으로써 안전한 코드라고 믿을 수 있게끔 환경을 구축해주는 겁니다. TDD의 작업 흐름은 사진과 같습니다. AI를 사용하는 경우 이 과정을 AI가 진행하게 됩니다. 개념은 간단하지만 처음 보면 어떤 테스트를 만들어야할 지 막막할 수 있어요.그래서 아래의 예시를 참고해서 AI가 테스트를 만들도록 합니다. Unity에..
-
[Unity] Unity에서 AI 활용하기 (1)
(6.4ver) AI 활성화 시 Assistant(어시스턴트) 창 활성화 됨. 명령 방법- Assistant 창에서 프롬프트 작성> 영어 명령이유리함> 어시스턴트 탭에 결과물을 요약하고, 작업을 실행함. 가능한 작업 목록- 믹사모 캐릭터, 애니메이션 적용- new Input System 적용- NPC 제작- SOILD 원칙에 맞도록 리펙토링 어려운 작업- 캐릭터 모델 제작(비용 크고, 구림) 느낀점.AI로 코드 작성이 빨라짐.그러나 SOLID 원칙과 디자인 패턴을 코드은 한 번에 완벽하게 적용해주지 않기 때문에 AI 사용자도 이 설계 능력이 필요함. 이제 코드 작성 능력의 비중이 줄고 아래 능력들이 중요해졌다.- 기획- 효율적인 설계(SOLID, 디자인 패턴)- AI 활용- 마케팅 https://ww..
-
[Unity] SOILD 원칙 (1)
SOILD 원칙S: 하나의 클래스엔 하나의 책임(역할)만 부여 O: 기능 확장을 쉽게 하되, 기존 코드를 바꾸지 않아야 함 (Open - Close) L: 자식클래스(상속 받은 클래스)는 부모 클래스를 대체할 수 있어야 함.> 부모클래스가 할 수 있는 행위는 자식도 할 수 있어야 함.만약 자식클래스에서 부모클래스를 수정해야하는 상황이 생긴다면 수정하지 말고, Interface를 사용해보자.interface는 has, 상속은 is 개념 I: 인터페이스를 작은 단위로 나눠라.> 기능 단위로 나누자 D: 추상화가 세부 사항에 의존해서는 안됨. > 반대는 OK> 상위 개념은 하위 개념에 의존해선 안됨. 하위개념이 상위 개념에 의존해야함. 추상클래스(is) VS 인터페이스(has)추상클래스는 기본적으로 클..
-
게임 수학 강의 정리 (9)
반사 코드에서 벡터의 반사를 구할 때 Vector.Reflect(a,b)를 사용한다. 반사된 벡터를 구하는 공식은 아래와 같습니다. 평면으로의 사영 레이싱 게임을 하면 차가 벽에 비스듬하게 부딪혔을 때 튕겨나가지 않고 붙은 채로 나아가는 모습을 볼 수 있다. 이것이 어떻게 구현되는지 아래와 같다. 입사각과 법선벡터를 통해 튕겨나가는 방향이 결정되고, 공식도 확인할 수 있었다.
-
게임 수학 강의 정리 (8)
외적( cross product , Vector product ) 외적은 두 벡터 간의 연산이며, 새로운 벡터를 배출하고, 3차원 공간에서만 성립한다.외적의 결과물 벡터는 연산에 사용한 두 벡터와 모두 수직인 벡터이다. * 법선벡터(Normal Vector): 한 평면(선)에 수직인 벡터외적은 순서가 중요하다. 두 벡터의 외적은 각 좌표마다 연산하는데,C의 x좌표 = (ay*bz) - (az*by)이런식으로 교차하여 곱한다.(아래 사진 참조)외적은 순서가 중요하다. 외적의 크기는 두 벡터가 그리는 평행사변형의 너비와 같다.> 두 벡터가 이루는 각도가 0이거나 180이라면 평행사변형의 너비도 0이고, 외적도 0이 된다.> 90도(직각)에서 외적은 가장 크다. 이에 대한 공식이 있지만 게임 개발에선 자..
-
게임 수학 강의 정리 (7)
벡터의 정규화 = 벡터의 방향을 유지한 채 크기가 1인 단위 벡터로 바꾸는 작업ㄴ 벡터를 크기로 나눈다. > Vector.Normalize(v) 영백터는 벡터의 크기가 없다는 뜻이다.ㄴ 속도가 0인 경우 Vector.zero 내적(Dot Product): 벡터간의 곱 내적을 구할 때 두 벡터의 방향이 다르다면, 단위벡터를 곱하거나 cos연산으로 해당 방향의 성분을 구할 수 있다. 그 결과 아래 공식이 도출 된다. 두 벡터의 내적은 각 벡터의 크기와 cos각도의 곱이다. 위 공식의 변형으로 각도(세타)를 구할 수 있다. 게임에서 적용 예시- 플레이어의 위치 좌표, 바라보는 방향, 적의 위치, 시야각을 알 때 플레이어의 시야에 적이 들어와 있는지 알 수 있는가?> 마지막 공식인 각도(세타)를 구하여 계..