일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 스파르타내일배움캠프
- Generic
- 인터페이스
- ObjectPool
- 장애물달리기
- 비선형자료구조
- 스택
- c#
- LINQ
- unity
- InputManager
- UI
- skybox
- 유한상태머신
- invokec#events
- 람다식
- 메서드
- script
- BGM
- FSM
- 코루틴
- soundmanager
- 효과음
- 유니티
- 자료구조
- 프로그래머스
- inputsystem
- 배열
- 직렬화
- delegate
- Today
- Total
목록Unity 개발 (35)
Unity 개발일지
[동적 생성이란?]동적 생성이란 게임 실행 중에 코드를 통해 오브젝트를 생성하는 것을 말한다.동적생성은 미리 정의된 프리팹을 인스턴스화 하거나, 코드로 직접 오브젝트를 만드는 방식으로 이루어질 수 있다.Scene전환을 해도 되지만 전환 시 신경써줘야하는 부분들도 많기 때문에 동적 생성을 선호하기도 한다. [동적 생성의 장점] - 씬이 가벼워져서 씬 로딩이 빠름 - 씬이 변화가 없어서 Git 충돌이 거의 없음 - Prefab단위로 작업을 진행해 분업이 편리 - 추후 대부분의 리소스 및 UI를 Adressable로 보내 빌드 용량을 낮추기 용이함 - 와이어 프레임상 변경이 일어날 경우 간단하게 바꿀 수 있음(유지보수 용이) [동적 생성의 단점] - 동적생성을 하는 코드를 추가 작성해야 해서 코드가 복잡해짐 ..
Animator 창에서 Bool값으로 변수들을 선언 후 Create Sub-State Machine을 만들어주고 Ground라고 이름을 붙여준다. 그러면 Animator 상단에 Base Layer 와 Ground 로 레이어가 나뉘게 되는데 조건을 만족하면Base Layer에서 Ground로 이동한다는 뜻이다. Animation을 만들어줘야한다면 만들어서 넣어주고, 이미 만들어진 Animation이 있다면 드래그드랍으로 등록해주자. Tsansition을 등록해주고 각각의 bool값 설정화 Has ExitTime을 해제해주는 등의 작업을 한다. Player가 직접 움직이는게 아니라 붙어있는 Model이 움직여야하므로 Animator를 모델쪽으로 움직여준다.Animator위치를 바꿔줬으니Player 스크립트에..
Scriptable 폴더를 만들고, 를 작성해주자.PlayerSO안에는 각 상태별 Data도 적어주었다.스크립트 저장 후 PlayerSO를 생성해준 뒤 값은 스크립트에서 정한 값 그대로 두었다.Player가 PlayerSO 데이터를 받아올 수 있도록 Player 스크립트를 수정해주었다.PlayerSO를 드래그드롭해서 넣어주자. 이제 PlayerGroundState에 들어갈 State들을 본격적으로 작성해보자!@일단, 스크립트이다.앞으로 상태들이 PlayerStateMachine을 거쳐갈텐데 상태들이 받아갈 수 있는 값들을 선언해주었다.StateMachine을 추상클래스로 만들고, 이를 상속했는데 딱히 바꿀 내용은 없기 때문에 그대로 가져간다.StateMachine이 계속 작동할 수 있도록 Player ..
이제 본격적으로 InputManager를 만들어보자. [프로젝트 세팅하기]Window - Package Manager - Unity Registry - Input System 검색 후 Install 먼저 Scene에 빈오브젝트 Player를 만들고, 프리펩을 넣어주었는데 핑크맨등장!랜더파이프라인설정이 달라서 수정하는 작업부터 해주도록 하겠다.Window - Rendering - Render Pipeline Converter - Convert Assets 클릭 - Initialize And Convert 클릭현재 프로젝트가 URP라서 생긴 현상으로, Built-in을 URP로 전환해준다. Player의 Material이 적용되어있는 Material파일을 클릭해보면 Built-In에서 사용하는 Standar..
InputManager의 다양한 구현방법 중 Invoke C# Events를 소개하고자 한다.Send Messages를 이용한 구현은 다음 포스팅을 참고하자. [Unity] New InputManager로 플레이어 이동 구현하기유니티로 플레이어의 이동을 구현하는 방법은 다양하다.오늘은 그중에서도 New InputManager로 구현을 해보았다. New InputManager란 무엇인가?우선 기존의 InputManager (구 InputManager)로 플레이어의 이동amor-games.tistory.com 이번 프로젝트에서는 Finite State Machine (유한 상태 머신) 기법으로 플레이어의 움직임을 구현핬다. [Finite State Machine]finite는 한정된이라는 뜻으로 infi..
이제 싱글톤은 익숙하다! 싶은 분들을 위해 준비했습니다. 제네릭 싱글톤! 일반적인 싱글톤 패턴은 특정 클래스의 인스턴스가 하나만 존재하도록 보장하고, 어디서든 그 인스턴스에 접근할 수 있도록 하는 디자인 패턴이다. 싱글톤 패턴은 전역 변수와 유사하지만, 싱글톤 인스턴스는 다른 코드에 의해 덮어쓰지 못하도록 보호된다.Generic Singleton !!!제네릭이란 C++ 을 공부했던 사람들은 잘 아는 템플릿과 비슷한 개념이다.제네릭 싱글톤은 일반적인 싱글톤 패턴의 개념을 확장하여 다양한 유형의 객체를 관리할 수 있도록 한다. 즉, 제네릭 싱글톤 클래스를 정의할 때 특정 유형의 객체를 지정하고, 이 클래스를 통해 해당 유형의 유일한 인스턴스를 생성하고 접근할 수 있습니다. 유니티에서 제네릭 싱글톤은 특정 유..
오늘은 SoundManager로 간단하게 음악을 재생할 수 있는 스크립트를 작성해보자. [계획]스크립트마다 Sound 관련 변수들을 선언하고 Audio Clip을 등록할 필요 없이 Manager 오브젝트를 만들어 관리한다. How? 1. BGM과 효과음은 동시에 소리가 날 수 있다. 그러므로 SoundManager는 2개의 AudioSource를 등록해주고 각각 BGM과 효과음을 담당한다.2. 생각보다 노래소리와 효과음은 시끄럽다. Slider UI를 만들고, 이를 조정하여 테스트 중에도 소중한 귀를 지켜주자.3. 모든 스크립트들이 SoundManager에 쉽게 접근할 수 있는 방법은? Singleton 패턴! [구현] 우선 빈 오브젝트 SoundManager를 만든 후 AudioSource 2개와 So..
이번주는 팀프로젝트를 진행한다. 3D 러닝 액션게임과 3D 퍼즐 플랫폼 게임, 3D 서바이벌 게임 3개의 주제 중3D 퍼즐 플랫폼 게임을 구현하기로 했다.이유는 퍼즐을 구현하면서 러닝 액션과 서바이벌로의 확장도 고려할 수 있기 때문에(과연 다 넣을 수 있을까...?)뉴비들의 포부로 퍼즐 플랫폼 게임을 구현하기로 했다. 그리하여 만들게 된 오늘의 결과물!팀원중 한명이 섬처럼 생긴 맵에서 퍼즐을 풀러 돌아다니는 것은 어떨까? 하고 만든 Terrain이다. 그렇다면 맵을 한번 만들어보자!3D Object에서 Terrain을 클릭하면 흰색 판때기 하나가 나온다. 터레인을 생성하고 Inspector 창을 보면가장 기본이 되는 Transform Terrain Collider 컴포넌트가 생기고 가장 중요한 Terr..