반응형

전체 글 80

[유니티 C#] SafeArea 상,하,좌,우 4방향 각자 대응

무더운 여름입니다. 이게 날씨인가 싶지만 개발은 계속됩니다. 최근에 UI디자이너분의 요청에 따라 기존에 사용하던 SafeArea를 개량했는데 의외로 쓸만하다는 생각이 들어서 이렇게 기록해 놓습니다. 제 블로그에서도 소개드렸던 에셋스토어에서 무료로 배포하는 SafeArea 에셋의 스크립트를 개조한 것 입니다. 기존에 사용하던 SafeArea는 X축, Y축만 대응이 가능했다고 한다면, 이번에 개량하게된 버전은 Topn Bottom, Left, Right 4방향을 조절할 수 있게 되었습니다. using UnityEngine; public class SafeArea : MonoBehaviour { public enum SimDevice { None, iPhoneX, iPhoneXsMax, Pixel3XL_LSL..

게임 개발/Unity 2021.07.24

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

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

[유니티 C#] UI Animation State 이름 중복 사용

최근에 UI 애니메이션 관련해서 재밌는 팁을 알게되서 달려왔습니다! UI 애니메이션의 중복 활용이라 적었는데 무엇이냐면 유니티 애니메이션을 하면서 원하는 애니메이션으로 변경하거나 실행해야할때 각 상태에 transition을 연결하고 파라미터 값을 매겨 일종의 유한상태 머신을 만드는 형태로만 사용해왔습니다. 하지만 이번에 알아낸건 스크립트상에서 애니메이션을 실행할때 state이름을 매개변수로 받아 실행하며 그 state이름을 똑같이 작성하게되면 UI상에 중복되는 시점에 다른 애니메이션을 실행시킬수있다는 것을 알았습니다. 예시를 들자면 일반 팝업 연출과 아래에서 슬라이드해서 올라오는 팝업 연출이 있습니다. 그리고 해당 애니메이터를 제어할 스크립트를 살펴봅시다. // 콜백 매개변수를 위한 델리게이트 publi..

게임 개발/Unity 2021.07.11

[디자인패턴] 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

[유니티 C#] 에디터 OnInspectorGUI()후 저장

프로그래머가 아닌 팀원과 협업하기위해 에디터 제너레이터를 만들면서 겪었던 문제를 해결하면서 블로그에 남깁니다. 게임에 등장하는 맵을 꾸미기위한 에디터 제너레이터를 구현했습니다. 아래와같이 인스펙터에 Enum배열을 조절하고 Generate Image 버튼을 누르면 해당 Enum에 맞는 이미지로 맵이 꾸며지는 클래스입니다. // 인스펙터에서 맵을 꾸밀 수 있도록 구현 // 인스펙터에서 제어하기위한 enum public enum TILE { FLOOR_01, FLOOR_02, } // 9개의 블럭이미지를 가지고있는 MapBlock 클래스입니다. public class MapBlock : MonoBehaviour { [SerializeField] private SpriteRenderer[] spriteRende..

게임 개발/Unity 2020.11.21

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

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

게임 개발/Unity 2020.02.07
반응형