본문 바로가기

Unity

(65)
Cinemachine 을 사용한 카메라 이동 범위 제한 (2D) 1. Cinemachine VirtualCamera 생성 카메라 설정 카메라 범위 설정 2. Cinemachine Confiner Cinemachine Confiner를 추가하려면 Virtual Camera 인스펙터의 하단에서 Add Extension 드롭다운 메뉴를 클릭하고 CinemachineConfiner를 선택합니다. 3. 새 게임 오브젝트를 선택하여 이름을 CameraConfiner로 변경합니다. Polygon Collider 2D 컴포넌트를 추가해 줍니다. Polygon Collider 2D에서 Edit Collider를 눌러 맵 테두리로 설정해줍니다. 4. Cinemachine VirtualCamera 에 추가한 Cinemachine Confiner에 Confiner mode 를 2d 로 해..
5주차 - Quest 만들기 순서 퀘스트 클래스 만들기 퀘스트 만들기 1. 퀘스트 클래스 만들기 퀘스트마다 공통적으로 가지고있는 변수들을 만들고 필수 메서드를 virtual 로 만들어 퀘스트마다 오버라이딩을 해준뒤에 상속시켜 퀘스트를 만들 것 입니다. ShowQuestInfo - 퀘스트 정보를 보여주는 메서드 Reset - 퀘스트 포기를 했을시 또는 반복 퀘스트의 경우 퀘스트 진행도를 초기화 시기는 메서드 CheckCondition - 퀘스트 클리어 조건을 충족하는지 확인하는 메서드 CheckCondition(string targetName) - 퀘스트 클리어 조건 충족하는지 확인하는 오버로딩 메서드 Clear - 퀘스트 클리어시 실행할 메서드 ClearInfo - 퀘스트 클리어시 보여줄 UI public enum QuestStat..
Lightning (Shader + VFX) 순서 1. Lightning Shader 만들기 Rectangle와 Noise를 사용해 번개를 만들 것 입니다. Noise는 Time 과 Tilling And Offset 을 사용해 일정한 방향으로 움직이게 만듭니다. Rectangle은 적절하게 직사각형을 만들어주고 UV 맵과 위 Noise를 Lerp로 연결해 준뒤 Rectiagle에 연결해 줍니다. 보간 비율은 UV에 가깝게 설정하면 됩니다. 완성된 Rectangle을 Fragment Alpha에 연결하고, 색을 입혀서 Base Color에 연결해줍니다. 2. Vfx 만들기 Single Burst Output Particle Mesh 쉐이더 적용 Pivot 설정 번개 시작지점, 번개 끝나는 지점 플레쉬 만들기 번개 끝나는지점 스파크 만들기 1.Lig..
리스트, 구조체 - '깊은복사' '얕은 복사'에 대한 고찰 순서 1. 구조체에 대한 고찰 2. 구조체 객체를 저장하기위한 동적 리스트를 생성했을때 1. 구조체에 대한 고찰 *값 형식 *구조체는 값에 의한 복사를 수행하며, 변수에 할당된 구조체의 복사본을 수정해도 원래의 구조체에는 영향을 주지 않습니다. 따라서 구조체의 멤버 변수를 수정하려면 해당 구조체를 새로 생성하여 수정된 값을 할당해야 합니다 메모리 할당 구조체는 값 형식이므로 스택(Stack)에 직접 메모리를 할당합니다. 메모리 할당과 해제가 빠르며 데이터의 크기가 작을 때 유리합니다. 그래서 데이터의 읽기와 쓰기가 빠르다는 장점이 있습니다. int a = 10; int b = a; *값 형식은 변수 간에 값이 복사되는데, 변수의 동작 방식을 설명하는 개념입니다. 값 형식의 변수는 해당 변수에 저장된 값이..
Disintegrate Enemy Effect(Shader+VFX) Texture ↓ 더보기 Albedo 표면의 색상 및 질감을 정의하는 데 사용되는 텍스쳐입니다. 주로 물체의 기본 색상 맵핑에 사용되며, 픽셀별로 표면의 색상 정보를 담고 있습니다. 예를 들어, 벽면의 벽돌 또는 나무의 표면 텍스쳐 등을 Texture Albedo로 사용할 수 있습니다. Normals 표면의 방향과 기울기를 나타내는 벡터입니다. 표면의 각 픽셀에 대해 노멀 벡터를 지정하여, 빛이 표면에 반사되는 방향을 결정하는 데 사용됩니다. 이를 통해 빛의 입사각에 따라 표면이 어떻게 조명되고 투영되는지 시각적인 효과를 조절할 수 있습니다. Normals는 주로 표면의 입체감을 강조하거나 광택 효과를 부여하는 데 사용됩니다. Ambient Occlution 주변 환경의 조명 상태에 따라 표면의 그림자 ..
4주차, 플레이어의 데이터 저장하기, 불러오기 플레이어의 데이터파일 저장하고 불러오기 1. 시작 2. 파일 저장하기 3. 파일 로드하기 1. 시작 Nuget 관리에서 Newtonsoft.Json을 찾아 인스톨 해줍니다. 그리고 json으로 파싱할 곳에 using 으로 Newtonsoft.Json을 참조해 줍니다. Newtonsoft.Json란 ? 더보기 JSON 데이터를 처리하는 데 사용되는 라이브러리입니다. 이 라이브러리는 JSON 데이터를 직렬화(객체를 JSON 문자열로 변환)하고 역직렬화(JSON 문자열을 객체로 변환)하는 기능을 제공하여 데이터를 간편하게 주고받을 수 있도록 도와줍니다. 2. 파일 저장하기 더보기 직렬화(Serialization)는 객체를 데이터 스트림이나 바이트 배열과 같은 형태로 변환하는 과정을 말합니다. 이렇게 변환된 데..
3주차, 콘솔창으로 블랙젝 만들기 콘솔창을 사용해 블랙젝 게임 만들기. 게임 설명 블랙젝이란 카드를 뽑아 카드의 합으로 딜러를 이기는 게임입니다. 카드의 합은 21을 넘길 수 없으며 21을 넘기게 되면 Bust로 게임에서 지게됩니다. 카드의 합이 21이 되면 블랙젝으로 게임에서 승리하게됩니다. 플레이어는 현재 자기 카드의 합을 계산하고 다음에 나올 카드를 예측해 카드를 더 받을지(Hit) 아니면 여기서 카드를 그만 받고(Stand) 딜러의 카드를 볼지 정할 수 있습니다. 딜러와 카드의 합이 똑같은 경우는 무승부로 게임이 종료됩니다. 현재 만드는 블랙젝 콘솔창 게임은 딜러와 플레이어의 1:1 을 기준으로 만들 것 입니다. 순서 1. 게임의 상태를 만듭니다. 2. 간단한 카드매니저를 만들어 줍니다. 3. 플레이어 클래스를 만들어줍니다. 이 ..
3주차, 콘솔창으로 스네이크 게임 만들기 콘솔창으로 스네이크 만들어 보기 설명 플레이어가 조종하는 뱀을 키워나가는 게임입니다. 게임 화면은 일반적으로 격자 형태로 구성되어 있으며, 뱀은 한 칸씩 이동하면서 먹이를 먹어 몸을 키워나갑니다. 게임의 목표는 뱀을 최대한 길게 키우면서, 벽이나 자기 자신과 부딪히지 않도록 하는 것입니다. 뱀이 벽이나 자기 자신과 충돌하면 게임이 종료되며, 획득한 점수가 표시됩니다. 일반적으로 플레이어는 키보드의 화살표 키를 사용하여 뱀의 이동 방향을 조절합니다. 뱀은 먹이를 먹을 때마다 길어지며, 게임이 진행될수록 뱀의 이동 속도가 빨라집니다 순서 1. 기본적으로 2차원 배열을 만들어 보드판을 구성 할 것이기 때문에 위치값으로 사용할 구조체를 만들어 줍니다. 2. 보드판 클래스를 만들어 계속해서 맵을 랜더링할 함수를 ..