유니티에서 게임 오브젝트의 동작을 정의할 때, Update, LateUpdate, FixedUpdate 메서드를 자주 사용하게 된다. 이들 메서드는 각각 다른 용도로 사용되는데, 어떤 차이점이 있는지 알아보자.결론부터 Update, LateUpdate, FixedUpdate 메서드는 각각 특정 상황에 맞는 용도로 사용된다. 게임 로직과 사용자 입력 처리는 Update에서, 다른 오브젝트 상태에 종속적인 작업은 LateUdpate에서, 물리 연산은 FixedUpdate에서 처리하는 것이 일반적이다. Update 메서드 Update 메서드는 매 프레임마다 한 번 호출된다. 보통 사용자 입력 처리, 애니메이션 업데이트, 게임 로직 등을 처리할 때 사용한다. 즉 지속적으로 상태를 업데이트해야 하는 모든 게임 ..
유니티
유니티를 시작하기에 앞서 가장 먼저 공부해야 하는 것은 유니티의 동작 원리와 Monobehaviour 이다.유니티 프로그램의 원리 유니티는 컴포넌트 기반 아키텍처를 사용한다. 게임 오브젝트는 여러 컴포넌트로 구성되어 있으며, 각 컴포넌트는 특정 기능을 담당한다. MonoBehaviour를 상속받은 스크립트는 게임 오브젝트의 동작을 정의하는 주요 컴포넌트이다. 게임 오브젝트(GameObject): 씬 내의 모든 개체를 의미한다. 각 게임 오브젝트는 여러 컴포넌트를 가질 수 있다.컴포넌트(Component): 게임 오브젝트에 붙여서 특정 기능을 수행하는 모듈. 씬(Scene): 게임의 각 단위를 구성하는 환경. 게임 오브젝트와 컴포넌트들이 배치되어 있다. 즉 유니티는 레고를 조립하듯, 컴포넌트와 게임 오브젝..
C#에서 동적 배열(dynamic array)은 크기를 동적으로 조정할 수 있는 배열을 의미한다. 기본적인 배열과는 달리, 동적 배열은 크기가 고정되어 있지 않아 필요에 따라 요소를 추가하거나 제거할 수 있다. 즉, 동적으로 조절 가능하다. C#에서는 List가 대표적인 동적 배열의 예이다. List는 System.Collections.Generic 네임스페이스에 포함되어 있으며, 요소의 추가, 제거, 검색 등의 다양한 기능을 제공한다.List의 주요 메서드Add(T item): 리스트에 요소를 추가합니다.Remove(T item): 리스트에서 특정 요소를 제거합니다.RemoveAt(int index): 리스트의 특정 인덱스에 있는 요소를 제거합니다.Clear(): 리스트의 모든 요소를 제거합니다.Cou..
이전 포스팅에서 OOP란 무엇인지, 왜 사용해야 하는지, 그리고 OOP의 핵심개념 4가지에는 무엇이 있는지 알아 보았고, 캡슐화란 무엇인지 알아 보았다. https://nybot-house.tistory.com/104 [C# Basics] 객체지향 OOP란 무엇인가? - 핵심 4개념과 개론 이전 포스팅에서 한번 다루었던 OOP에 대해 다시 한번 그 중요성을 느꼈기에 한번 더 다뤄 보고자 한다. 이전 글: https://nybot-house.tistory.com/53 1. OOP 란? - 객체 지향 프로그래밍 소개 C++의 OOP란, 객체 nybot-house.tistory.com 이번 포스팅에서는 OOP(Object Oriented Programming)의 핵심 개념 중 하나인 다형성에 대해서 알아 보자..
static 키워드 C#에서 static 키워드는 클래스의 멤버(필드, 프로퍼티, 메서드 등)가 클래스 인스턴스에 속하지 않고, 해당 클래스 자체에 속한다는 것을 의미한다. 즉, 클래스의 인스턴스를 생성하지 않고도 해당 멤버에 접근할 수 있으며 클래스 이름을 통해 직접 접근할 수 있다. 이는 메모리 관리에서 효율적이며, 일반적으로 유틸리티 함수나 공유 데이터를 관리할 때 사용된다. Unity 개발에서 'static' 키워드의 사용은 특히 중요한데, 이는 게임 개발 시 흔히 발생할 수 있는 다양한 상황에서 전역적으로 접근할 필요가 있는 데이터나 기능을 제공하기 때문이다. 예를 들어, 게임 내에 단 하나만 존재해야 하는 게임 매니저, 설정, 유틸리티 함수 등을 구현할 때 'static'을 사용할 수 있다. ..
C#에서 생성자는 클래스나 구조체가 인스턴스화될 때 자동으로 호출되는 특별한 메서드이다. 생성자의 주요 목적은 객체를 초기화하는 것으로, 필드 또는 속성에 초기 값을 할당하는 등의 작업을 수행할 수 있다. 생성자는 클래스 또는 구조체의 이름과 동일하며, 반환 형식을 지정하지 않는다. 생성자는 객체 지향 프로그래밍에서 중요한 역할을 하며, 클래스의 인스턴스가 올바르게 초기화되어 사용될 수 있도록 보장한다. 기본 생성자 기본 생성자(Default Constructor)는 매개변수를 받지 않는 생성자이다. 사용자가 명시적으로 생성자를 정의하지 않으면, C# 컴파일러는 기본 생성자를 자동으로 제공한다. 그러나 사용자가 어떠한 생성자라도 정의하면, 컴파일러는 기본 생성자를 자동으로 제공하지 않는다. public ..
구글 플레이 스토어에 전설의 대장장이 이야기 게임이 출시되었습니다.플플레이 스토어 링크 전설의 대장장이 이야기 - Google Play 앱무기를 제작하고 판매해서 전설적인 대장장이가 되어보세요!play.google.com 이번 포스팅에서는 이 게임에 대해 간단히 소개하고, 개발 배경과 과정에 대해 간단히 글로 정리해 보려 한다.1. 게임 아이디어 얻기 게임을 개발하기에 앞서 가장 선행되어야 하는 것은 아이디어 얻기다. [전설의 대장장이 이야기] 게임은 중세의 대장간에서 무기를 만들어 보는 경험을 제공하는 게임을 만들어 보자는 아이디어에서 시작 되었다. 또한 얼마 전 인상 깊게 했었던 타이쿤 게임인 '좋은 피자 위대한 피자' 게임처럼 잔잔하게 가게를 운영해 보는 힐링 타이쿤 게임을 만들어 보고 싶었기 때문..
제 첫 작품인 호사원을 잡아라! 게임을 플레이스토어와 앱스토어에 출시하게 되었습니다! 회사에서 개발 팀장님의 지도 하에 기획과 개발을 전부 담당하여 진행하였고 디자이너 두 분과 협업하였습니다. 게임 링크: https://play.google.com/store/apps/details?id=com.bancogames.hidecatch&hl=ko 호사원을 잡아라 - Google Play 앱 전라감영을 배경으로 호사원들이 펼치는 스릴 만점 숨바꼭질! play.google.com 게임 간단 설명 :호사원을 잡아라! 게임은 캐주얼-멀티 게임입니다. 플레이어는 전주의 마스코트 캐릭터 호사원이 되어 전라감영을 배경으로 하는 무대에 진입하게 됩니다. 게임이 시작되면 플레이어와 똑같이 생긴 수십 마리의 호사원 NPC들과 ..