# Introduce FSM을 구현하기 위해 State Pattern을 다뤄보던 중, SendMessage를 이용하여 기존 사용하던 FSM을 더 가독성 좋게 구현하게 되어서 공유하려 합니다. FSM? FSM 은 유한 상태 기계(Finite State Machine)를 의미합니다. 유한 상태 기계는 말 그대로 유한한 수의 상태를 가진 기계를 이야기 하는데요. 다음과 같은 특징을 지닙니다. 유한 상태 기계는 유한한 수의 상태들을 가진다. 그 중 반드시 하나의 상태만 취한다. 현재 상태는 특정 조건이 되면 다른 상태로 변할 수 있다. 유한 상태 기계는 가능한 상태들의 집합과 각 상태들의 전이 조건으로 정의될 수 있다. 상태들을 그래프로 표현이 가능하다. # Pros & Cons 장점 - 구현이 간단하다. - ..
# Introduce 오늘 소개드릴 디자인 패턴은 커맨드 패턴입니다. 커맨드 패턴은 실행될 기능을 캡슐화하여 재사용에 용이한 클래스를 구현하는 것을 말합니다. 어떤 객체(A)에서 다른 객체(B)의 메서드를 실행하려면 그 객체(B)를 참조하고 있어야 하는 의존성이 발생합니다. 그러나 커맨드 패턴을 적용하면 의존성을 제거할 수 있습니다. # Pros & Cons 장점 1. 작업을 요청하는 클래스(Invoker)와 실제로 작업을 수행하는 클래스(Receiver) 사이의 의존성이 사라집니다. 2. 기존 코드를 수정하지 않고 새로운 커맨드 및 기능을 쉽게 추가할 수 있습니다. 3. 커맨드 패턴을 통해 확장성이 높아질 수 있습니다. 단점 1. 모든 작업이 독립적인 ConcreteCommand 클래스이므로 구현 및 ..
# Introduce 사전등록이란 등록된 앱이 프로덕션으로 제출되기 이전에 '정식 출시되면 다운로드를 하겠습니다.' 하고 예약하는 기능을 의미합니다. 출시 이전에 미리 다운로드를 예약 할 수 있다는 점에서 모바일 생명주기에 가장 중요하다고 볼 수 있는 초반 일주일에 대한 유저 유입량을 보다 더 효과적으로 확보 할 수 있는 방법입니다. 위와 같은 이유만으로도 사전등록은 충분한 강점을 가지고 있지만, 우리는 추가적으로 소정의 상품을 내걸음으로써 훨씬 더 매력적인 사전등록의 의미를 만들어 낼 수 있습니다. 오늘은 이러한 사전등록 보상을 구현하는 방법에 대한 내용을 공유하려 합니다. 다음의 내용은 UnityIAP를 사용함에 있어 이해가 충분하다 가정하고 제작되었습니다. # For example 1. 안드로이드와..
# Introduce 오늘 소개드릴 디자인 패턴은 싱글턴 패턴입니다. 싱글턴 패턴은 언제 어디서나 손쉽게 접근하고 제어할 수 있다는 장점 덕분에 널리 쓰이고 있습니다. 하지만 그만큼 한계도 뚜렷하기 때문에 장,단점을 명확히 이해한 후에 사용해야 합니다. 싱글턴 패턴이란 하나의 인스턴스만 존재하며 전역적으로 접근 가능한 클래스 디자인 패턴입니다. 일반적으로 언제 어디서나 접근 가능한 변수나 함수를 제공하는 매니저 타입의 클래스(GameManager, AudioManager 등)에 사용하면 유용합니다. # Pros & Cons 장점 1. 전역적으로 접근 가능하기에 해당 클래스를 매번 생성, 검색할 필요가 없으며 따라서 레퍼런스를 저장해놓을 필요도 없습니다. 2. 여러 씬에 걸쳐서 사용되는 데이터를 저장하기에..
나날이스튜디오 합정 시대 개막! 이사 .. 한지는 좀 됐다. 무려 3개월 전인 6월 나날이 스튜디오가 상암동에서 합정 서교동으로 이사를 하였다. 상암동 사무실 계약기간이 올해 7월까지였기 때문에 3월부터 사무실을 탐색하기 시작했다. 사무실의 탐색 기준은 아래와 같았다. 지역 : 합정/홍대/망원 위치 : 지하철역에서 10분 내외 거리 예산 : 보증금 3000만 원 내외 / 임대료 300만 원 내외 사이즈 : 40평 이상 화장실 : 남/여 구분 되어 있을 것 인테리어 : 최소화 할 수 있는 깔끔한 공간 위 조건하에 약 2개월 동안 30여 곳의 매물을 살핀 결과, 평수는 조금 아쉽지만 맘에 드는 공간을 찾아냈다! 짜잔~! 인테리어가 전혀 안되어 있던 사무실의 모습 내 구상과 비슷하게 공간들이 나눠져 있었고 창..
2020년 참 많은 일들이 있었다. 올해 초 여러 가지를 계획했지만 코로나라는 변수와 함께 많은 계획이 어그러졌고 쉽지 않은 한해를 보낸 것 같다. 그래도 시간은 멈추지 않고 흘렀고 올해 종무식은 언택트로 진행하게 되었다. ZOOM 종무식 1년을 회고하는 발표와 간단한 퀴즈, 게임을 진행했다. 그리고 올해도 진행된 시상식 팀원들의 직접 투표로 올해의 발전, 올해의 신인, 올해의 피플 수상자가 결정되었다. 무사히 종무식을 마치고 저녁에 이어진 송년회 2부 시작~ 참여한 팀원들에게 치킨을 주문해드리고 음료는 각자 준비, ZOOM 송년파티를 진행 했다. 수다도 떨고 어몽 어스(Among Us)도 함께 플레이하며 즐거운 파티! 비록 같은 공간에 함께 이야기를 나눌 순 없었지만 온라인상으로나마 얼굴을 맞대고 시간..
Unity에서 슬로우 모션(Slow Motion)효과 주기 - TimeScale/AudioSource
2020.08.11
# Introduce Unity 메소드를 활용해 슬로우 모션(Slow Motion)효과를 적용해봅시다. > Time.timeScale > Time.fixedDeltaTime > Time.unscaledDeltaTime > Audio Source Pitch > Fade Effect > Delegate # For example 1. Time.timeScale (시간 조절) Time.timeScale은 시간이 경과하는 크기를 나타냅니다. 해당 값을 수정하여 시간이 흐르는 속도(배율)를 조절할 수 있습니다. using UnityEngine; public class SlowMationClass : MonoBehaviour { public float slowFactor = 0.05f; public void DoSl..
# Introduce BGM이나 SFX의 온/오프를 설정자와 Delegate를 이용하여 간단히 제어해 봅시다. # For example 1. 매니저 우선 매니저 역할을 하는 스크립트에 해당과 같은 Delegate를 추가합니다. public Action _OnSoundMuted; public Action _OnSoundUnmuted; 사운드 on/off 여부를 가르키는 변수를 만들어 줍니다. private bool m_bSoundOn; 사운드 변수에 접근하는 접근자, 설정자를 만들어 줍니다. 설정자에 접근할때(사운드가 켜고 꺼질때) 해당 Delegate가 Invoke 됩니다. public bool _SoundOn { get { return m_bSoundOn; } set { if (value) { _OnS..
어느새 8월, 7월에 있었던 나날이의 소식을 한꺼번에 몰아본다. 1. 사무실 구조 변경 7월, 어느새 나날이 팀원이 17명까지 늘어났고 사무실 구조를 변경할 수밖에 없었다. 얼른 의미있는 매출을 내서 내년엔 지금보다 더 큰 사무실로 이사 가길..! 2. 배민기 개발자님의 결혼! 나날이 개발의 역사! 나날이의 기둥 배민기 개발자님의 결혼 소식이 있었다. 재환 님, 다예님에 이은 나날이 스튜디오의 3번째 결혼식~! 오래오래 행복하시길..! 3. 월요일 밥 게임 - 1 매주 월요일 전 팀원이 함께 밥 먹는 시간을 가졌다. 승리한 팀은 밥값을 진 팀은 차값을 받아가는 게임 밥값을 두고 벌인 치열한(?) 전투의 현장 4. 포레스트 아일랜드 개발 나날이 스튜디오의 첫 '힐링 시뮬레이션 포레스트 아일랜드'의 개발이 ..
# Introduce c#에서 사용이 가능한 조건부 컴파일 기호입니다. 정의되지 않은 기호가 사용된 메서드의 호출이나 특성이 무시됩니다. 가시적으로는 전처리기 지시문과 동일하게 보여지지만 메서드단위의 관리가 가능하다는 점과, 정의되지 않은 기호에 대하여 호출이 무시된다는 점에서 더 좋은 성능을 기대 할 수 있어 소개하게 되었습니다. # For example MS 공식 설명서에 구현되어있는 예제를 유니티 C#에서 재구성한 모습입니다. 2개의 메서드에 할당된 기호들이 모두 정의되어 있기 때문에 정상적으로 실행되어 아래와 같이 모든 메세지가 출력되게 됩니다. 다음과 같이 CONDITION1 기호 정의가 없는 상황인 경우, 해당 메서드에 대한 실행부에서의 호출이 무시되는것이 때문에 Method1(3); 부분을 ..
7월 6일 월요일 다들 주말 동안바뀐 자리에 어색해하는 모습도 잠시! 다들 잘 적응하는 모습이었다 :) 자리변동 후 약 1주일간 담아본 나날이 스튜디오의 모습 바글바글 새로운 팀원 합류로 팀 인사도 할 겸 전체 점심식사 시간을 가졌다. 오늘 메뉴는 찜닭! 식사를 마치고 버거킹에서 소프트콘으로 후식을 먹기로~ 북적북적 이젠 양손으로 다 잡긴 무리다. 냠냠 쩝쩝 하드 먹으며 사무실로 돌아오니.. 우리를 반겨주는(?) 수많은 팬들의 모습이 보였다. 그리고.. 3분기를 맞이한 전략 발표 시간이 이어졌다. 열정적인 재환님의 3분기 발표가 끝나고 이어진 '프로젝트 리뷰' 시간 우리는 매주 금요일 점심때 각 파트별로 '프로젝트 리뷰' 시간을 갖는다. 부쩍 친해진 모습 XD 그리고 다시 월요일! 오전 일정회의 후 점심..
2020년 7월 팀원들이 무럭무럭 늘어 어느 새 나날이인이 무려 18명에 달하게 되었다. 바로 이사는 가기 힘드니 사무실 공간을 최대한 활용하여 새로온 분들의 자리를 만들어 보기로 하였다. 열심히 짐을 빼고, 대략적인 자리변경!! 텅텅 비워져가는 사무실 파티션을 제거하고 3열 구조로 변경해 보기로 하였다. 대략적인 구조 변경 작업을 마치고 회포를 풀어볼까?! 룰루~ 구조배치를 도와준 팀원들과 배치를 마치고 소고기 먹으러 가는 길~! 소와 돼지와 맥주로 두둑히 배를 불렸다. 새로운 팀원들과 새로운 공간에서 새롭고 좋은 작품을 만들기를..! by NanaliStudios