[멋쟁이사자차럼 부트캠프] 유니티 게임 개발 5기 - 44일차 : 유니티 교재 → p316 ~ p375
·
멋쟁이사자처럼/부트캠프
1. 카메라 마우스 회전 (CamRotate.cs)전체 코드더보기더보기더보기using UnityEngine;public class CamRotate : MonoBehaviour{ public float rotSpeed = 200f; public float mx = 0; public float my = 0; void Update() { float mouse_X = Input.GetAxis("Mouse X"); float mouse_Y = Input.GetAxis("Mouse Y"); mx += mouse_X * rotSpeed * Time.deltaTime; my += mouse_Y * rotSpeed * Time.deltaTim..
[멋쟁이사자차럼 부트캠프] 유니티 게임 개발 5기 - 43일차 : 싱글턴 패턴 / 오브젝트 풀 패턴 / 유니티 교재 → p248 ~ p312
·
멋쟁이사자처럼/부트캠프
1. 싱글턴 패턴 (Singleton Pattern)개요싱글턴 패턴은 특정 클래스의 인스턴스를 하나만 생성하고 어디서든 접근할 수 있도록 만드는 디자인 패턴이다.게임에서 매니저 역할을 수행하는 클래스들(예: ScoreManager, GameManager 등)에 자주 사용된다.전체 코드더보기using UnityEngine;public class Singleton : MonoBehaviour where T : Component{ private static T instance; public static T Instance { get { if (instance == null) { var t = FindFi..
[멋쟁이사자차럼 부트캠프] 유니티 게임 개발 5기 - 42일차 : 유니티 교재 → p149 ~ p247
·
멋쟁이사자처럼/부트캠프
1. 실습 개요유니티 교재 p149~p247 범위에서는 다음과 같은 기능들을 중심으로 실습을 진행충돌(Collision) 및 감지(Trigger) 이벤트2D 비행기 이동 및 총알 발사 구현총알 프리팹과 적 오브젝트 충돌 처리파티클(폭발) 효과 적용점수 시스템 구현 및 로컬 데이터 저장배경 스크롤 및 사운드 리소스 처리 2. 주요 기능 정리2.1 충돌(Collision) / 감지(Trigger) 이벤트유니티에서 오브젝트 간 상호작용을 구현하기 위해 사용하는 물리 이벤트로, Collider 컴포넌트와 Rigidbody 조합을 기반으로 동작한다.충돌(Collision)은 실제 물리적 접촉이 있는 경우, 감지(Trigger)는 물리적인 충돌 없이 통과하며 인식만 하는 경우에 사용한다.충돌 ..
[멋쟁이사자차럼 부트캠프] 유니티 게임 개발 5기 - 40일차 : 다익스트라 / 정렬 알고리즘
·
멋쟁이사자처럼/부트캠프
1. 다익스트라 알고리즘정의그래프에서 하나의 시작 노드로부터 모든 노드까지의 최단 거리를 구하는 알고리즘.양의 가중치를 가진 그래프에서 사용하며, 대표적인 최단 경로 탐색 알고리즘핵심 로직시작 노드에서 거리 0, 나머지는 무한대로 초기화방문하지 않은 노드 중 가장 짧은 거리 선택해당 노드를 거쳐 갈 때 더 짧은 경로가 있다면 업데이트모든 노드를 방문할 때까지 반복전체 코드 (DijkstraSearch.cs)더보기using UnityEngine;public class DijkstraSearch : MonoBehaviour{ private int[,] nodes = new int[6, 6] { { 0, 1, 2, 0, 4, 0 }, { 1, 0, 0, 0, 0, 8 }, ..
[멋쟁이사자차럼 부트캠프] 유니티 게임 개발 5기 - 36일차 : 자료구조 / 배열 예제
·
멋쟁이사자처럼/부트캠프
1. Git 저장소 및 버전 관리 개념 정리Git 저장소 생성 및 복제 흐름GitHub에서 원격 저장소 생성GitHub Desktop을 통해 로컬 저장소로 복제 (Clone)이후 로컬에서 작업 → 커밋(Commit) → 푸시(Push) 방식으로 관리Git의 주요 기능Revert: 특정 커밋의 변경 사항을 되돌리는 새 커밋을 생성Reset: 이전 커밋 상태로 되돌리며 커밋 기록 자체를 제거Branch: 작업을 분리하여 독립적으로 관리할 수 있는 기능Merge: 병합 기능으로 브랜치를 통합 (GitHub Desktop 사용 가능)Rebase: 커밋을 재정렬하여 히스토리를 깔끔하게 유지 (Git Bash 사용) 2. Dictionary (딕셔너리)개요C#에서 Dictionary는 Key-Value 쌍으로 데이..
[멋쟁이사자차럼 부트캠프] 유니티 게임 개발 5기 - 35일차 : 자료구조
·
멋쟁이사자처럼/부트캠프
1. 메모리 구조코드 영역 (Code Segment)프로그램의 코드가 저장되는 공간읽기 전용이며 실행 중에 변경되지 않음컴파일 시 크기가 고정됨데이터 영역 (Data Segment)static, const, 전역 변수 등이 저장됨프로그램 시작 시 메모리에 한 번 할당되고 실행 중에는 크기 변경 불가힙 영역 (Heap)new로 생성한 객체, 배열 등 참조형 데이터 저장런타임 중 크기 동적 할당 가능메모리 관리는 GC(가비지 컬렉션)가 처리스택 영역 (Stack)함수 호출 시 생성되는 지역 변수, 매개변수 등이 저장됨함수 종료 시 자동 제거매우 빠르게 접근 가능 2. 자료구조 개요단순 구조 (Primitive)정수, 실수, 문자, 논리 등 기본 타입선형 구조 (Linear)데이터가 일렬로 나열된 구조배열, ..
[멋쟁이사자차럼 부트캠프] 유니티 게임 개발 5기 - [고양이 게임(2D 횡스크롤) Project
·
멋쟁이사자처럼/부트캠프
1. 프로젝트 개요'Cat Jump Run'은 Unity를 사용해 제작한 2D 횡스크롤 러너 스타일의 게임입니다.💡 플레이어는 제자리에 고정된 고양이 캐릭터를 점프시키며 장애물을 피하고, 사과 아이템을 획득해 점수를 쌓습니다.단순한 조작으로도 몰입감 있게 플레이할 수 있도록 구성하였으며, 기초적인 물리 기반 이동, 애니메이션 전환, 충돌 처리 등을 중점적으로 구현했습니다.플랫폼: Unity 3D (2D 환경으로 바꾸어 작업)장르: 2D 횡스크롤컨셉: 귀여운 고양이가 장애물을 넘으며 계속 달리는 게임그래픽 스타일: 도트 기반 픽셀 아트 2. 구현한 주요 기능전체 코드 (CatController.cs)더보기using System;using UnityEngine;using CatJumpRun;using Sy..
[멋쟁이사자차럼 부트캠프] 유니티 게임 개발 5기 - 34일차 : 인벤토리 기능 / 2D Rigging
·
멋쟁이사자처럼/부트캠프
인벤토리 기능1. 아이템 드롭 기능ItemManager.cs - 아이템 드롭 로직public void DropItem(Vector3 dropPos){ var randomIndex = Random.Range(0, items.Length); GameObject item = Instantiate(items[randomIndex], dropPos, Quaternion.identity); Rigidbody2D itemRb = item.GetComponent(); itemRb.AddForceX(Random.Range(-2f, 2f), ForceMode2D.Impulse); itemRb.AddForceY(3f, ForceMode2D.Impulse); float ranPower = Ra..
[멋쟁이사자차럼 부트캠프] 유니티 게임 개발 5기 - 33일차 : 공격 판정 / 체력바 / 아이템 획득
·
멋쟁이사자처럼/부트캠프
개요몬스터 공격 판정 및 데미지 처리체력바 구현몬스터 사망 시 아이템 드롭아이템 획득 → 인벤토리 UI 구성 1. 공격 판정 (공격 데미지 전달 방식)몬스터 → 플레이어몬스터는 OnTriggerEnter2D()에서 IDamageable 인터페이스가 붙은 객체에 데미지를 전달합니다.private void OnTriggerEnter2D(Collider2D other){ if (other.CompareTag("Return")) { moveDir *= -1; transform.localScale = new Vector3(moveDir, 1, 1); } if (other.GetComponent() != null) { other.GetComponent..
[멋쟁이사자차럼 부트캠프] 유니티 게임 개발 5기 - 32일차 : DontDestroyOnLoad / 몬스터 FSM 설계
·
멋쟁이사자처럼/부트캠프
1. DontDestroyOnLoadUnity에서 씬 전환 시에도 오브젝트를 유지하고 싶을 때 사용하는 함수입니다. 주로 데이터 매니저, 오디오 매니저, 플레이어 오브젝트 등에 활용됩니다.using UnityEngine;public class ExampleClass : MonoBehaviour{ void Awake() { DontDestroyOnLoad(gameObject); }}Awake() 또는 Start()에서 호출 시, 해당 오브젝트는 씬이 바뀌어도 사라지지 않습니다.단, 중복 생성을 방지하기 위한 싱글톤 구조와 함께 사용하는 것이 일반적입니다. 2. 몬스터 FSM 설계2-1. Init 구현 방식초기화를 위한 Init() 함수는 다음과 같이 두 가지 방식으로 구현할 수..