반응형

유니티 29

[전 프로젝트 이야기] "레전드 오브 아레나"

히스토리도 남길 겸 예전에 개발했던 프로젝트를 소개하고자 합니다. 인디개발을 시작하고 2번째 프로젝트로써 출시 후 1만 누적 다운로드와 영광의 구글 피처드에 등록되었던 나름 괜찮은 성적을 보여준 게임이다. 심지어 광고도 처음으로 요청해봤다. https://youtu.be/DQrFJ0zXQ98 식은땀 흘리면서 본 기억이.. 이래저래 게임개발과 서비스에 있어서 많은 경험을 안겨준 효자같은 게임이었습니다. 3인 개발 인디게임 개발기간: 3개월 사용기술 : Unity, C# 제한된 공간안에서 오랫동안 살아남는 캐주얼 서바이벌 게임 누적 다운로드 1만, ‘금주의 신규 추천게임’ 구글 피처드 등 가장 많은 반응을 받은 게임 출시 후 다양한 마케팅 업체와 함께 SDK 연동 경험 구글 , 페이스북 애널리틱스를 처음으로..

개발 프로젝트 2021.08.28

[디자인패턴] 7. 유니티에서 데코레이터 패턴

오늘의 디자인 패턴은 데코레이터 패턴입니다. 데코레이터 패턴의 정의는 객체에 추가적인 요건을 동적으로 첨가한다는 것입니다. 그리고 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공해줍니다. 이번에 핵심적으로 다루는 객체지향 디자인 원칙은 OCP(Open-Closed Principle)으로써 클래스는 확장에 대해서는 열려있어야하며, 코드변경에 대해서는 닫혀있어야 한다는 원칙입니다. 위의 두가지를 고려해보면 어떤 클래스의 추가적인 요건을 동적으로 첨가할때 코드변경에 대해 닫혀있는 방식이 바로 데코레이터 패턴이라고 할수있습니다. 게임을 구현하는데 있어서 그렇게 자주 볼 수 있는 패턴은 아닌 것 같지만 해당패턴을 적용시켜 아이템을 꾸며보았습니다. // 데코레이터 패턴으로 꾸며질 객체 ..

[디자인패턴] 6. 유니티에서 옵저버패턴

오늘 유니티에서 적용해볼 패턴은 '옵저버 패턴'입니다. 옵저버 패턴의 정의는 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이가고 자동으로 갱신되는 방식으로 일대다 의존성을 가집니다. 위의 정의를 유의하면서 게임에서 전투를 통한 체력 표시를 구현해봅시다! 구현하기에 앞서 오늘 패턴의 또다른 중요한 원칙 '느슨한 결합'에 대해서 먼저 정리해봅시다. 옵저버 패턴에서는 주제(Subject)와 옵저버(Observer)가 느슨하게 결합되어있는 객체 디자인 원칙을 제공합니다. 특징 1. 주제가 옵저버에 대해서 아는것은 옵저버가 특정 인터페이스를 구현한다는 것뿐입니다. 2. 옵저버는 언제든지 새로 추가할수있습니다. 3. 새로운 형식의 옵저버를 추가하려고 할때도 주제를 전혀 변경할 필요가 없습니다. ..

[디자인패턴]4. 유니티에서 팩토리 메소드 패턴

유니티에서 객체를 생성하는 일이 많습니다. 몬스터, 장애물, 유저캐릭터 등등... 오늘 정리할 패턴은 위와같이 객체를 생성하는 것에 있어서 확장성이 높고 의존성을 줄일 수 있는 패턴 '팩토리 메소드 패턴'입니다. 팩토리 메소드 패턴의 가장 큰 핵심은 어떠한 객체를 생산하는 생산자(Creator)와 어떠한 객체를 생산할지 결정하는 구상 생산자(ConcreteCreator)의 분리 입니다. 게임으로 예를 들면 전체 몬스터를 스폰해주는 어떠한 클래스가 생산자(Creator)입니다. 모든 몬스터는 이 클래스에서 생산이 됩니다. 그리고 생산될 몬스터를 결정해주는 클래스가 구상 생산자(ConcreteCreator)입니다. 고블린을 생산할지, 해골을 생산할지를 정해주는 클래스입니다. 우선 생산자 입니다. 생산자의 특..

[디자인패턴] 03. 유니티에서의 싱글톤(Singleton) 패턴

지난 수요일에 친구들과 디자인패턴에 대해 스터디를 하면서 제 스스로로 잘 알고 사용하고 있으면서도 잘 모르겠는 아리송한 싱글톤 패턴에 대해서 다시 한번 정리하고자 합니다. 저는 예전에 게임을 구현하면서 유니티에서 C#으로 싱글톤으로 어떻게 구현하는지 찾아보면 원하는 스크립트에 static 멤버변수 instance를 선언하여 초기화한 후 다른 씬으로 넘어갈때 계속 유지할수있게 어떤 처리를 해서 계속 사용하는 방법을 자주 볼 수 있었습니다. //// 구글링해서 나오는 대부분의 유니티 싱글톤 느낌 public class GameManager : MonoBehaviour { // instance 멤버변수는 private하게 선언 private static GameManager instance = null; pr..

[유니티 C#] PhotonNetwork 기본 콜백함수 찍먹하기

포톤네트워크를 사용해 함수를 구현하시면 편리하게도 서버에 입장하고, 로비, 룸에 입장할때 호출되는 콜백 함수들이 있습니다. 오늘은 서버에 접속해서 방에 들어가기까지 대략적인 파악정도만을 위해 작성하고 추후에 디테일한 UI 구성까지 함께 파보겠습니다! 인게임에 들어가기전에 아웃게임에서 크게 챕터를 나누자면 접속, 로비, 룸 이렇게 나뉘는 것 같습니다. 1. 서버 연결 및 연결해제 파트 public void OnConnect() { // 서버 접속 함수 PhotonNetwork.ConnectUsingSettings(); } public void OnDisconnect() { // 접속 종료 함수 PhotonNetwork.Disconnect(); } public override void OnConnectedT..

게임 개발/Unity 2021.06.09

최근 프로젝트 "미생물 랜덤능력 블러드"

갑자기 근황 올리고싶어서... 최근 1인개발자 자판기게임즈로 변경 후 시작하게된 프로젝트 '미생물 랜덤능력 블러드'를 소개합니다. 멀티 캐주얼 전략 시뮬레이션으로써 그 옛날 "저글링 블러드"를 모티브로 개발을 시작했습니다! 인디게임 개발을 시작한지 2년이 다 되어가는데 그동안 한번도 시도하지 못한 포톤 서버를 공부해서 적용시켜 보았습니다.ㅎㅎ 아직은 재미검증을 위한 프로토타입 단계이지만 빠르게 개발하면서 완성시킬 수 있도록 하겠습니다. 허허 추후에 포톤서버에 대해 공부하고 막힌부분 블로그에 정리해서 올리겠습니다!

개발 프로젝트 2021.05.14

유니티 Admob mediation adapter 적용시 빌드에러

최근 개발중인 프로젝트에 애드몹 미디에이션을 적용하면서 안드로이드 빌드 에러가 발생하여 리서치한 결과 사용하고있는 유니티 버전의 안드로이드 build.gradle 버전이 낮아서 발생한다는 결론이 나왔습니다. 그래서 해당 유니티 버전, 저의 경우에는 2019.4.19f1을 사용하는데 2019.4.19f1/PlaybackEngines/AndroidPlayer/Tools/GradleTemplates/baseProjectTemplate.gradle을 확인하시면 아래와 같이 나옵니다. 처음에는 왼쪽 이미지처럼 나와있는 classpath를 오른쪽처럼 3.4.3으로 변경한 뒤에 빌드를 시도해보시면 문제없이 잘되는것을 확인할 수 있습니다.

게임 개발/Unity 2021.02.14

[유니티 C#] Position으로 SortingLayer 조절 - 건물 뒤에 숨기

최근에 진행하는 프로젝트에서 플레이어 캐릭터가 돌아다니는 상황에서 건물 오브젝트 혹은 다른 오브젝트과 붙어있을때 랜더링 순서가 맞지않아 고민해본 결과 해당 오브젝트의 position.y값으로 레이어 order값을 변경시켜 건물의 앞에서 앞으로 뒤에선 뒤로 랜더링되도록 구현하였습니다. using System.Collections; using System.Collections.Generic; using UnityEngine; // SpriteRenderer 필수 [RequireComponent(typeof(SpriteRenderer))] public class ObjectLayerSetter : MonoBehaviour { private SpriteRenderer spriteRenderer = null; p..

게임 개발/Unity 2020.12.06

[Unity C#] 해상도대응 (ios) - iOS.Device.generation

아이폰에 게임을 출시하면서 수없이도 많은 리젝을 당한 사유... 결제와 해상도 대응이었습니다... 안드로이드는 비교적 쉽게 대응이 가능했지만 아이폰의 x(탈모)시리즈...ㅂㄷㅂㄷ 리서치도 해보고 좋은 플러그인도 찾았지만! -------------------------------------------------------- 플러그인 : UnitySafeAreaController https://github.com/rlatkdgus500/UnitySafeAreaController -------------------------------------------------------- 이미 구현된 게임에 바로 적용하기가 애매했던터라 코드로 급하게 만들었습니다. 방식은 iPhoneX시리즈 이후의 버전에서 일정부분만큼..

게임 개발/Unity 2020.02.07
반응형