2017. 10. 16. 16:22

안녕하세요. 게임개발자 놀이터 입니다.


네이버 플러그 분석 포스팅입니다.


분석 내용은 Plug Unity 을 보고 만들었습니다.


감사합니다.



가로 모드, 세로 모드 설정방법



[Android]

Android 환경에서는 별로 설정없이 자동으로 가로, 세로가 적용 됩니다.


[IOS]

NCSDK / Plugins / IOS / NCSDKUnityManager.mm 을 열어서 

 



을 모드에 맞춰서 다른 한쪽을 주석 처리 하면 됩니다.



감사합니다

Posted by 시리시안
2017. 10. 16. 16:15

안녕하세요. 게임개발자 놀이터 입니다.


네이버 플러그 분석 포스팅입니다.


분석 내용은 Plug Unity 을 보고 만들었습니다.


감사합니다.




본 내용은 사진 한장으로 설명이 가능합니다.



감사합니다.

Posted by 시리시안
2017. 10. 16. 15:45

안녕하세요. 게임개발자 놀이터 입니다.


네이버 플러그 분석 포스팅입니다.


분석 내용은 Plug Unity 을 보고 만들었습니다.


감사합니다.


NaverPlug SDK 분석 -02

 

1.    클래스 분석


IGLink , GLink : 플러그를 사용하기 위한 인터페이스 클래스

GLinkAndroid : Android용 플러그와 연동하기위한 클래스

GLinkIOS : IOS용 플러그와 연동하기 위한 클래스

GLinkConfig : 플러그 초기화를 위한 클래스

GLinkLanguage : 다국어 지원을 위한 언어 목록

GLinkNaverId : 네이버 아이디 로그인을 위한 클래스

GLinkRecord : 화면 녹화를 위한 클래스

GLinkStatistics : 결제모듈을 위한 클래스

 

  

2.    플러그 초기화

 

n   GLinkConfig.cs 파일에 초기화 정보를 설정한다

u  국내 네이버 카페만 지원할 경우

n   NaverLoginClientId : 네이버 개발자 센터에 애플리케이션을 등록하고 받은 클라이언트 아이디

n    NaverLoginClientSecret : 네이버 개발자 센터에 애플리케이션을 등록하고 받은 클라이언트 시크릿

n   CafeId : 네이버 카페를 개설하고 받은 카페 아이디

u   글로벌 커뮤니티를 대상으로 하는 다음 두 항목은 주석으로 처리한다

n    NeoIdConsumerKey : 커뮤니티를 개설하고 받은 컨슈머키

n    NGlobalCafeId : 커뮤니티를 개설하고 받은 커뮤니티 아이디

u   글로벌 커뮤니티 네이버 카페일 경우

n    위의 2개의 NeoIdConsumerKey, NGlobalCafeId 을 주석처리 하지 않고 알맞은 정보를 넣는다.


 

 

[Android]

l  글로벌 또는 국내 카페 상황에 맞춰서 코드를 주석 처리하거나 해제한다.


 

[IOS]

l  글로벌 또는 국내 카페 상황에 맞춰서 코드를 주석 처리하거나 해제한다.




Posted by 시리시안
2017. 10. 16. 12:16

안녕하세요. 게임개발자 놀이터 입니다.


오늘은 NaverPlug SDK Unity 이용한 Android / IOS 연동 방법 에 대해 포스팅 하려합니다~


그럼 바로 들어갑니다!





NaverPlug SDK Unity 이용한 Android / IOS 연동 방법

 

IOS 11 대응 하기 위해 2.52버전으로 다운로드 받습니다.

https://github.com/naver/cafe-sdk-unity

 



 

압축을 해제 , lib 안에 있는 Unitypackage 프로젝트 폴더에 풀어줍니다.

 

 


 

테스트를 위해 Sample 폴더에있는 NCSDK_Sample.Scene 열어봅니다.

 

 

빌드 해봅시다.

 

Anroid 경우, 아무 문제 없이 바로 빌드가 됩니다.

 

하지만IOS 경우빌드 세팅해야 부분이 있습니다.

 

 

IOS

l 세로 모드 설정

세로 모드로 진행하는 게임을 개발할 때는 NCSDK/Plugins/iOS 폴더에 있는 NCSDKUnityManager.mm 파일에서 NCSDKManager.setOrientationIsLandscape 속성을 NO 설정합니다.

 


 

1.  NCSDK/Plugins/IOS/NaverCafeSDK.bundle IOS에서 include 되도록 설정해줍니다.

 



 

(Two Column Layout 사용하고 있다면, 왼쪽 폴더 경로상에서 Bundle 선택하면 인스펙터에 정보가 나오지않습니다. 오른쪽 파일 창에서 클릭 해줘야 합니다. )

 

2.  NCSDK/Plugins/IOS/ NaverAuth/ NaverAuth.bundle 마찬가지로 IOS에서 include 되도록 설정 해줍니다.

 


 

3.  IOS 빌드해서 XCODE 열어 봅니다.

 


 

4.  빌드를 하면 엄청난 에러를 있습니다. 이제부터 에러들은 해결하기 위해 설정을 할것입니다.

 


 

5.  Build Settings Other Linker Flags –ObjC 추가합니다.

 


 

6.  Build Phases Link Binary With Libraries 다음 라이브러리를 추가합니다. 추가한 라이브러리의 Status Required 설정합니다.

MobileCoreServices.framework

SystemConfiguration.framework

MediaPlayer.framework

AVFoundation.framework

CoreMedia.framework

AssetsLibrary.framework

Security.framework

ImageIO.framework

QuartzCore.framework

Webkit.framework

ReplayKit.framework(라이브러리의 Status Optional 설정합니다)

 



 

7.  다시 한번 빌드하면 정상적으로 빌드가 되는 것을 확인 하실 있습니다.

 


Posted by 시리시안
2017. 9. 7. 11:30

 

안녕하세요. 게임개발자 놀이터입니다.


오늘은 유니티에서 지원하는 협업도구인 Unity Collaboration에 대해서 적어보려고 합니다.


https://unity3d.com/kr/unity/features/collaborate


Unity 2017이 되면서 Unity 5.3에서부터 베타로 사용가능했던 Unity Collaboration가 베타가 종료되면서 사용이 가능해졌다고 합니다.


설정 방법은 


먼저 유니티 Window 메뉴에서 Services를 들어갑니다.



그후, 서비스 창에서 Off로 되어있는 Collaboration을 On으로 바꿔줍니다.





스위치 버튼을 눌러서 작동해주시면 됩니다.




그럼 우측 상단에 있는 Collab 버튼을 누르고 메세지를 적은 다음에 Publish Now! 버튼을 눌러주면 완료입니다!




팀원 초대 및 확인을 위해


https://developer.cloud.unity3d.com/projects/


에 접속하여 유니티 계정으로 로그인 합니다.


그럼 Collaborate를 ON 시킬 프로젝트가 있을겁니다.




클릭하여 접속합니다.





MultiPlayer나 Cloud Build 같은 다른 여러 기능들이 다 비활성화 되어있지만, 지금은 사용하는게 아니기 때문에, 상단에 있는 Users 창을 눌러서 이동합니다.




팀원의 이메일 주소를 윗 빈칸에 적고 Add를 누르면 팀원이 추가됩니다.

팀원을 추가를 하면 권한을 설정할 수 있습니다.

User은 프로젝트를 수정은 할 수 없고 테스트 플레이 정도만 가능한 권한이고

Manger은 프로젝트 수정 및 대부분의 수정이 가능한 권한

Owner은 프로젝트 전체를 수정할 수 있는 권한입니다.



이제 프로젝트에 팀원으로 추가한 팀원의 Unity를 실행하면 왼쪽 메뉴에서 On Disk가 아닌 On The Cloud를 눌러보면 프로젝트가 켜지면서 동시에 다운로드를 받습니다.


다운로드 후 프로젝트를 수정했다면 Collab에 들어가서 처음 업로드할때처럼 업로드하면 수정한 부분에 대해서만 업로드가 됩니다.


그럼 다른 팀원은 Collab을 눌러 Update Now! 버튼을 누르면 수정된 부분에 대해서만 업데이트를 진행합니다.




현재 유니티 Collaboration는 프로모션 기간입니다. ( 2017년 10월 5일까지)




프로모션 기간중엔 제한 없이 이용할 수 있지만 프로모션 기간이 끝나면, 무료사용자는 최대 3명의 팀원과 1기가의 클라우드 저장공간과 업로드 및 빌드 공유만 가능하고 매월 9달러 (최대 3명, 추가로 1명당 7달러)를 결제하면 25기가 저장공간과, 자동 빌드 기능을 받을 수 있다고 합니다.


유니티 프로 및 플러스 버전 사용자는 이미 유니티 팀 서비스를 받고 있어서 바로 위와 같은 효과를 받을수 있다고 합니다.


읽어주셔서 감사합니다.


Posted by 시리시안
2017. 8. 20. 00:36



안녕하세요 게임 개발자 놀이터입니다.


제가 만든 한글 패치를 이용해 제가 수정하지 않은 부분을 완벽 번역한 분꼐서 나타나셨네요 ㅎㅎ


밑에있는 재 패치를 이용하셔도 되지만, Collecter GP 님에서 하신 패치도 굉장히 좋은거 같습니다.


http://steamcommunity.com/sharedfiles/filedetails/?id=1122766625


그럼 좋은 하루 되세요~



위 링크를 통해 받아주시는게 더 좋을꺼 같습니다 ㅎㅎ


=====================================================================



안녕하세요. 게임개발자 놀이터입니다.


패치 1.1버전을 올려드립니다.


수정사항은..


댓글로 애쉴링의 스킬 오역이 있다고 알려주셔서 그부분을 수정했습니다.


Gigantic Kor Patch(1.1).zip



제가 한 스킬 번역은 대부분 


스팀 커뮤니티에 올라온 번역


https://steamcommunity.com/sharedfiles/filedetails/?id=1085603713


을 보고 참고하여 만들었습니다.



혹시 그뒤에 스킬이 바뀌거나, 스킬 효과가 바뀐게있다면.. 확인한다고했지만 확인이 안됬을수도있습니다.


댓글로 알려주시면 빠르게 수정해서 다시 올리도록 하겠습니다.



감사합니다.




Posted by 시리시안
2017. 4. 29. 14:53





버전 증가로 배포를 중지합니다.



=================================================================================


안녕하세요. 게임개발자 놀이터입니다.


친구의 추천으로 듀얼리스트 게임을 재밌게 즐겨했는데, 현재 버전에 맞는 한글패치가 없어서 만들어봤습니다.


정식 한글화가 없는 게임이라, 카드 명칭까지 바꿔야하나 고민했지만.. 


그래도 기왕 한글화 하는거 카드 명칭도 전부 변경했습니다.


완성은 어제 되었으나, 어제 1.84 패치가 진행되는바람에.. 다시 작업하게되었습니다.


감사합니다.




주의 사항 


현재 버전은 듀얼리스트 1.84 에서만 사용 가능한 버전입니다.

듀얼리스트가 패치되어 버전이 다를경우 패치시 실행이 불가능합니다.



현재 이 한글패치는 완성된것이 아닙니다. 오역이 의심되는 곳엔 (오역의혹xx)와 더불어 중간중간 영어가 바뀌지 않은 부분이 있습니다. 참고부탁드립니다.

해당부분을 자세히 댓글로 달아주시면 추가 수정을 하도록하겠습니다.


패치 파일 비밀번호 : http://silisian.tistory.com/


경로는 기본 D드라이브에 스팀 경로로 되어있습니다. 

자신의 경로에 맞춰서 수정해주세요.







Posted by 시리시안
2017. 4. 6. 13:21

안녕하세요. 게임 개발자 놀이터 입니다.


C#에서 자주썻던 이벤트 콜백 함수를 C++에서 사용하고 싶어서 알아봤습니다.


여러번 실패 끝에 성공해서 이곳에 공유하려고 합니다~


코드먼저 보시죠!


헤더 파일입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Button : public CSprite
{
public:
    Button();
    ~Button();
 
private:
    typedef std::function<void()> Event; //인수가 없는것
 
    short state;
    Event OnClick;
    Event OnMouseOver;
    Event OnMouseOut;
 
public:
 
    void SetOnClick(Event Function);
    void SetOnMouseOver(Event Function);
    void SetOnMouseOut(Event Function);
 
    virtual void MouseEvent(DIMOUSESTATE MouseState) override;
 
 
 
};
cs


여기서 상속받는 CSprite와 가상함수 MouseEvent는 무시하셔도됩니다. ( 제가 만든 엔진에 일부입니다..)


다음은 소스 코드입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Button::Button()
{
    state = 0;
    OnClick = NULL;
    OnMouseOver = NULL;
    OnMouseOut = NULL;
}
 
 
Button::~Button()
{
}
 
void Button::SetOnClick(Event Function)
{
    OnClick = std::move(Function);
}
void Button::SetOnMouseOver(Event Function)
{
    OnMouseOver = std::move(Function);
}
void Button::SetOnMouseOut(Event Function)
{
    OnMouseOut = std::move(Function);
}
 
void Button::MouseEvent(DIMOUSESTATE MouseState)
{
    CPoint mouse = Director::GetInstance()->Get_Mouse();
 
    if (this->GetBoundingBox().containsPoint(mouse) && state != 1)
    {
        //MouseOver
        if (OnMouseOver != NULL)
            OnMouseOver();
        state = 1;
    }
    else if (!this->GetBoundingBox().containsPoint(mouse) && state != 0)
    {
        //MouseOut
        if (OnMouseOut != NULL)
            OnMouseOut();
        state = 0;
    }
    else if (this->GetBoundingBox().containsPoint(mouse) && state == 1)
    {
        //MouseClick
        if (MouseState.rgbButtons[0& 0x80)
        {
            if (OnClick != NULL)
                OnClick();
            state = 2;
        }
    }
}
cs



음.. 소스는 딱히 볼게 없군요!


std::move로 넣어줘야 한다는것 정도!?


그럼 적용법을 알아볼까요.


1
2
3
4
5
6
7
8
9
10
11
12
void CTestScene::TestFunction()
{
    CCLog("버튼 테스트 함수 호출!");
}
 
void CTestScene::ButtonInit()
{
    ButtonTest = new Button();
    ButtonTest->SetOnClick(std::bind(&CTitleScene::TestFunction, this));
 
    m_default_Layer->AddChild(ButtonTest);
}
cs


여기서 중요한 부분은 9번째줄이네요


std::bind로 넘겨주는것입니다.



음.. 뭐랄까.. 무언가 만들었다기보단 있는 기능을 사용한거라 글을 적기 애매하네요.


질문은 댓글로 부탁드려요

Posted by 시리시안
2017. 4. 2. 21:39


오늘은 인터페이스를 짜는데 오래 걸렸다.



기본적인 캐릭터를 짜고 상속받아서 학생만 우선 구현했다.


아마 학생과 고대의 존재 1명만 우선 구현해서 진행할듯..


아직 카드 드로우 기능과 지역이동.. 전체적인 페이즈가 구현이 안되서 테스트도 잘안되네..


블로그에 글쓸만큼 뭔가 보일정도로 작업이 된게 아니라 씁슬하지만 그대로 남겨놔야지

(GIF입니다. 클릭해주세요)




포토샵 다루는게 정말 힘들다.. ㅠㅠ

Posted by 시리시안
2017. 4. 2. 00:40


인게임 UI를 만들고보니


캐릭터 선택과 고대의 존재 선택이 필요하다는걸 알았습니다.


랜덤 선택과 직접 선택이 가능해야하기 때문에.



인게임이 들어가기전에 위와같이 띄어주기로했습니다.



그리고 게임 매니저에 다음과 같이 추가했습니다.



그리고 버튼을 이용해서 각종 보스와 각종 캐릭터를 셀렉하게 만들었습니다


(하지만 캐릭터별, 보스별 기능은 안만들었으니..)


(클릭하시면 GIF로 애니메이션 재생이 됩니다.)





내일은 드디어 인게임..!!


Posted by 시리시안