비트를 쪼개는 개발자

allen321@naver.com

Unity 9

Unity에서 Firebase를 이용해 실시간으로 DB를 연동해보기 (1)

Firebase란? Firebase는 구글에서 제공하는 모바일이나 웹용 애플리케이션 개발을 위한 개발 플랫폼이다.여러가지 기능들을 제공하며 실시간 데이터베이스, 인증, 클라우드 스토리지 등 서버를 직접 구축할 필요 없이 백엔드의 여러 기능을 사용할 수 있다.무료로 제공하는 기본 용량이 있어 접근성이 편리하다.    우리는 Firebase의 다음과 같은 기능 중 데이터베이스 기능을 Unity와 연동시켜보자. Unity로 게임을 개발하다 보면 여러가지 기능을 DB와 연동시킬 필요성이 느껴진다. 캐릭터의 레벨이나 재화, 그리고 로그인 시스템, 인벤토리 등 여러가지 기능들을 실시간으로 서버와 연동하고 이를 수시로 받아오고 쓰는 과정이 필연적으로 발생하는데 Firebase를 사용하면 이러한 기능들을 간단하게나마 ..

Unity 2025.02.04

Unity 에서 Cursor AI를 활용해 게임 기능을 쉽게 구현해 보기 (2)

https://mozartnt.tistory.com/74 Unity 에서 Cursor AI를 활용해 게임 기능을 쉽게 구현해 보기 (1)오늘은 Cursor AI를 활용해서 Unity로 게임을 만드는 코드를 인공지능에게 맡겨보도록 하자.    최근 수 많은 인공지능의 발전으로 코드의 오류를 잡고 기능을 구현할 때 많은 LLM을 사용하는데 mozartnt.tistory.com 지난 글에 이어서 이번에는 Cursor AI를 설치하고 연동 한 이후 게임 내의 기능 구현 코드를 Cursor AI에게 맡겨보고 어느 정도의 퀄리티의 기능 구현이 가능한지 살펴보도록 하자.         현재 테스트 해볼 프로젝트는 테스트를 위해서 임시로 만들었고 모바일 디펜스 게임과 비슷한 형태로 만들기 위해서 잡몹들이 수시로 스폰되..

Unity 2024.11.01

Unity 에서 Cursor AI를 활용해 게임 기능을 쉽게 구현해 보기 (1)

오늘은 Cursor AI를 활용해서 Unity로 게임을 만드는 코드를 인공지능에게 맡겨보도록 하자.    최근 수 많은 인공지능의 발전으로 코드의 오류를 잡고 기능을 구현할 때 많은 LLM을 사용하는데 대부분 "OpenAI" 사의  "ChatGPT", "Anthropic" 사의 "Claude", 그리고 Google에서 출시한 BARD(최근 이름은 Gemini) 등을 사용한다. 모델별로 성능은 조금씩 차이가 있지만 요즘 대부분의 상용화된 LLM은 훌륭한 성능을 보여준다. 다만 결제를 하지 않는다면 모델의 구 버전을 사용해야 하거나 하루의 질문 횟수가 정해져 있는 식으로 회사별로 약간의 제한사항이 발생하는데, 사실 여러 모델을 비교하기 위해서 매 달 결제하는 일은 은근 부담이 되는 일이다.   무엇보다 Ch..

Unity 2024.11.01

Unity [디자인 패턴] - 싱글톤 패턴

싱글톤 패턴이란?  싱글톤 패턴은 특정 클래스의 인스턴스가 프로그램 전체에서 오직 하나만 존재하도록 만드는 디자인 패턴이다. 해당 인스턴스를 호출하면 매번 새로운 인스턴스를 생성하는 것이 아니라 기존에 생성한 인스턴스를 반환한다. 기존의 인스턴스를 재사용하기 때문에 메모리를 절약할 수 있지만 너무 많은 인스턴스를 싱글톤으로 만들면 스태틱 메모리에 너무 많은 인스턴스가 할당되어 있게 된다. Singleton 객체에는 어디서나 static 변수로 참조값을 할당해서 모든 객체에서 쉽게 접근이 가능하도록 구현한다. 씬과 씬 사이에 데이터를 공유하는 용도로도 사용함(DontDestroyOnLoad 함수 사용)    싱글톤이 필요한 경우   1. 많은 클래스에서 해당 클래스를 수시로 공유하는 경우   유니티에서는 ..

Unity 2024.08.07

Unity [디자인 패턴] - 디자인 패턴이란?

디자인 패턴(Design Pattern) 이란?   디자인 패턴은 특정 기능을 구현하기 위한 접근 방식이나 코드의 구조를 정의한 개념이다. 코딩 테스트를 풀다 보면 다양한 알고리즘을 이용해서 문제를 해결하는데, 알고리즘이 해답을 얻기 위한 효율적인 풀이 과정을 의미한다면 디자인 패턴은 과정 보다는 효율적인 구조 자체를 뜻한다. 디자인 패턴을 이용하면 코드의 재사용성이 높아지는 것 역시 디자인 패턴의 장점이다. 좋은 소프트웨어 구조를 설계할 때 중요한 모듈화와 추상화 역시 디자인 패턴을 통해 쉽게 구현할 수 있다. 디자인 패턴이 필요한 순간은?  유니티에서 디자인 패턴을 이용하는 경우는 크게 다음과 같다.  메모리 사용을 최소화 해야 하는 경우, 게임 성능 최적화가 필요한 경우게임 출시 이후 컨텐츠 추가와..

Unity 2024.08.07

Unity - 물리 엔진(RigidBody, Collider)

Unity에서 처리해주는 물리 엔진의 주요 기능은 다음과 같다. 오브젝트와 오브젝트간의 충돌 처리오브젝트의 중력 적용힘에 대한 가속 처리마찰력과 반발력에 따른 오브젝트 움직임 처리    또한 Unity의 물리 엔진들의 종류는 프로젝트에 따라 크게 두가지로 나뉜다.   1.  오브젝트 지향 프로젝트  Nvidia PhysX 3D 물리엔진 : Unity에서 기본적으로 제공하는 3D 물리 엔진으로, Nvidia의 PhysX 엔진을 사용한다.  특징 충돌 감지와 반응 및 시뮬레이션을 위한 여러 물리특성 지원다양한 플랫폼에서 사용이 가능함유니티 에디터에 통합되어 있어 사용이 간편함자주 사용하는 RigidBody와 Collider가 여기에 속해 있음   Box2D 물리 엔진 : 물리 시뮬레이션을 위해 Unity에서..

Unity 2024.07.22

Unity [디자인 패턴] - 오브젝트 풀링 패턴

오브젝트 풀링이란?  Unity에서 빈번하게 사용하는 객체 및 오브젝트에 대하여 매번 새로 생성하고 삭제하는 것이 아닌재사용이 가능하도록 특정 자료구조에 모아놓는 방식이다. 유니티에서 오브젝트를 생성하거나 삭제할때에는 Instantiate()와 Destroy() 함수를 사용하는데,이 두 함수는 오브젝트의 리소스를 새로 할당하는 과정에서 많은 시간과 메모리를 잡아먹는 함수이다. 또한 오브젝트를 파괴하고 난 뒤에도 파괴 이후에 발생하는 가비지 컬렉팅으로 인하여 프레임 드랍이 발생하기도 하고 반복적인 파괴 이후에는 메모리 단편화가 일어나기도 한다.   오브젝트 풀링의 장점은? 오브젝트를 미리 한번에 여러개를 생성시켜 놓기 때문에 게임 플레이 도중에 오브젝트 생성으로 인한 프레임 드랍이나 리소스를 잡아먹는 일을..

Unity 2024.04.30

Unity에서 DB를 활용해 로그인, 회원가입 시스템 구현해보기 (2)

지난 글에 이어서데이터베이스와 로그인 시스템을 연동하기 위한 방법을 알아보자 ! using System.Linq;using MySql.Data.MySqlClient;using Mysqlx.Crud;using System.Collections.Generic;//string _server = "121.168.117.23"; //DB 서버 주소, 로컬일 경우 localhost//int _port = 3306; //DB 서버 포트//string _database = "db_spacescore"; //DB 이름//string _id = "allen"; //계정 아이디//string _pw = "qezvRC*Kf*bTDA4sKCd_TGe-"; //계정 비밀번호//string _connectionAddress = "..

Unity 2024.04.26