일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- soundmanager
- inputsystem
- 유니티
- script
- 효과음
- unity
- LINQ
- c#
- 직렬화
- 프로그래머스
- InputManager
- 비선형자료구조
- delegate
- 코루틴
- BGM
- 스파르타내일배움캠프
- 람다식
- 인터페이스
- ObjectPool
- 장애물달리기
- 자료구조
- invokec#events
- 스택
- 유한상태머신
- UI
- skybox
- 메서드
- 배열
- Generic
- FSM
- Today
- Total
목록분류 전체보기 (65)
Unity 개발일지
이번주는 팀프로젝트를 진행한다. 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해줄 수 ..
Scene창을 잘 둘러보면 태양을 찾을 수 있는데 바로 Directional Light이다. Directional Light의 Rotation X값을 조절해서 태양의 위치를 바꿀 수 있고, 0도일때 일출, 90도일 때 정오, 180도일 때 일몰을 볼 수 있다. 스크립트로 이 값들을 조절해서 낮과 밤을 구현해보자. 빈 오브젝트 DayAndNight를 만들고 Directional Light를 복사해서 하나는 Sun, 다른 하나는 Moon으로 만들어준다. 이 때 Moon의 Position을 바꿔도 태양이 움직이지 않는데Sun(기존 Directional Light)이 Unity 설정에서 해 리소스로 들어가 있기 때문이다. 밤에 푸르스름한 조명효과를 주기 위해 Color를 1500..
[SkyBox]게임 세계의 배경을 둘러싸는 환경 매핑 기술입니다. 큐브 맵(Cube Map)과 구체형 스카이박스(Sphere Map) 등이 있으며, 주로 다음과 같은 특징을 가집니다. - 스카이박스는 6개의 택스처로 구성된 큐브 맵 또는 하나의 구체로 텍스처가 매핑된 구체형 스카이박스로 구성됩니다. - Unity에서는 씬의 배경으로 사용되며, 게임 환경을 확장 시키는데 활용됩니다. - 주로 하늘, 구름, 산 등의 자연적인 배경을 표현하는데 사용됩니다. - 미리 만들어진 스카이박스를 사용하거나 직접 만들어서 Unity에 적용할 수 있습니다. - 게임 중에 스카이박스를 동적으로 변경하여 낮과 밤 등의 시간대나 특정 이벤트에 맞게 배경을 변화시킬 수 있습니다. - 성능에 영향을 미치므로 최적화에 주의해야합니다..
[RayCast 란?]눈에 보이지 않는 광선(Ray)에 맞은 물체가 무엇인지 여부를 판단한 뒤 여러 가지 후처리를 하는 방식.Ray, RaycastHit, MaxDistance, LayerMask 등의 옵션을 가지고 있다. 카메라(출발점) 에서 Ray를 쏜 후 Collider에 부딪히면 RayCastHit으로 검출된 객체의 정보를 알 수 있다.Collider(충돌)을 검출해야하므로 Physics를 이용한다. [한번 쏴보자] Laycast를 관리해줄 Manager를 하나 만들어주었고,RaycastSceneManager 스크립트를 만들어 붙여주었다. 아래 스크립트설명에 작성하겠지만Ray는 Square에서 쏠 것이므로 SquareTransform은 Square로 해주었다. Square 2D오브젝트를 만들어..
[충돌에 필요한 것] [COLLIDER] 1. Edit Collider: 오브젝트의 충돌 범위를 조절할 수 있다. 2. Material: Physics Material 적용 옵션 (Physics Material 2D)충돌 재질에 따라 마찰(Friction), 탄성(Bounciness)을 적용할 수 있는 Material을 적용할 수 있다. 3. Is Trigger활성화시키면 충돌은 감지하지만 물리계산은하지 않음(트리거) 4. Used By Effector한쪽방향은 통과, 한쪽방향은 충돌하도록 설정할 수 있다.(Playform Effector 2D 컴포넌트로 발판 만들기) 5. Used By Composite부모자식 관계의 Collider 컴포넌트가 있는 오브젝트가 겹쳐있을 때 겹쳐있는 부분의 Collid..
[코루틴이란?]코루틴을 사용하면 작업을 다수의 프레임에 분산할 수 있습니다. Unity에서 코루틴은 실행을 일시 정지하고 제어를 Unity에 반환하지만 중단한 부분에서 다음 프레임을 계속할 수 있는 메서드입니다. 대부분의 경우 메서드를 호출하면 실행을 완료한 뒤 호출한 메서드에 제어와 선택적 반환 값을 반환합니다. 즉, 메서드 내에서 발생한 모든 행동은 단일 프레임 업데이트 내에서 발생해야 합니다.코루틴은 스레드가 아니라는 점을 명심해야합니다. 코루틴의 동기 작업은 여전히 메인 스레드에서 실행됩니다.(유니티는 단일스레드이다.) [그래서 코루틴을 사용하면?]코드 내에서 구문 실행 도중에 처리를 대기시키거나, 순차처리에 함수를 병렬로 동시에 처리하도록 구현할 수 있다.예를 들면 캐릭터가 중독되어 체력이 ..
유니티화면에서 등록해줄 GameObject인 prefab을 선언합니다.List를 이용해 pool을 생성합니다.poolSize는 300으로 설정했습니다. for문을 이용하여 poolSize만큼 prefab을 Initiate하고, 비활성화한 후 pool에 등록합니다. GameObject를 반환하는 Get함수를 만들어주었습니다.foreach문을 이용 List pool에접근해서 변수 Gameobject obj에 할당하고,obj가 Hierachy창에 없으면 obj를 활성화하고, obj를 반환(출력)합니다. Release함수는 Gameobject obj를 변수로 받으며 obj를 비활성화해줍니다. Get함수화 Set함수를 이용하여 풀에서 가져다쓰고 반납하기를 하면 됩니다.[foreach문]foreach 문은 C#에..