상속 관계MonoBehaviour ← Behaviour ← Component ← Object⇒ 즉, MonoBehaviour를 상속받는 모든 스크립트는 GameObject에 붙을 수 있다!!Managers에 들어가는 것들UI, Sound, Network, Scene관리
스크립트 생성하면 디폴트로 설정되어 있는 Start / Update 함수 관련 주석 삭제하기 ㄴ 컴퓨터에서 Unity가 저장된 경로에 있는 ScriptTemplates 폴더에 들어가 81번 스크립트 텍스트 파일을 연다 ㄴ Start / Update 주석을 삭제한 후 다
Player 객체에 PlayerController.cs 붙여준다.⚠️ 하지만 지금은 너무 빨리 움직인다!!\-> Update()는 한 프레임당 호출되는 함수로 60프레임의 게임이 돈다면 1/60초마다 포지션을 이동하는 함수가 실행되므로 매우 빠를 수밖에 없다. 💡 이
1. Vector란? 1.1 개요 벡터는 방향과 크기를 기술하는 중요한 수학적 개념으로, 캐릭터의 위치, 움직이는 속도, 두 객체 사이의 거리 등과 같은 속성을 기술하는 데 사용된다. Unity에서는 2D, 3D, 4D 벡터 작업에 Vector2, Vector3, V
1. Rotation
ㄴ 이렇게 키 값이나 마우스 클릭 등의 기능을 Update()에서 계속 체크하도록 설계하게 되면 규모가 큰 프로젝트에서는 성능의 부하를 야기할 수 있다. 이를 방지하기 위해 Input Manager를 사용해야 한다. InputManager: Input관련 이벤트를 관
이렇게, Tank의 각 요소들을 만들고, Tank라는 빈게임오브젝트로 그룹화를 시켜주는 방식이다.이렇게 한 후, 부모 객체(Tank)에 저번에 만들었던 PlayerController.cs 컴포넌트를 추가해주면 산하관계에 있는 자식 오브젝트들도 함께 회전하고 이동하게
1. Instantiate() (생성) 2. Destroy() (삭제) >Destroy(대상, 몇 초 후) 3. Resources.Load("경로") 위에 코드처럼 으로 직접 인스펙터창에서 생성할 오브젝트를 연결해줘도 되지만, 규모가 큰 프로젝트의 경우 이렇게 해
1. Rigidbody Unity에서 Object가 물리력을 활용하려면 Rigidbody 컴포넌트를 가져야 한다. (2D의 경우 Rigidbody 2D 사용) 즉, Rigidbody는 GameObject가 물리 제어로 동작하게 하는 기능이다. Mass : 질량 (kg
1. Physics.Raycast() Raycasting: 레이저를 쏴서 레이저를 부딪히는 물체의 유무 체크 (bool값 출력) 1.1 사용법 1.2 중첩된 물체에 Ray를 쏘면? ㄴ 디버그 상에서는 두 물체 모두에 Ray가 닿고 있지만 실제로는 앞에 있는 물체만
1. Camera 컴포넌트 속성 Culling Mask : 카메라가 렌더링할 Layer 선택 ㄴ 'Monster' 레이어를 사용하고 있는 Cube1만 렌더링되지 않는 것! 2. CameraController.cs 2.1 player 따라가기 1) Main Came
1. Animation이란? 현재 프로젝트는 UnityChan을 사용하여 학습하고 있다. 받아놓은 UnityChan 에셋을 보면 Animations가 있다. 그 중 하나를 선택하고 Inspector창에서 Animation버튼을 클릭하면 Preview 씬에서 해당 애니메
1. [디자인패턴] State 패턴 게임 속 애니메이션이 많아질 경우.. 모든 애니메이션을 bool로 상태를 파악해서 if~else문으로 출력해주는 코드는 매우 비효율적이며 특히 Blending이 필요한 애니메이션이 많다면 더욱 피곤하다.. 뿐만 아니라, 상태 분기가
UI 오브젝트를 클릭했을 경우에도 InputManager의 MouseAction이 진행되는 것을 수정.Button UI 생성UI_Button.cs 생성점수 Text 연결 Button 클릭 이벤트 추가 \-> 버튼 클릭 시 점수가 증가하는 시스템을 만들었다! 하지만, 실
1. Bind()한 객체 꺼내기 : Get() Bind()함수를 통해 찾은 일치한 object의 인덱스 번호를 Get()을 활용하여 꺼낸다. 즉, 원하는 객체를 불러와 해당 객체의 데이터를 바꿔준다. -> 매번 인스펙터에 필요한 UI객체를 드래그앤드롭으로 연결해주
이전 포스팅에서 Bind()로 원하는 컴포넌트/게임오브젝트를 찾고, Get()으로 출력을 했다. 이제 버튼을 클릭하면 점수가 오르는 등의 이벤트도 자동화로 연결해보자.이전에 UI_Button.cs에서 Button을 클릭하면 score++되도록 코드를 작성하였다. 이때
팝업 UI의 관리를 위한 UI Manager가 필요하다.팝업은 스택처럼 가장 마지막에 나온 것이 가장 먼저 사라져야하는 구조!\-> Canvas의 Sort Order를 관리한다. 모든 UI가 다 팝업 형식은 아니기 때문에 Prefab - UI 폴더에 Popup폴더와 S
활용한 에셋: UNITY ASSET STORE_UI SAMPLESㄴ 'Textures ans Sprites' 폴더만 IMPORT해줌이전 포스팅까지 작업했던 UI_Button이 하이어라키에 남아있다면 삭제.ㄴ UI - Panel 추가ㄴ Panel의 Image에 다운받은
실행버튼을 눌렀을 때 앞서 만든 UI의 생성 및 기능 구현 등을 위해 지금은 UnityChan에 붙어있는 PlayerController.Start()에 코드를 작성하여 기능을 구현했다.하지만 RPG게임의 경우 Player캐릭터가 없는 순간이 있을 수도 있기 때문에 Pl
1. Sound 필수 요소 | 내용 | Unity 컴포넌트 | 사용 방법 | |:----------|:----------| :--------| | MP3 Player | AudioSource | 오브젝트에 컴포넌트 추가 | MP3 음원 | AudioClip| 오브젝트
1. 오브젝트 풀링이란? 보통 유니티에서 프리팹을 불러오거나 삭제시킬 때는 Instantiate(), Destroy()메서드를 사용한다. 간단한 게임의 경우에는 상관없지만 만약 생성하고 삭제시키는 오브젝트가 많이 사용되는 규모의 프로젝트라면 메모리 사용량이 늘어나 성능
Managers.cs 에 추가 ㄴ data는 항상 들고있는 것이기 때문에 Clear()는 따로 해주지 않는다. Assets - Resources - Data 폴더 생성txt 파일 생성 -> .json으로 변경json 작성 문법 : List{ } : Struct bre
1. 환경 설정 1.1 Main Camera 위치 설정 Player와의 적당한 거리감을 조절한다. 1.2 Terrain 생성 Create - 3D Object - Terrain 생성 ㄴ 자동으로 Project에 Terrain Data 파일이 생성된다. Terrai
Knight 에셋 다운Project 창 정리Knight 프리팹화Knight용 Animator 생성Animator에 Animation 설정Contents 폴더 생성 후 Stat.cs 생성❌ Data.contents.cs에서 이미 Stat 클래스명을 사용하고 있기 때문에
PlayerAnimController 컨트롤러에 Attack 애니메이션 추가 ㄴ bool타입으로 attack 변수 추가ㄴ Has Exit Time 해제ㄴ attack == true일 경우 Attack 애니메이션으로 전환ㄴ attack == false일 경우 WAIT
1. 체력게이지바 1.1 3D UI_Slider 캐릭터의 머리 위에 체력게이지바를 띄워야 한다. 2D UI로 하면 원근감이 적용되지 않아 부자연스러워지기 때문에 체력게이지바는 3D UI로 제작해야 한다. Create - UI - Slider Canvas Render
BaseController.cs 생성PlayerController와 MonsterController는 중복되는 메서드가 많이 발생한다. 이에 BaseController.cs를 생성하여 공용되는 부분은 상속받아 사용하도록 로직을 구성하자.애니메이션 상태 정의Player
Player와 Monster를 관리할 GameManager.cs를 만들고 우선 Managers에 추가해줬다. 1. Player, Monster 타입별 관리 1.1 GameManager.cs 게임의 성격에 따라 관리하는 방식이 다르다. players, monsters
구현 기능일정 범위 내에서 Monster의 개수가 유지되도록 Moster 사망 시 자동 생성일정 범위 내 Monster 생성 위치 랜덤 지정PlayerController.cs 플레이어 이동 코드 수정monster가 몰려서 player를 공격할 때 클릭으로 player의
1. 기본 틀 구성 (Assets 폴더) 1.1 Manager 총괄_Managers.cs >* 기능: Scene, Resource, Pool, UI, Input, Sound, Data, Network 등 게임의 전반적인 구조를 관리한다. 특징: 싱글톤으로 구현 s