[멋쟁이사자처럼부트캠프 Unity 게임개발 4기] ScriptableObject로 공격 데이터 다루기
·
공부/부트캠프
이번 글에서는 Unity의 ScriptableObject를 이용해 공격 데이터를 설계하고, 이를 효율적으로 관리하는 방법을 소개하겠습니다.1. AttackData란?먼저, 공격 정보를 담는 AttackData 스크립트를 아래와 같이 작성합니다.[CreateAssetMenu(menuName = "Combat System/Create a new Attack")]public class AttackData : ScriptableObject{ [field: SerializeField] public string animName { get; private set; } [field: SerializeField] public float impactStartTime { get; private set; } ..
[멋쟁이사자처럼부트캠프 Unity 게임개발 4기] 유니티 Editor Window 윈도우
·
공부/부트캠프
유니티 커스텀 윈도우(Custom Editor Window)는 유니티 에디터 내부에 사용자 정의 UI 창을 만들어 특정 기능을 구현할 수 있는 강력한 도구이다.게임 개발 중 반복 작업을 자동화하거나, 툴을 제작할 때 유용하다.Editor 라는 폴더를 만들어준다.using UnityEngine;using UnityEditor;public class EnemyDesignerWindow : EditorWindow{ [MenuItem("Window/Enemy Designer")] static void OpenWindow() { EnemyDesignerWindow window = (EnemyDesignerWindow)GetWindow(typeof(EnemyDesignerWindow))..
[멋쟁이사자처럼부트캠프 Unity 게임개발 4기] 11일차: 델리게이트/이벤트/액션
·
공부/부트캠프
📌 델리게이트(Delegate)란?델리게이트(Delegate)는 C#에서 메서드를 참조하는 타입입니다.즉, 델리게이트를 사용하면 메서드를 변수처럼 다룰 수 있고, 런타임에 동적으로 실행할 메서드를 변경할 수 있습니다.📝 🔹 핵심 개념메서드를 가리키는 포인터 역할을 합니다.동일한 시그니처(매개변수 & 반환형)를 가진 메서드만 참조할 수 있습니다.+= 연산자로 여러 개의 메서드를 하나의 델리게이트에 등록할 수 있습니다. (➡ 멀티캐스트 델리게이트)델리게이트는 이벤트(event) 구현에도 사용됩니다. 🛠️ 예제 코드 // 1. 델리게이트 선언delegate void MessageHandler(string message);// 2. 델리게이트에 연결할 메서드static void DisplayMessage..
[멋쟁이사자처럼부트캠프 Unity게임개발 4기] 10일차 : 네임스페이스/인터페이스
·
공부/부트캠프
📌 네임스페이스 (Namespace)란?네임스페이스(namespace)는 클래스, 인터페이스, 열거형(enum), 구조체(struct) 등의 이름이 충돌하지 않도록 그룹화하는 기능을 합니다.C#에서는 같은 이름의 클래스를 여러 개 만들 수 없지만, 네임스페이스를 사용하면 같은 이름의 클래스를 다른 네임스페이스에서 정의할 수 있습니다.namespace MyNamespace // 네임스페이스 선언{ class MyClass { public void ShowMessage() { Console.WriteLine("Hello from MyNamespace!"); } }}class Program{ static void Main() ..
[멋쟁이사자처럼부트캠프 Unity게임개발 4기] 9일차 : LINQ / 상속
·
공부/부트캠프
📌 LINQ를 활용한 문자열 배열 정렬 및 검색string[] names = { "Charile", "Alice", "Bob" };// 문자열 배열을 정렬var sortedNames = names.OrderBy(n => n);//int Identity(int n)//{// return n;//}foreach(var name in sortedNames){ Console.WriteLine(name);}// 'A'로 시작하는 첫 번째 이름 찾기var firstName = names.First(n => n.StartsWith("A"));Console.WriteLine($"First name starting with A: {firstName}"); OrderBy(n => n)를 사용하여 알파벳순(A~..
[멋쟁이사자처럼부트캠프 Unity게임개발 4기] 8일차: 예외처리/리스트/배열리스트/스택/큐
·
공부/부트캠프
📌Environment1. Environment.Exit(0);Environment.Exit(int exitCode);는 현재 실행 중인 프로그램을 강제 종료하는 명령어입니다.✅ Environment 클래스: 시스템 정보를 제공하는 클래스✅ Exit(int) 메서드: 프로그램을 즉시 종료하고 종료 코드 반환✅ exitCode 값:0 → 정상 종료0이 아닌 값 → 오류 발생 후 종료using System;class Program{ static void Main() { Console.WriteLine("프로그램이 시작되었습니다."); // 프로그램을 강제 종료 Environment.Exit(0); // 이 코드는 실행되지 않음 Con..
[멋쟁이사자처럼부트캠프 Unity게임개발 4기] 7일차 : 클래스 + 캡슐화
·
공부/부트캠프
🚀 클래스와 생성자(Constructor)클래스는 객체 지향 프로그래밍(OOP)에서 가장 중요한 개념이며,생성자는 클래스의 객체가 생성될 때 자동으로 호출되는 특별한 메서드입니다.1️⃣ 클래스(Class)란?클래스(Class)는 객체(Object)를 만들기 위한 설계도입니다.클래스를 사용하면 데이터(속성)와 기능(메서드)를 하나로 묶어 관리할 수 있습니다.📌 클래스 기본 구조class 클래스이름{ // 필드 (속성) 데이터형 변수이름; // 생성자 public 클래스이름() { } // 메서드 (동작) 반환형 메서드이름() { 실행 코드; }}2️⃣ 생성자(Constructor)란?생성자(Constructor)는 객체가 생성될 때 자동으로 실행..
[멋쟁이사자처럼부트캠프 Unity게임개발 4기] 6일차 : 함수(메서드), 구조체, 클래스
·
공부/부트캠프
✅ 디폴트 매개변수, 함수 오버로딩, 재귀함수1. 디폴트 매개변수 (기본값 설정)static void Greet(string name = "손님"){ Console.WriteLine($"안녕하세요, {name}님");}✔ 매개변수를 전달하지 않으면 기본값("손님")이 적용됩니다.Greet(); // 출력: 안녕하세요, 손님님Greet("이름"); // 출력: 안녕하세요, 이름님2.  함수 오버로딩 (Method Overloading)✔ 같은 이름의 함수지만 매개변수 타입/개수가 다르면 여러 개 정의 가능static int Multiply(int a, int b){ return a * b;}static double Multiply(double a, double b){ ..
[멋쟁이사자처럼부트캠프 Unity게임개발 4기] 5일차 : 배열 + 함수
·
카테고리 없음
1. 배열(Array)배열은 같은 데이터 타입의 여러 값을 하나의 변수로 저장할 수 있는 자료구조이다.배열의 각 요소(값)은 인덱스를 통해 접근할 수 있으며, 인덱스는 0부터 시작한다. 배열의 선언 및 초기화// 방법 1: 선언 후 나중에 할당int[] numbers;numbers = new int[5]; // 크기가 5인 정수 배열 선언// 방법 2: 선언과 동시에 크기 지정int[] numbers2 = new int[3];// 방법 3: 선언과 동시에 값 초기화int[] numbers3 = { 1, 2, 3, 4, 5 };// 방법 4: new 키워드 사용하여 초기화int[] numbers4 = new int[] { 10, 20, 30 }; 배열의 요소 접근배열의 인덱스는 0부터 시작하며, 마지막 요..
[멋쟁이사자처럼부트캠프 Unity게임개발 4기] 4일차 : 조건문과 반복문 + 콘솔 게임 실습
·
공부/부트캠프
학습 목표조건문과 반복문을 학습하고 콘솔로 실행되는 게임을 만들어본다.1. 조건문1-1. if문if문은 주어진 조건이 true일 때 코드 블록을 실행한다.else문은 if 조건이 거짓일 때 실행된다.if-else문을 사용하면 부울 식에 따라 여러 경로 중 하나를 선택할 수 있다.  세 정수의 최댓값 구하기 예제 //문제1. 세 정수의 최댓값 구하기 Console.WriteLine("문제1. 세 정수의 최댓값 구하기"); int num1, num2, num3; int max_num; Console.Write("첫번째 정수를 입력하세요: "); num1 = int.Parse(Console.ReadLine());..