NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • NGM 5
  • 매뉴얼

    NGM 5의 매뉴얼입니다.

    NGM 5

    NGM 5의 매뉴얼입니다.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    커스텀 [워밍업] 커스텀 펑션 - 아웃풋에 로그 남기기.

    페이지 정보

    본문

    안녕하세요. 소심비형입니다. 요즘 유튜브를 보고 있으면 정말 우리나라는 사기꾼들이 많다는걸 새삼 느끼게 됩니다. 여러분도 항상 조심해야 합니다-_-; 사기치는 품목도 다양하죠? 중고차는 뭐 입이 아플 정도고요. 아파트, 토지등등... 중고나라에서 거래되는 전자 제품들~ 정말 너무한다 싶기도 하고요. 사기 범죄에 대해서 처벌이 좀 강해졌으면 좋겠습니다-_-; 아무튼... 오늘도 메뉴얼 작성에 열을 올려봅니다. 새로운 기분으로 시작하기 위해 새 프로젝트를 만들어서 해볼께요. 비주얼 스튜디오를 실행하고 새로 만들기 > 프로젝트를 선택하세요.

    img.png

     

     

     

    아래 절차대로 새로운 프로젝트를 생성 하세요. 이름은 CustomFunction으로 만들도록 하겠습니다.

    1. 왼쪽 프로젝트 템플릿 카테고리에서 Visual C# 선택
    2. 클래스 라이브러리 (.NET Framework) 선택
    3. 이름에 CustomFunction 입력
    4. 프로젝트가 만들어질 위치 선택
    5. .NET Framework 4.6.1 선택
    6. 새 Git 리포지토리 만들기 체크 해제 (Git을 사용한다면 선택)
    7. 확인 버튼을 클릭하여 작업 완료
    img.png

     

     

     

    프로젝트를 생성하면 기본 클래스 Class1.cs가 만들어집니다. NGM에서 사용하려면 클래스의 이름이 XxxModel.cs처럼 마지막에 Model로 끝나야 합니다. 그래서 이름을 변경해줘야 합니다. Class1.cs 파일에서 우클릭 후 이름 바꾸기를 선택하세요.

    img.png
     
     

     

    이름을 OutputModel로 변경하면 아래와 같은 Alert 창이 표시됩니다. 이 창이 표시되는 이유는 이렇습니다. 이 클래스를 참조했던 모든 클래스에서 변경된 이름으로 수정할지 물어보는겁니다. 예를 들어서 핸드폰에 홍길동 친구를 저장해놨는데, 홍길동이 개명을 해서 고길동으로 변경했을 때 자신을 등록한 모든 친구들 핸드폰의 이름을 자동으로 변경할지 물어보는겁니다. 지금은 Class1.cs를 참조하는 어떤 클래스도 없기 때문에 예, 아니오 아무거나 해도 상관 없습니다.

    img.png

     

     

     

    NGM에서 제공하는 프레임워크를 참조 추가해야 합니다. 그래야~ NGM에서 제공하는 편의 기능들을 사용할 수 있기 때문이죠. 아래 그림처럼 CustomFunction 프로젝트 밑에 참조에서 우클릭 후 참조 추가를 클릭하세요.

    img.png
     
     

     

    NGM 프레임워크를 사용하기 위해 라이브러리를 추가합니다. 여러번 동일한 작업을 해봤기 때문에 이제는 메뉴얼을 안보고도 추가할 수 있을겁니다.

    1. 찾아보기 클릭
    2. 찾아보기 버튼 클릭
    img.png
     
     

     

    내문서에 NGM5폴더로 이동합니다. 이 안에 FunctionExtension(도구 확장) 폴더로 들어가세요. NGM.dll, NGM.Models.dll, NGM.Models.Interface.dll이 보입니다. 모두 선택하고 추가하세요.

    img.png
     
     

     

    참조에 3개의 dll이 추가된 것을 확인할 수 있습니다. 이렇게 해서 아웃풋에 로그를 기록하는 펑션을 만들기 위한 모든 준비가 완료되었습니다.

    img.png

     

     

     

    이번에는 BaseCustomFunctionModel을 상속 받도록 선택해야 합니다. 그리고 자동으로 추상 클래스를 구현하세요~ Tool이 아니라 Function입니다^^

    img.gif

     

     

     

    이 펑션은 아웃풋 창에 로그를 기록하는 아주 단순한 예제입니다. 코드가 복잡하지도 않고, 어려운 내용도 없습니다^^; 전체 코드는 아래와 같습니다.

    OutputModel.cs
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using NGM.Interface;
     
    namespace CustomFunction
    {
        public class OutputModel : NGM.Models.Interface.BaseCustomFunctionModel
        {
            public override string DisplayCategory { get { return "아웃풋 카테고리"; } }
     
            public override string DisplayName { get { return "아웃풋 함수"; } }
     
            public override void Execute(IMainView mainView, IPlayer player)
            {
                player.WriteOutput("플레이어 아웃풋입니다.");
                mainView.WriteOutput("ID""Description""매인뷰 아웃풋입니다.");
            }
        }
    }
    cs
     

     

    솔루션을 빌드하고 NGM에 추가해야겠죠? 아래 그림을 참고해서 솔루션을 다시 빌드합니다.

    img.png

     

     

     

    빌드가 성공하면 아래처럼 NGM을 실행하고 관리자 메뉴의 함수 모듈 설치를 클릭하세요.

    img.png
     
     

     

    오늘 새로 만든 프로젝트의 폴더로 이동하세요. bin > Debug 폴더안에 있는 CustomFunction.dll을 선택하고 하단의 열기를 클릭하세요.

    img.png
     
     

     

    함수 모듈이 NGM에 설치 되었습니다. 아래와 같이 스크립트에 추가하고 실행 해보세요.

    1. 좌측 하단에 사용자 함수 탭 클릭
    2. 아웃풋 함수 클릭
    3. 스크립트로 드래그 앤 드롭하여 추가
    4. 스크립트 실행 클릭
    img.png

     

     

     

    여러분도 아래와 같은 결과를 확인할 수 있을겁니다. 생각보다 간단하죠? 이미 눈치 채신 분들도 계실겁니다. IMainView, IPlayer 인터페이스들을 상속 받아서 내부를 구현하면 매크로 엔진에서 처리가 된다는 것을 말입니다. 이제 천천히 하나씩 알아가 보도록 하죠~

    img.png

     

     

     

    오늘은 말 그대로 워밍업 차원에서 간단하게 매인뷰에 있는 아웃풋 창에 로그를 기록하는 방법에 대해 알아봤습니다. 다음 예제는 매인뷰와 상호 작용할 수 있는 아이템으로 찾아뵙도록 하겠습니다.

     

    개발자에게 후원하기

    img.jpg

     

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.