분류 전체보기 42

Unity Quaternion에 대한 정리

Quaternion [ Quaternion 이란 ? ] - 유니티에서 사용되는 각도의 단위 - 유니티에서 회전을 표현하기 위해 사용되는 구조체(Struct) - 수학적인 용어로 복소수 4차원 벡터(Four-Deminsional Complex Number) 1. 각도를 4개의 원소로 표현한 것. ( = 사원수)2. x, y, z, w로 표현되어 있음. - 우리가 알고 있는 1도, 45도, 90도 등의 표현은 오일러 각(Euler Angle)이라고 한다. [ Quaternion이 나오게 된 이유 ] - 오일러 각은 3차원 공간의 절대 좌표를 기준으로 물체가 얼마나 회전했는지 측정하는 방식이다. - 오일러 각은 회전 시킬 때, X, Y, Z 축을 차례대로 회전 시키는 방식을 사용하고 있다. - 이 때 X, Y..

Unity C# 2018.07.23

Photon Server에 대한 기본 정리

Photon Server 이번에 작성할 내용은 unity 클라이언트와 연동해서 사용할 'Photon' 이라는 상용 네트워크 서비스 엔진입니다. Unreal Engine과도 연동이 되는 것으로 알고 있지만, 제가 사용할 곳은 Unity이기 때문에 그에 맞게 스터디 해볼 예정입니다. 이번에 회사에서 포톤 서버를 사용할 일이 생겨서 스터디하면서 기본 개념에 대해 정리해보고자 합니다. 기본 개념은 대체로 포톤 공식 홈페이지에 적혀있는 내용을 기반으로 작성되었으며, 번역이 이상할 수도 있으니 틀린점 있으면 댓글로 알려주시면 수정하겠습니다. 클라이언트 개발자로서 서버에 대한 이해도가 많이 낮은 상태에서 작성된 점 양해부탁드립니다. 추가적인 부분은 지속적으로 수정해가며 업데이트할 예정입니다. 감사합니다. [최종 업데..

Unity C# 2018.07.18

Unity Collider Component 정리

[Collider Component]충돌을 감지하는 센서 역할을 하는 컴포넌트Box, Sphere, Capsule, Mesh, Wheel, Terrain 의 형태 Collider 제공Box Collider가장 다용도로 사용.Center, Size 속성으로 박스 형태를 조절 Sphere Collider가장 속도 처리가 빠른 Collider.Radius 속성으로 구체의 반지름을 조절정밀한 충돌 감지를 해야하는 경우를 제외하고서는 대부분 Sphere Collider 사용하는 것을 권장. Capsule Collider주로 인체 또는 나무, 가로등과 같은 모델의 충돌체로 사용.Height 속성으로 캡슐의 높이 조절 가능Direction 속성은 Height 값을 변경했을 때 커지는 축을 설정. 기본 Y축. Mesh..

Unity C# 2018.07.18

Unity RigidBody Component 정리

[Rigidbody Component]GameObject가 물리 제어로 동작하게 하는 컴포넌트물리 시뮬레이션을 통해서 오브젝트의 위치를 조절.중력, 충돌에 대한 오브젝트의 반응의 크기를 계산.PropertyMass : 질량. 상대적인 의미의 질량으로, 일반적인 kg, g 등의 무게 단위는 아니다. ‘A 물체 mass가 1, B 물체 mass가 10이라고 할 때 B물체는 A물체보다 10배 더 무겁다.’ 라고 해석하는 것. 보통은 1Mass = 1Kg이라고 가정 후 작업하는 것이 일반적.Drag : 이동할 때 적용되는 마찰계수(저항)Angular Drag : 회전할 때 적용되는 마찰계수(저항)Use Gravity : 중력 적용 여부Is Kinematic : 체크하면(True) 물리엔진의 영향을 받지 않으며,..

Unity C# 2018.07.17

Unity3d GameObject에 관한 정리

[GameObject]유니티는 컴포넌트 기반 개발(CBD : Component Based Development) 방법론을 지원한다.CBD는 독립적인 기능 단위로 컴포넌트를 제작해 필요한 기능을 조립하는 방식.컴포넌트란 게임오브젝트의 기능을 담당하는 부분.CBD는 컴포넌트의 재사용이 가능하고, 높은 생산성이 장점이다.GameObject는 특정 속성이나 기능을 갖춘 오브젝트를 담을 수 있는 상자에 비유.유니티에서는 일반적으로 사용되는 오브젝트를 일부 템플릿 형태로 제공Light, 3D Object, Particle, Camera캐릭터, 아이템, 상자, 몬스터 등 모든 것이 게임 오브젝트이다.GameObject들은 기본적으로 Transform Component를 포함하고있다.Transform Component..

Unity C# 2018.07.17

Unity3d 그래픽스, 조명에 관한 정리

[Graphics] Texture - 3D 모델의 표면에 매핑시킬 이미지 파일을 지칭. - Texture 기능으로 Mesh, Particle 및 Interface에 이미지를 매핑.- 매핑 - 이미지 또는 동영상을 오브젝트에 겹치거나 둘러싸는 것.- PSD(포토샵), PNG, JPEG, TIFF, GIF, BMP, TGA 등 다양한 이미지 파일 포맷 지원- PSD 파일에 있는 여러 개의 레이어를 자동으로 평면화(Flatten)한다.- 텍스쳐의 원본을 보존한 상태로 다양한 압축 포맷으로 용량을 줄이는 기능을 제공.- 텍스쳐의 크기가 가로세로 2^n 형태일 때 압축 지원 속도가 가장 빠르다.모바일 플랫폼을 사용할 경우 이 형태를 사용하는게 가장 유리하다. Texture Type - Texture : 모든 텍스..

Unity C# 2018.07.16

Singleton Pattern

Singleton Pattern OOP에서 객체는 Class와 Instance를 포함한 개념 Instance란?객체(Object)를 생성하여 Heap 메모리 영역에 할당된 실체(Stack된 것)를 의미하는 개념. Singleton이란?하나의 프로그램 내에서 인스턴스가 사용될 때, 이전에 생성된 인스턴스가 있을 경우 동일한 인스턴스를 생성하는 것이 아닌, 기존에 생성되어 있던 인스턴스를 가져와 사용하는 것을 기본 전략으로 내세운 디자인 패턴이다.프로그램 상에서 동일한 커넥션 객체를 만든다든지, 하나만 사용되어야 하는 객체를 만들때 유용하다. Singleton 패턴을 사용하는 이유는?지정한 클래스 인스턴스가 한개 밖에 존재하지 않는 것을 유지하고 싶을 경우new 키워드를 통해 객체를 생성하게 되면, 생성되는..

Programming 2017.12.07

객체지향 프로그래밍의 3요소 5원칙!

객체지향의 3요소 5원칙 3요소캡슐화, 다형성, 상속 Encapsulation 캡슐화 - 프로그램 내에서 같은 기능을 목적으로 작성된 코드를 모아서 다른 곳(클래스)에서 안보이게 숨기는 것.클래스에 정의된 속성(Attribute)는 숨기고(Private), 객체가 수행할 기능(Function)은 공개(Public)하는 것을 의미한다. Inheritance 상속 - 클래스 사이에 부모와 자식 클래스가 존재할 수 있다는 뜻.자식 클래스는 상속받은 부모 클래스의 속성(변수) 및 기능(메소드, 함수)를 물려받는 것을 의미한다. Polymorphism 다형성 Overriding과 Overloading 두가지로 나뉨.Overriding부모클래스에서 정의되어 있는 내용을 자식클래스에서 재정의하여 사용하는 것.Over..

Programming 2017.12.07

MVP Pattern 이란?!

MVP 패턴 !! MVP 패턴이란? 1990년대 초기 MS사에서 공개한, MVC 기반의 GUI를 처리하기 위한 패턴 MVC 패턴에 비해 Model과 View 간의 결합도를 낮추는데 초점을 맞춤. View, Model, Presenter로 나뉨 장점 : MVC 패턴에 비해 클래스별 코드가 짧아짐. 코드를 나눔으로써 TDD가 수월해짐 View와 Model 간의 구분 가능 Presenter의 역할을 통해 View와 Model 간의 결합도를 낮출 수 있음 결합도가 낮아짐에 따라 새로운 기능 추가 또는 변경 등, 유지보수 및 확장성이 좋아짐. View와 Model의 사용법이 분리되면서 Clean Code가 가능하다. Presenter의 역할을 통해 Model과 View 간의 결합도를 낮출 수 클래스의 역할에 따라..

Programming 2017.12.07

Dependency (의존성) 이란??

Dependency !! MVP Pattern을 알기 전에 Dependency(의존성)에 대해서 한번 알아보고 가자 Dependency란?코드에서 두 모듈 간의 연결.객체지향언어에서는 두 클래스 간의 관계라고도 말함.일반적으로 둘 중 하나가 다른 하나를 어떤 용도를 위해 사용함. Dependency가 위험한 이유하나의 모듈이 바뀌면 의존한 다른 모듈까지 변경이 이루어지기 때문.테스트 가능한 어플을 만들 때 의존성이 있으면 유닛테스트 작성이 어려움.유닛테스트의 목적 자체가 다른 모듈로부터 독립적으로 테스트하는 것을 요구하기 때문.(Mock 객체로 대체가능) Dependency Injection(의존성 주입)이 필요한 이유위 Dependency가 위험한 이유를 해결하기 위해서 사용.‘new’를 사용해 모듈 ..

Programming 2017.12.07