일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- FSM
- 람다식
- 자료구조
- 장애물달리기
- inputsystem
- 배열
- script
- 유니티
- ObjectPool
- LINQ
- skybox
- UI
- InputManager
- 코루틴
- invokec#events
- 메서드
- 효과음
- 프로그래머스
- 비선형자료구조
- delegate
- unity
- 스파르타내일배움캠프
- 유한상태머신
- Generic
- c#
- 스택
- 직렬화
- BGM
- 인터페이스
- soundmanager
- Today
- Total
목록스파르타내일배움캠프 (60)
Unity 개발일지
이제 싱글톤은 익숙하다! 싶은 분들을 위해 준비했습니다. 제네릭 싱글톤! 일반적인 싱글톤 패턴은 특정 클래스의 인스턴스가 하나만 존재하도록 보장하고, 어디서든 그 인스턴스에 접근할 수 있도록 하는 디자인 패턴이다. 싱글톤 패턴은 전역 변수와 유사하지만, 싱글톤 인스턴스는 다른 코드에 의해 덮어쓰지 못하도록 보호된다.Generic Singleton !!!제네릭이란 C++ 을 공부했던 사람들은 잘 아는 템플릿과 비슷한 개념이다.제네릭 싱글톤은 일반적인 싱글톤 패턴의 개념을 확장하여 다양한 유형의 객체를 관리할 수 있도록 한다. 즉, 제네릭 싱글톤 클래스를 정의할 때 특정 유형의 객체를 지정하고, 이 클래스를 통해 해당 유형의 유일한 인스턴스를 생성하고 접근할 수 있습니다. 유니티에서 제네릭 싱글톤은 특정 유..
게임을 하다보면 맵이 바뀌지 않아도 특정 구역에 들어갔을 때 BGM이 바뀌는 것을 본 적이 있을것이다.오늘은 특정 지역에 들어갔을 때 BGM이 바뀌는 것을 구현하겠다. [계획]1. 빈 Object에 BoxCollider를 넣은 후 IsTrigger 를 체크하여 진입 시 작용을 할 수 있게 해준다.2. Player의 태그가 붙은 물체와 충돌 했을 때 OnTriggerEnter와 OnTriggerExit으로 BGM을 바꿔준다. [구현] 빈 오브젝트에 BoxCollider의 IsTrigger를 체크해주고Collider 범위를 설정해준다. AudioSource 컴포넌트를 등록한 후AudioClip에 재생할 BGM을 등록한 후Play On Awake와 Loop에 체크를 한다. ..
오늘은 SoundManager로 간단하게 음악을 재생할 수 있는 스크립트를 작성해보자. [계획]스크립트마다 Sound 관련 변수들을 선언하고 Audio Clip을 등록할 필요 없이 Manager 오브젝트를 만들어 관리한다. How? 1. BGM과 효과음은 동시에 소리가 날 수 있다. 그러므로 SoundManager는 2개의 AudioSource를 등록해주고 각각 BGM과 효과음을 담당한다.2. 생각보다 노래소리와 효과음은 시끄럽다. Slider UI를 만들고, 이를 조정하여 테스트 중에도 소중한 귀를 지켜주자.3. 모든 스크립트들이 SoundManager에 쉽게 접근할 수 있는 방법은? Singleton 패턴! [구현] 우선 빈 오브젝트 SoundManager를 만든 후 AudioSource 2개와 So..
스크립트는 총 4개로 구성되어있다. [AvoidObstacleObjectPool]장애물들을 관리할 ObjectPool이다.5가지의 장애물을 쏠 것이기 때문에 Key 값을 입력하면 Value 값을 출력하도록 Dictionary를 사용하였다.주석과 같은 이유로 Value값을 List에서 Queue로 바꾸었다. 각 장애물별로 Object를 생성해주기 위해 for문을 사용하였으며, Enqueue로 Queue에 넣어준다. ObjectPool에서 가져오고, 반납하는 함수이다. 특이점이 있다면Queue를 썼기 때문에Duqueue와 Enqueue를 이용했다. [ShootObstacle]장애물을 쏠 Shooter에 등록 할 스크립트이다.게임을 만드는 과정에서 이부분에서 가장 많은 트러블슈팅을 했..
팀프로젝트 작업으로 간단한 퍼즐 게임을 만드는데 장애물 달리기를 구현하기로 했다. [게임 개요]장애물을 피해서 목적지 까지 도착하면 되는 간단한 미니게임이다.플레이어는 오른쪽에서 Cube에서 왼쪽 Cube까지 달려가서 오른쪽의 큐브에 상호작용을 하면 게임이 끝난다.장애물은 5개의 지점에서 쏘는데 5가지 종류의 장애물을 쏘고, 한군데에서는 장애물을 쏘지 않는다. [Hierarchy 창 목록]AvoidObstacleGM을 만들어 작업 후 팀원들과 Scene에 합칠 때 사용하기 위해Prefab화 하였다. StartCube와 EndCube는 상호작용을 할 수 있도록 만들었으며 AvoidObstacleBorder는 StartCube에 상호작용 하면 생기는 보이지 않는 벽들을 설정하였고, ObstacleDestro..
오늘은 간단하게 Unity에서 스크린샷을 찍어 누끼를 따는데 도움이 되는 코드를 공유하고자 한다. private Texture2D ScreenShot(RenderTexture externalTexture){ Texture2D myTexture2D = new Texture2D(externalTexture.width, externalTexture.height); if (myTexture2D == null) { myTexture2D = new Texture2D(externalTexture.width, externalTexture.height); } //Make RenderTexture type variable RenderTexture tmp = Rende..
이번주는 팀프로젝트를 진행한다. 3D 러닝 액션게임과 3D 퍼즐 플랫폼 게임, 3D 서바이벌 게임 3개의 주제 중3D 퍼즐 플랫폼 게임을 구현하기로 했다.이유는 퍼즐을 구현하면서 러닝 액션과 서바이벌로의 확장도 고려할 수 있기 때문에(과연 다 넣을 수 있을까...?)뉴비들의 포부로 퍼즐 플랫폼 게임을 구현하기로 했다. 그리하여 만들게 된 오늘의 결과물!팀원중 한명이 섬처럼 생긴 맵에서 퍼즐을 풀러 돌아다니는 것은 어떨까? 하고 만든 Terrain이다. 그렇다면 맵을 한번 만들어보자!3D Object에서 Terrain을 클릭하면 흰색 판때기 하나가 나온다. 터레인을 생성하고 Inspector 창을 보면가장 기본이 되는 Transform Terrain Collider 컴포넌트가 생기고 가장 중요한 Terr..
Input System에서 Action Move와 Look을 등록해주었다.(Input System은 Window - PackageManager에서 임포트해주어야한다.) Player의 PlayerInput 컴포넌트에InputAction을 넣어주었다. Behaviour는 Invoke Unity Events 형식을 사용할 것이다.Button처럼 Event를 등록하는 방식이다. Player를 만들어주었고 Capsule 모양의 object를 만들어주었다.CameraContainer를 만들어 Main Camera를 안에 넣어주었다. [구현계획]1. Player 스크립트를 만들고 필요한 값들을 선언한다.2. CharacterManager를 싱글톤으로 만들고, Player에 접근해서 get, set해줄 수 ..