반응형 개발878 디자인패턴 ) 템플릿 패턴(Template Pattern) 템플릿 패턴(Template Pattern) 템플릿 패턴은 상위 클래스에서는 실제 구현부가 아닌 추상 메서드만 구현하고 하위 클래스에서 실제 기능을 구현한다. 하위 클래스에 따라서 실제 기능이 달라지기 때문에 재사용성 및 독립성이 보장이 된다. 추상화 클래스로 Unit에서 Move만 정의하고 Unit을 상속받은 Air Unit과 Land Unit에서 실제 해당 기능의 구현을 구현한다. Air Unit의 Move는 하늘을 이동하는 기능을 구현하고 Land Unit에서는 땅에서 이동을 하는 기능을 구현한다. 이렇게 정의만 하고 기능 구현을 하위 클래스에서 작성을 하고 실제 메서드를 호출은 Move를 하면 된다. 템플릿 패턴을 사용하게 되면 로직을 공통화할 수 있고, 상위 클래스와 하위 클래스의 연계가 가능하.. 2020. 4. 2. 디자인패턴) 어뎁터 패턴(Adapter Pattern) 어뎁터 패턴(Adapter Pattern) 어댑터 패턴의 특징은 위임을 하는 것이다. 모양이 다른 타입의 USB 선이 있는데 연결하고 싶을 경우 우리는 '젠더'라는 중간에 연결하는 어뎁터를 사용한다. 어뎁터 패턴도 마찬가지다. public class Main{ Print p = new PrintBanner("사과팝니다"); p.printWeak(); p.printStrong(); } Main 클래스에서 사용하는 PrintBanner 를 첩근 하지만 실제 showWithParen()과 ShowWidthAster에 대한 접근을 전혀 고려하지 않아도 됩니다. 나중에 수정이 되면 해당 PrintBanner에 대한 클래스 구조를 변경하면 된다. 어댑터 패턴을 실제 구현부가 분리되어있기 때문에 자주 사용하는 디자인.. 2020. 4. 2. 잡학지식) 마케팅 지표 관련 용어(TS, DAU, NRU, CPI, PU, BU, ARPPU, ARPDAU등) 지표 관련 용어 게임을 개발하다 보면 지표에 관련된 용어를 많이 접하곤 한다. 대체적으로 많이 접하는 지표 관련 용어는 다음과 같다. UUID (Unique User ID) 중복된 이벤트를 구분하기위한 PK(Primary Key)로 기준이 되는 데이터이다. (유저당 고유한 ID) TS (Time Spent) 하루 1인당 플레이 시간 DAU (Daily Active User) 하루에 접속하는 유저를 나타낸다. NRU (New Resistered User) 신규 유저를 나타낸다. MAU (Monthly Active User) 월 단위로 측정한 UV를 나타낸다. CPI (Cost Per Install) 다운로드 및 설치를 하는데 필요한 단가를 말한다. Retention 잔존율, 서비스에 접속하는 유저의 비율을.. 2020. 4. 1. 디자인패턴) 이터레이터 패턴( Iterator Pattern) 이터레이터 패턴( Iterator Pattern) Iterator 패턴은 무엇인가 많이 모여 있는 것들을 순서대로 지정하면서 전체를 검색하는 처리를 실행하기 위한 디자인 패턴이다. 반복해서 처리한다는 기능이 특징이다. 서가(BookShelf) 안에 책(Book)을 넣고 책을 검색 하는 프로그램을 예시로 보면 UML 다음과 같다. 특징은 Book을 BookShelf에 등록을 하게 되고 실제 검색을 하는 과정에서는 BookShelf의 데이터에서 iterator를 통해서 hasNext가 끝날 때까지 검색에 대한 로직을 처리한다. 실제 해당 기능상으로는 반복해서 처리하는 로직이긴한데 왜 이 Iterator 패턴을 사용해야 할까? 가장 큰 이유는 iterator 패턴을 사용하는 과정에서 구현을 분리가 되기 때문이.. 2020. 3. 31. 코드) Unity - 바이트를 기준으로 String 짜르기 Unity - 바이트를 기준으로 String 짜르기 개발을 하다보면 영문/한글을 기준으로 길이를 균일하게 처리해야할때 사용하는 코드이다. public string GetStringWithLengthOfByte(string _value, int _byteLength) { string strTemp = ""; string retunValue = ""; int byteLen = 0; for (int i = 0; i < _value.Length; i++) { string sStrOfCurIndex = _value.Substring(i, 1); strTemp = strTemp + sStrOfCurIndex; byteLen += Mathf.Min(Encoding.UTF8.GetByteCount(sStrOfCurIn.. 2020. 3. 25. 디자인패턴) 팩토리 패턴(Factory Pattern) 팩토리 패턴(Factory Pattern) 팩토리 패턴의 핵심은 '클래스의 인스턴스를 만드는 것을 서브클래스에서 결정하게 만드는 것'이다. 공장에서 어떤 재표를 넣으면 각 공정에서 다른 모양으로 변환해서 나오는 것으로 생각하면 된다. new 키워드를 사용하는 부분을 서브클래스에서 위임해서 객체 생성을 캡슐화하고 구상 클래스에 대한 의존성이 줄어든다. public class UnitFactory : TypeUnitFactory { public override Unit MakeUnit(eUNIT_TYPE _type) { Unit returnValue = null; switch (_type) { case eUNIT_TYPE.ATTACK:{ returnValue = new AttackUnit(); } break.. 2020. 3. 18. 코드) 카메라 줌 (Camera Zoom) 카메라 줌 (Camera Zoom) 카메라를 줌하는 방법은 여러가지가 있다. 1.실질적인 카메라의 위치포지션을 옮기는 방법. 2. 카메라의 FOV 를 변경하는 방법 카메라의 FOV 를 변환을 하게되면 카메라 뷰의 영역이변경된다. 줌처리는 되긴하지만 보이는 각도가 달라지니 카메라의 위치포지션을 옮기도록하자. this.m_MainCamera.transform.position = this.m_vInitPosition.noramlize * value ★☆☆☆☆ 2020. 3. 15. 개인생각) 우한 코로나 특수? 집콕족과 게임 업계, 배달 업계 우한 코로나 특수? 집콕족과 게임 업계, 배달 업계 요 근래 가장 핫한 이슈인 우한 코로나에 대해 이야기해보자고 한다. 우한 코로나 (COVID-19) 2019년 12월 중국 후베이성 우한시에서 발생한 신종 코로나바이러스의 명칭이다. 주요 증상은 다음과 같다. 발열, 기침 인후통 등 호흡기 증상, 폐렴 가장 흔한 증상은 열, 피로 및 마른기침, 일부 환자는 통증, 코막힘 또는 설사를 동반하기 도함. 이러한 증상은 대개 경미하며 점차적으로 시작 무증상 감염자가 생기기도 하고 불편함을 느끼지 않는 경우도 존재함. 약 80%는 특별한 치료 없이 자연 회복 가능 고령자나 고혈압, 심장질환, 폐질환을 겪는 사람들이 합병증 및 중증환자로 진행될 가능성이 있다. 38도 이상의 고열 지속 및 증상 심화 시 다음과 같다.. 2020. 3. 11. 코드) 원 운동 원 운동 public Vector3 GetAnglePosition(float _angle, float _radius) { Vector3 returnValue = Vector3.zero; returnValue.x = Mathf.Sin(Mathf.Deg2Rad * _angle) * _radius; returnValue.z = Mathf.Cos(Mathf.Deg2Rad * _angle) * _radius; return returnValue; } ★★☆☆☆ 2020. 3. 3. 코드) Debug Circle public void UpdateDebugCircle(float _diameter, Color _color) { float radius = (_diameter / 2f); Vector3 prevPos = this.GetPosition() + Utill.Instance.GetAnglePosition(0, radius); Vector3 endPos = Vector3.zero; int count = 360 + 1; for (int i = 0; i < count; i++) { endPos = this.GetPosition() + Utill.Instance.GetAnglePosition(i, radius); Debug.DrawLine(prevPos, endPos, _color); prevPos = endPos; .. 2020. 2. 28. 문제해결)Unity) Error - AnimationEvent has no function name specified! AnimationEvent has no function name specified! AnimationEvent has no function name specified!라는 에러가 콘솔에 찍히는 경우가 종종 발생한다. 이 에러가 나는경우에는 해당 애니메이션 클립의 이벤트가 정상적이지 않는 경우 (이름이 없거나, 제외된) 경우에 발생한다. 해결방법은 다음과 같다. 해당 애니메이션의 클립으로 선택해서 이벤트를 삭제해주면 된다. Unity Animation Event : [링크] 애니메이션 이벤트 사용 - Unity 매뉴얼 애니메이션 이벤트를 사용하여 애니메이션 클립을 최대한 활용할 수 있으며, 타임라인의 특정 시간에 오브젝트의 스크립트에 포함된 함수를 호출할 수 있습니다. docs.unity3d.com ★☆☆☆☆ 2020. 2. 28. 코드) 리스트 랜덤 리스트 랜덤 개발을 하다보면 중복되지 않는 값들을 랜덤으로 셔플해야하는 상황에서 사용하는 코드이다. for(int i =(0 ; i 0; i--){ int rnd = Random.Range(0, i); int temp = list[i]; list[i] = list[rnd]; list[rnd] = temp; } ★☆☆☆☆ 2020. 2. 28. 개인생각) 자택근무를 하게되면서.. 코로나-19 바이러스로 인해서 어떻게 하다 보니.. 첫 자택 근무를 하게 되었다. 회사에서는 보안과 업무보다 사람을 먼저 생각해줘서 한편으로는 너무 고맙다. 자택 근무를 한번도 생각해본적이 없는 월급쟁이인 나로써는 묘한기분을 느꼈다. 어떻게 보면 업계 특성상 자택근무를 할 수도 있는 환경인 것과 컴퓨터와 전기만 있으면 개발이 가능한 업무이기 때문인지도 모르겠다. 자택 근무를 하게 되더라도 업무의 일정은 변동이 없으니 꼼짝없이 일을 해야 하는 건 같으나 출근시간이 없어졌고, 혼자서 일하는 기분을 느낀다는 정도일까나..? 한편으로는 조금 더 삘받으면 업무를 미리 진행할 수 있다는 생각도 든다. 퇴근시간이 있는 상황에서는 집중을하다가도 퇴근을 하거나 좀 부담스럽기도한데. 자택근무를 하게되면 좀더 능동적으로 작.. 2020. 2. 26. Unity) 3D Audio Sound 3D Audio Sound Uniy 3D에서는 3D 공간을 기반으로 사운드가 재생이 가능하다. Audio Listener의 위치를 기반으로 사운드의 distance를 이용해서 내부에서 처리하는 듯하다. 오디오의 설정은 다음과 같다. 3D Sound Setting 의 거리나 볼륨 등 수치를 설정하면 된다. 도플러 효과는 소리를 듣는 리스너가 움직이는 속도 등에 따라 소리가 다르게 들리는 정도이다. 설정은 다음과 같다. 3D Sound Settings Spatial Blend 매개 변수에 비례하여 적용되는 설정. Doppler Level 이 오디오 소스에 적용될 도플러 효과의 양을 결정합니다 (0으로 설정 한 경우 효과가 적용되지 않음). Spread 스피커 공간에서 확산 각도를 3D 스테레오 또는 멀티 채.. 2020. 2. 21. Unity) 스크립트에서 자동으로 컴포넌트 추가하기 스크립트에서 자동으로 컴포넌트 추가하기 using System.Collections; using System.Collections.Generic; using UnityEngine; [RequireComponent(typeof(BoxCollider))] public class Test : MonoBehaviour { private BoxCollider m_Collider = null; void Start() { this.m_Collider = this.GetComponent(); } void Update() { } } RequireComponent 속성은 요구되는 의존 컴포넌트를 자동으로 추가해줍니다. 특정 스크립트에서 항상 필요한 컴포넌트가 있는 경우에 의존 컴포넌트로 처리를 하면 따로 일일이 신경 쓰지.. 2020. 2. 18. 이전 1 ··· 50 51 52 53 54 55 56 ··· 59 다음 반응형