Unity
-
11장. 유니런 플레이어 제작Unity/레트로의 유니티 게임 프로그래밍 에센스 2020. 11. 15. 11:21
11.1 유니티 2D 프로젝트 열기 11.1.1 유니티 2D 프로젝트 - 유니티 프로젝트 생성 이후 얼제든지 2D와 3D 사이에서 전환 가능 - 2D 프로젝트의 주요 특징 > 이미지 파일을 스프라이트 타입으로 임포트 > 기본 생성 카메라가 직교(Orthographic) 모드를 사용 > 라이팅 설정 중 일부가 비활성화 > 씬 창이 2D 뷰로 보임 > 2D 프로젝트의 2D 게임 오브젝트는 위치와 스케일 등을 Vector3로 저장. 원근감이 없으니 z값 무의미. 11.1.2 Uni-Run 프로젝트 열기 11.2 시작 지점 만들기 11.2.1 시작 지점 발판 - 스프라이트는 2D 그래픽과 UI를 그릴 때 사용하는 텍스처 에셋 (이미지 파일). - 하이어라키 창으로 드래그&드롭. 11.2.2 데드존 만들기 11...
-
10장. 공간과 움직임Unity/레트로의 유니티 게임 프로그래밍 에센스 2020. 11. 11. 12:04
10.1 유니티 공간 - 게임 월드는 하나지만 하나의 좌표계(공간)로는 게임 월드의 모든 속성을 표현할 수 없음. - 이후 설명할 전역 공간, 오브젝트 공간, 자식 공간은 하나의 게임 월드를 서로 다른 잣대로 관측하여 표현한 것. 10.1.1 전역 공간 - 월드의 중심이라는 절대 기준이 존재하는 공간. = 월드 공간(world space). - 전역 공간에서 X,Y,Z 방향을 정하고 그에 따라 좌표를 계산하는 기준을 전역 좌표계(global coordinate system). - 전역 공간에는 원점(0, 0, 0)이 존재하며 모든 오브젝트가 원점에서 얼마만큼 떨어져 있느냐가 오브젝트의 좌표가 됨 - Pivot : 오브젝트의 실제 기준점으로 오브젝트 배치 - Center : 눈에 보이는 오브젝트의 중심점을..
-
09장. 방향, 크기, 회전Unity/레트로의 유니티 게임 프로그래밍 에센스 2020. 11. 10. 16:00
9.1 벡터 수학 9.1.1 벡터의 정의 - 위치와 운동 상태 중 하나를 가르킴. 9.1.2 절대 위치와 상대 위치 9.1.3 벡터의 크기 9.1.4 벡터의 스칼라 곱 9.1.5 방향벡터 9.1.6 벡터의 덧셈 9.1.7 벡터의 뺄셈 9.1.8 벡터의 내적 9.1.9 벡터의 외적 9.2 유니티 C# 벡터 9.2.1 Vector 타입 - Vector2, Vector3, Vector4 9.2.2 Vector3 연산 - 스칼라 곱 : 벡터와 스칼라 값을 곱함 - 벡터의 덧셈과 뺄셈 - 정규화된 벡터(방향벡터로 만들기) : {vector_name}.normalized; - 벡터의 크기 : {vector_name}.magnitude; - 벡터의 내적 : VectorN.Dot({vector_name0}, {vect..
-
08장. 닷지_게임 매니저와 UI, 최종 완성Unity/레트로의 유니티 게임 프로그래밍 에센스 2020. 9. 7. 22:09
transform.Rotate(xAngle, yAngle, zAngle). 현재 상태에서 입력만큼 회전. radian아니고, ˚. 회전 기준점은 영점. 축에따라 공전하듯이 회전. UI요소들은 캔버스의 2차원 평면에 배치됨. UI요소들은 캔버스의 자식 오브젝트가 됨. -> 안드로이드의 레이아웃과 뷰의 관계와 비슷? Screen Space - Overlay. 화면에 UI가 그려지는 느낌? UI 오브젝트는 다른 오브젝트(지형이나 캐릭터 등등)와 다르게 화면에 표시됨. 임의의 (보이는) 오브젝트로 카메라 시야를 사려도 화면에 UI가 표시됨. 다른 오브젝트로 가릴 수 없음. Screen Space - Camera. UI 오브젝트가 다른 오브젝트와 동일하게 카메라에 표시됨. 임의의 오브젝트로 카메라를 가리면 UI도..
-
07장. 닷지_탄알제작Unity/레트로의 유니티 게임 프로그래밍 에센스 2020. 9. 2. 14:49
Collider - is Trigger : 충돌 감지 프리팹 : 언제든지 재사용할 수 있는 미리 만들어진 게임 오브젝트 에셋(파일). 파일로 저장되기 때문에 현재 씬뿐만 아니라 다른 씬에서도 사용 가능. 게임 오브젝트를 하이어라키 창에서 프로젝트 창으로 드래그&드롭하여 프리팹 생성. 반대로 프로젝트 창에서 하이어라키 창으로 드래그&드롭하면 복제. Destroy() 는 비동기성 파괴. MonoBehaviour 클래스의 멤버로 GetComponent(), gameObject, transform 가 있음. -> this를 붙여도 됨. OnTriggerEnter, OnCollisionEnter 메시지를 리지드바디 컴포넌트. 충돌 메시지를 사용하려면 최소 하나의 게임 오브젝트는 리지드바디 컴포넌트를 가지고 있어야..
-
06장. 닷지_플레이어 제작Unity/레트로의 유니티 게임 프로그래밍 에센스 2020. 8. 27. 16:14
- 머티리얼 : 오브젝트의 필셀 컬러를 결정. 셰이더와 텍스처가 합쳐진 에셋. - 셰이더 : 질감과 빛에의한 반사와 굴절 등의 효과를 만듦. 픽셀의 최종 컬러를 결정. - 텍스처 : 표면에 입히는 이미지 파일. 프로젝트창 -> create -> material -알베도 : 반사율. 물체가 어떤 색을 반사할지 결정. 물체 표면의 기본색을 결정. - 탄알 입장에서 충돌한 게임 오브젝트가 플레이어인지 확인하기 위해 게임 오브젝트의 태그 사용. - 리지드바디의 제약 옵션을 사용하면 물리저인 상호작용으로 위치나 회전이 변경되는 것을 막을 수는 있지만, 트랜스폼 컴포넌트의 위치나 회전에 새로운 값을 할당하여 변경하는 것은 막을 수 없음. -Input.GetKey() : 해당 키를 누르는 동안 true. 그 외에는 ..
-
05장. 게임 오브젝트 제어하기Unity/레트로의 유니티 게임 프로그래밍 에센스 2020. 8. 26. 11:11
- MonoBehaviour 를 상속한 클래스를 new로 오브젝트로 생성 불가. 오로지 게임 오브젝트에 컴포넌트로 추가하는 방법으로만 오브젝트 생성. 또는 AddComponent() - 아무도 가리키지 않는 오브젝트는 C#의 가비지 컬렉터가 틈틈이 자동으로 파괴함. - C#에서 string은 불변. 수정하는 메서드를 이용한다면 새로운 객체를 반환. -> 값 타입 변수. docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/strings/#immutability-of-string-objects 문자열 - C# 프로그래밍 가이드 C# 프로그래밍에서 문자열에 대해 알아봅니다. 문자열 선언과 초기화, 문자열 개체의 불변성 및 문자열 이스케이프 시퀀스에 대한 정보를..
-
04장. C# 프로그래밍 시작하기Unity/레트로의 유니티 게임 프로그래밍 에센스 2020. 8. 25. 15:52
네임스페이스와 using docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/namespaces/using-namespaces#fully-qualified-names 연산자 우선 순위 docs.microsoft.com/ko-kr/cpp/c-language/precedence-and-order-of-evaluation?view=vs-2019#precedence-and-associativity-of-c-operators