전체 글
-
특정 유니티 버전에서 단축키가 안먹는 현상 해결 방법프로그래밍/Unity & c# 2019. 12. 5. 10:18
기존에 사용하던 유니티 단축키가, 특정상황, 버전 업그레이드 또는 플러그인을 추가로 설치 후 갑자기 사용이 안되는 현상을 경험해서 찾아보니 유니티 엔진에서 지정한 기본 단축키와, 유니티 사용자(또는 추가한 플러그인)가 메뉴에서 추가로 설정한 단축키가 중복될 경우 단축키 사용이 안되게 됩니다. 대표적으로 문제가 될 수 있는 단축키가 빈 GameObject를 만드는 단축키인 그리고 인스펙터에서 게임 오브젝트를 켜고 끌 수 있는 단축키인 입니다. 그 외 다른 단축키들도 사용이 안될 수 있으나, 어째뜬 중요한 핵심은 대부분은 플러그인(저같은 경우 ngui 플러그인 설치 후 작동이 안되었음)과 단축키 충돌이 나는 경우입니다. 위의 2개의 단축키만 이야기 드리면 NGUISelectionTools.cs 파일에 로 되..
-
Factory Mathod Pattern프로그래밍/디자인패턴 2017. 4. 12. 14:22
Factory Method Pattern 에 대해서 알아보도록 하겠습니다. 개인적으로 이 패턴에 대해서 이해를 하는 과정이 있어서, 가장 좋은 방법은 사용, 결과를 확인 하였을 때 가장 이해가 빠르지 않나 싶습니다. 결과를 보면 텍스트 뿐이지만, 실제로 생성되는 클래스는 각각 다른 클래스 입니다. 다음은 UnitFactory Class 를 확인해 봅시다. Factory 라는 가상 클래스에서 상속받아, 생성 타입에 따라 Fly, Walk 등을 만들어 낸다고 보시면됩니다. 사실 상황에 따라 다르게 쓰일 수 있는데, 이번 예제 같은 경우엔 UnitFactory 하나를 만들어 2가지 유닛을 생성하는 용도로 사용하였지만, - FlayUnitFactory - WlakUnitFactory 이렇게 2개로 나누어 작성할..
-
Template Method Pattern프로그래밍/디자인패턴 2016. 6. 30. 14:16
Template Method Pattern 에 대해서 알아보도록 하겠습니다. 이 패턴을 설명하면 다음과 같습니다. 추상 클래스를 구현하고,그 클래스를 사용하여 [기능]을 실행합니다. 하지만, 그 [기능]구현은 추상 클래스를 상속받은 구현 클래스에서 구현합니다. 설명만 들으면 아리송 한 관계로 예제를 보도록하겠습니다. 코드를 보면, SportClass라는 추상 클래스를 만들고, BaseBall Class, Soccer Class가 각각 SportClass를 상속받은 구현 클래스 입니다. 기본적으로 어떤 시점에 SportClass에서 Play를 실행시키게 되지만, 실제로 사용되는 role(기능) 은 각각의 구현 클래스가 따로 구현을 하게 됩니다. UML로 보면 Template Method Pattern은 다..
-
Adapter Pattern프로그래밍/디자인패턴 2016. 6. 7. 16:33
Adapter Pattern에 대해사 알아 보도록 하겠습니다. 해당 패턴을 알아 보기전에 한가지 문제점에 대해서 먼저 알고 넘어가야 합니다. [상황]1. [인사]를 출력하는 클래스가 존재 [추가 할 내용]1. [닉네임]을 추가로 출력 필요2. [닉네임]을 먼저 출력 하거나, 인사를 먼저 출력 할 수 있음 물론 [인사]를 출력하는 부분에서 [닉네임]을 받아서 함께 처리 하여도 됩니다. 하지만, 기존의 코드를 수정하고 싶지 않을 경우, 또는 하지 못하는 경우에 다음과 같은 방법을 사용합니다. 먼저 해당 부분은 2가지 방법이 존재하는데 interface 를 사용하는 상속으로만 해결 하는 방법과,상속, 위임(포함)을 통한 방법이 있습니다. 물론 2가지 모두 Adapter Pattern 입니다. 코드를 확인하도록..
-
Iterator Pattern프로그래밍/디자인패턴 2016. 5. 4. 16:55
이번에는 Iterator 패턴에 대해 알아보고, 해당 부분을 적용한 Unity 예제와, 조금의 응용을 같이 진행에 보도록 하겠습니다. 흔히 Iterator라 함은, 구지 디자인 패턴의 종류라기보단 컨테니어들을 따라갈때 많이 쓰던 키워드 중 하나? 정도로 많이 파악이 되어 있습니다. 실제로 그것과 크게 다르지도 않습니다. 중요한 것은, 특정 List나 Arr등 그룹지어져 있는 Object들을 순차적( 구현에 따라선 특정 구간이 될 수도... )으로 순회하면서 찾는다는 것이 중요합니다. 단지 이것을 디자인 패턴으로 표현 하였을 때 어떤식의 장점이 있는지, 그리고 어떤식으로 구현해야 하는지 확인해 본다고 보시면 될 것 같습니다. 먼저 최종 사용 코드부터 보도록 하겠습니다. 사용 코드 예제 (*사용 구현에 대해..
-
UML의 기본 구성-시퀀스 다이어그램프로그래밍/디자인패턴 2016. 5. 2. 17:09
클래스 다이어그램에 비하면 조금 더 가독성이 높은 편, 실제 내부적으로 어떻게 구성 되어 있는지 표현하는게 클래스 다이어그램이라면 시퀀스 다이어그램은, 구성된 내용들이 어떻게 동작하는지 보여 준다고 보면됩니다. 표현을 빌리면, 시간에 의해 변하지 않는 것(정적인 관계) = 클래스 다이어그램시간에 따라 변하는 것(동적인 관계) = 시퀀스 다이어그램 이라고 보시면됩니다. 실제 예제를 보면 다음과 같습니다. 1 ~ 2. 손님이 입장 후 서빙 직원에게 요리를 주문합니다. 3 ~ 4. 직원은 해당 내용을 종이에 작성 한 후 그 리스트를 요리사에게 전달 합니다. 5 ~ 6. 요리사는 해당 요리를 제작 완료된 요리를 직원에게 다시 전달합니다. 7. 직원은 해당 요리를 손님에게 전달합니다. 8. 식사 진행 9 ~ 10..
-
UML의 기본 구성-클래스 다이어그램프로그래밍/디자인패턴 2016. 5. 2. 15:36
디자인 패턴에 들어 가기에 앞서 UML을 알아둬야 할 필요성이 있습니다. Unified Modeling Language의 약자로 설계문서를 시각화 한다고 정의 되어 있습니다.지금 설명하는 것들은 모두 클래스 다이어그램입니다. 가장 기본적인 상속 구조를 알아 보도록 하겠습니다. 해당 그림은 다음과 같습니다.- 부모 클래스가 가상 클래스(이탤릭)로써, 자식 클래스가 상속을 받은 형태- 부모클래스에는 변수, 스태틱 변수( 밑줄 )가 존재- 부모 클래스는 가상함수(이텔릭)와 함수가 존재- 자식 클래스는 변수X, 부모로써 상속받은 가상함수와 스태틱함수(밑줄) 존재- 각 변수나 함수 앞에 기호는 public은 +, protected는 #, private는 -로 표기 다음은 인터페이스 설명입니다. - 가상 클래스와 ..