본문 바로가기

Unity

(65)
9주차 - Procedureal Dungoen Generator + 미니맵 1.  Procedureal Dungoen Generator 어떤 방식으로 프로시저 알고리즘을 짤것인가던전의 생성 위치를 리스트에 저장하고, 리스트에 던전 생성 위치의 존재 여부를 판단해 던전을 생성 시키는 방법단순한 구조로 빠른 시일내에 구현하기위해 선택던전의 정보를 담은 던전룸 클래스 리스트던전을 생성할 위치정보를 담은 리스트던전의 생성위치를 사용해 던전을 그릴 타일맵 로직던전간 이동을 위한 문 로직2. 미니맵미니맵을 보여줄 카메라 만들기미니맵을 찍고 있는 카메라에만 보일 스프라이트 생성던전과 던전사이를 이어줄 라인 생성하기플레이어 위치를 시각적으로 보여주기, 탐색하지 않은 방 물음표 표시.1.  Procedureal Dungoen Generator 1.  사전 준비  1. 던전 매니저 만들어 던전 ..
8주차 - 밤낮 바꾸기 using UnityEngine.Events; UnityEvent OnTakeDamage; - 버튼 컴포넌트의 버튼 함수를 추가하는 것 마냥 이벤트를 추가할 수 있음 오른쪽 하단 Auto Generate Lighting Off 에서 스카이 박스와 Sun 설정을 할 수 있음. 1. 밤과 낮에 쓰일 Directional Light 를 만들어 줍니다. Light 에있는 Intensity(빛의 세기) 를 사용해 밤과 낮을 표현할 것입니다. 각각 밤과 낮에 쓰일 Light, Ligth 에 적용시킬 Gradient, 시간에따라 Intensity를 적용시킬 AnimationCurve를 준비해 줍니다. * AnimationCurve를 사용해 빛의 세기, 빛의 색을 모두 관리할 것이기 때문에 시간을 0 ~ 1 사이의 값..
8주차 - 인벤토리와 아이템 설명창의 재사용 + 상점 인벤토리 구현과, 아이템 설명창을 만들어 보자! 1. 인벤토리를 어떻게 구현할 것인가. 일단 아이템을 어떤식으로 관리할 것인가. 스크립터블 오브젝트를 사용해 아이템 데이터를 만들어 놓자. 아이템이 가지고있을 수 있는 스텟 변수 정하기 상점 또는 새로운 아이템을 얻었을때 새로운 스크립터블 오브젝트를 만들어 줘야 하기 때문에 카피 함수를 만들어 놓자 새로운 아이템이 장비아이템인 경우 인벤토리에 같은 아이템이 있더라도 서로 다른 아이템 취급을 해줘야 함. 같은 아이템이지만 아이템을 강화시키거나, 내구도가 감소했을 경우 두개의 아이템의 능력치가 서로 달라지게됨. 아이템의 능력치를 쉽게 가지고 올 수 있는 방법이 뭐가있을까. 아이템의 능력치를 가져올때 , 능력치 이름과 수치를 가지고있는 구조체를 만들어 리스트에 ..
6주차 - 2D 게임 프로젝트 보스를 만들어 보자. 보스가 생성되면 만들어놓은 공격패턴들을 죽기전까지 랜덤하게 계속 실행 시키도록 하자. 1. 오프닝 애니메이션 실행 (보스몬스터 hp바 액티브) 2. 공격패턴 만들기 delegate void AttackPattren(); 만들고 List 리스트를 만들어서 공격패턴을 리스트에 담아서 랜덤하게 공격패턴을 실행 시켜주도록 하자 3. 시작 코루틴에 랜덤한 인덱스값으로 패턴리스트에 공격패턴 시작 4. 죽기전까지 공격패턴 반복 실행 5. 죽으면 OnDeathEvent 실행하기.(CallOnDeathEvent) 원거리 공격 몬스터도 원거리몬스터 스크립트에 공격패턴을 만들어놓고 인덱스로 설정해 각각 다른 원거리 공격을 할 수 있게 만들어보자. 보스몬스터 어택 애니미에신 수정,( 아랫쪽까지 대미지 받..
6주차 - 2D 게임 프로젝트 나의 구현 파트는 몬스터.. 오늘은 기본적인 몬스터의 움직임, 플레이어의 추적을 구현해볼 것 몬스터의 이동 최대한 재활용성을 살리는 코드를 짜보자.. 1. MonsterController 에서 이벤트를 관리하자. MonsterStats : 몬스터 스탯 MosnterMovement : 움직임 MonsterLifeCycle : 대미지 및 생명 관련 MonsterAnimationController : 애니메이션 근거리 몬스터, 원거리 몬스터에 따라 attck 스크립트를 사용 몬스터 콘트롤러에 [RequireComponent(typeof())] 어트리뷰트를 사용해 필수 스크립트를 설정해주자 움직임 MosnterController 에 OnMoveEvent 델리게이트에 연결해서 사용하자 플레이어가 몬스터의 영역에 ..
6주차 - Object Pool 예제 ( + Animator.StringToHash() ) 목차 1. Object Pool 예제 2. Animator.StringToHash() 1. Object Pool 예제 Object Pool? 더보기 프로그래밍에서 리소스를 효율적으로 관리하기 위해 사용되는 디자인 패턴입니다. Object Pool 은 미리 생성된 객체들을 보관하고 필요할 때 재사용함으로써 객체 생성과 소멸의 오버헤드를 줄이고 성능을 향상시킵니다. 1. 스크립트 작성 이름, 프리펩, 사이즈를 가지고있는 구조체를 생성하고 구조체를 가지고있는 리스트 생성합니다 [System.Serializable] public struct Pool { public string tag; public GameObject prefeb; public int size; } public List pools; public..
MiniMap (2D) 탑다운 형식의 게임의 MiniMap 만들기 1. 카메라를 새로만들어 Projection 을 Orthgraphic으로 바꿔줍니다 카메라를 통해 미니맵을 만들 것이기 때문에 원근감없이 일정한 크기로 보여줄 것입니다 2. 카메라가 화면에 렌더링 되는것을 막아야 하기 때문에 카메라에 Target Texture에 랜더링된 텍스쳐를 넣어줄 것 입니다 폴더를 하나 만들어 Render Texture 을 만들어 줍니다. 3.새 레이어를 추가합니다, main Camera 에 Culling Mask로 랜더링할 레이어를 선택할 수 있습니다. Minimap 레이어만 해제해 줍니다. 새로 만들어진 Camera 에 Culling Mask는 Minimap 만 설정해줍니다. 새로 만든 카메라에는 Minimap 레이어만 랜더링하게 되고..
5주차 - Tilemap(2D) 1. 그리기 순서 설정 2. Sprite Pivot 설정 3. Tilemap 4. Tilemap 충돌 정보 추가히기 5. 타일맵 콜라이더 최적화 1. 그리기 순서 설정 2D 에서 화면상에 캐릭터가 어떤 오브젝트보다 뒤에있는 경우 앞에 있는 오브젝트에 캐릭터가 가려져야 합니다. 이러한 그리기 순서를 해결 하기 위해 간단하게 그래픽스 설정을 해줍니다. 2d 에서는 y좌표값이 작을수록 나중에 나중에 그려져야 합니다. Edut - Project Setting로 이동해 좌측 메뉴 Graphics로 들어갑니다. Camera Settings에서 Transparency Sort Mode 필드를 찾습니다. 여기에서 스프라이트가 그려지는 순서가 결정됩니다. 드롭다운 메뉴를 통해 Default에서 Custom Axis로 변..