UNITY

Quick Start

最新バージョンダウンロード

1. プロジェクト設定

NaverGame SDKを使用するためにはUnityで以下のとおり開発環境を設定してください。

  • UnityのメニューでAsset > Import packageをクリックしてからCustom PackageのダイアログボックスでダウンロードしたNaverGameSDK-x.x.x.unityPackageファイルを選択してください。

本ガイドはUnity2019.4.20fバージョンを基準として作成されています。

  • UnityのメニューでAsset > Import packageをクリックしてからCustom PackageのダイアログボックスでダウンロードしたNaverGameSDK-x.x.x.unityPackageファイルを選択してください。

  • Custom PackageのダイアログボックスでImportをクリックすると、NGSDKフォルダとPluginsフォルダが作成されます。

  • NGSDKフォルダのSampleフォルダにあるSampleSceneファイルには基本実行ボタンが含まれています。Unityバージョンが異なると、SampleSceneが正常ローディングされないことがあります。この場合は、以下のガイドを参考にして新しいUIを構成してください。

Canvasにボタンを作成する

  • GameObject > UI > CanvasをクリックしてUGUI Canvasを作成してください。

  • NGSDKフォルダのSampleフォルダにあるSampleButton.Prefabを、作成したCanvasの下位にドラッグして入れてください。NaverGameSDKで基本的に提供するボタンが作成されます。

  • NaverGame SDKの実行ボタンは開発の利便性のためNaverGame SDKが基本的に提供するボタンで、直接作成することもできます。SampleBehaviour.csファイルにサンプルコードが作成されています。

  • NaverGame SDKの実行ボタンは、UnityのUGUIをベースに作成されています。UGUIを使用しなかったり他のライブラリを使用する場合でも、SampleBehaviour.csファイルを参照して使用することができます。

OS別のNaverGame SDKに関する詳細は、GitHubリポジトリをご参考にしてください。

2. iOSの追加設定

NAVERゲームのiOS SDKは、iOS 12.0以降のバージョンに対応しています。

iOS用ゲームを開発する場合は、以下の事項を追加で設定する必要があります。

2-1 .bundleファイルのリンク

Unity 5.4.0f3以上のバージョンは、iOS用アプリケーションをビルドするときに.bundleファイルがリンクされないよう設定されています。NNGSDK.bundleファイルをリンクするよう、以下のようにSelect for platforms for pluginiOSを選択する必要があります。

2-2. Xcodeの設定

Xcodeで以下のように開発環境を設定してください。

  • TARGETSの項目のうちフレームワークを選択してください。

  • Build Settingタブを選択してLinking項目でOther Linker Flagsを探してください。

    • BasicまたはCustomizedモードはOther Linker Flagが見えない場合もあります。この場合は、Allモードを選択してください。

    • 画面右上にある検索ウィンドウにOther Linker Flagを入力すると容易に見つけることができます。

  • Other Linker Flags-ObjCオプションと-lc++オプションを追加してください。

  • Info.plistに以下のユーザー権限取得オプションを追加してください。

    • Privacy - Camera Usage Description

    • Privacy - Photo Library Usage Description

  • TARGETSの項目のうち実行されるアプリを選択してInfoタブのURL Types項目にIdentifier値とURL Schemes値を入力してください。

  • Identifier値は当該TARGETGeneralタブで確認できます。

  • URL Schemes値にはNAVER IDでログイン開発者センターにアプリケーションを登録時に入力したURL Scheme値を入力してください。

NaverGameSDKを使用するためには、まずinitメソッドを呼び出さなければなりません。

init()メソッド

init()メソッドはNaverGameSDKをセットするメソッドです。必要な引数は以下のとおりです。

  • loungeId: 公式ラウンジを申請時に受け取ったLoungeId

  • clientId: NAVER IDでログイン開発者センターでアプリケーションを登録時に受け取ったクライアントID

  • clientSecret: NAVER IDでログイン開発者センターでアプリケーションを登録時に受け取ったクライアントシークレット

public void init(string loungeId, string clientId, string clientSecret);

以下はinit()メソッドを実装した例です。

GLink.sharedInstance().init(
    "naver_game_4developer", 
    "UKvNABLDsyEJusJGsXL2",
    "rK4suc_Qd0"
    );

terminateSdk()メソッド

Terminate()メソッドは、NaverGameSDKを終了させるメソッドです。特定の状況でsdkを終了させる必要がある場合に呼び出します。例えば、GLinkDelegateコールバックを通じて送信されるインゲームメニューコードを実行するときには、必ずTerminateSdk()メソッドを呼び出してsdkを閉じなければなりません。

void terminateSdk();

以下はterminateSdk()メソッドを実装した例です。

Glink.sharedInstance().terminateSdk()

executeHomeBanner()メソッド

登録したバナーウィンドウを表示させるメソッドです。

public void executeHomeBanner()

以下はexecuteHomeBanner()メソッドを実装した例です。

Glink.sharedInstance().executeHomeBanner()

executeSorryBanner()メソッド

点検用または特定のお知らせページを表示させます。このページは他の画面への移動が制限されます。

public void executeSorryBanner()

以下はexecuteSorryBanner()メソッドを実装した例です。

Glink.sharedInstance().executeSorryBanner();

executeBoard(int boardId)メソッド

公式ラウンジ管理ページ > SDK管理 > 掲示板管理ページで登録した特定の掲示板を直接実行させるメソッドです。

public void executeBoard(int boardId);

以下はexecuteBoard()メソッドを実装した例です。

Glink.sharedInstance().executeBoard(1);

executeFeed(long feedId, bool isTempFeedId)メソッド

登録された投稿の番号で直接実行するメソッドです。予約機能によって登録した予約投稿の場合は、予約投稿の番号をFeedIdに入力してIsTempFeedIdをTrueと入力してください。

予約投稿が掲示されるまでは、メソッドを実行しても投稿は表示されません。

  • FeedId: 投稿または予約投稿の番号

  • IsTempFeedId: FeedIdが投稿の場合はfalse、FeedIdが予約投稿の場合はtrue

void executeFeed(long feedId, bool isTempFeedId);

以下はexecuteFeed()メソッドを実装した例です。

Glink.sharedInstance().executeFeed(50154, true);

getCountryCode()メソッド

端末のcountryCodeを取得します。

public string getCountryCode(Activity activity);

countryCodeは2文字のアルファベットで構成された国コード(ISO 3166-1 alpha-2)です。これを活用すると、コード内で国別に分岐処理することができます。主な国コードは以下のとおりです。その他の国コードはリンクをご参考にしてください。

国コード

CN

中国

JP

日本

KR

韓国

TH

タイ

US

米国

以下はgetCountryCode()メソッドを使用して韓国の場合にのみSDKを初期化してバナーを呼び出す例です。

if (GLink.sharedInstance().getCountryCode().Equals("KR"))
{
    GLink.sharedInstance().init("LoungeId","ClientId","ClientSecret");
    GLink.sharedInstance().executeHomeBanner();
}

GlinkDelegateデリゲート

Sdk内部で特定のイベントが発生した場合、eventを通してこれをGameEngineに知らせます。

SdkOpenedDelegateイベント

NaverGameSdkが実行されたときに発生します。

public delegate void SdkOpenedDelegate();
public static event SdkOpenedDelegate sdkOpenedEvent;

登録方法は以下のとおりです。

private void Awake()
{
    GLinkDelegate.sdkOpenedEvent += SdkOpenedEvent;
}
void SdkOpenedEvent()
{
    Debug.Log("BannerOpenedEvent");
}

SdkClosedDelegateイベント

NaverGameSdkが終了したときに発生します。

public delegate void SdkClosedDelegate();
public static event SdkClosedDelegate sdkClosedEvent;

登録方法は以下のとおりです。

private void Awake()
{
    GLinkDelegate.sdkClosedEvent += SdkClosedEvent;
}
void SdkClosedEvent()
{
    Debug.Log("BannerClosedEvent");
}

SdkCallInGameMenuCodeデリゲート

NaverGameSdkでインゲームメニューコードを実行する必要があるときに発生します。公式ラウンジの管理ページ > SDK管理 > バナー管理ページでバナーに「インゲームメニュー」を登録したときに使用します。AndroidとiOSの各プラットフォームによって登録した値が各自伝達されるため、別の値を入力した場合は各自処理しなければなりません。

public delegate void SdkCallInGameMenuCode(string InGameMenuCode);
public static event SdkCallInGameMenuCode sdkCallInGameMenuCode;

登録方法は以下のとおりです。

private void Awake()
{
    GLinkDelegate.sdkCallInGameMenuCode += SdkCallInGameMenuCode;
}
void SdkCallInGameMenuCode(string inGameMenuCode)
{
    GLink.sharedInstance().terminateSdk();
    Debug.Log("SdkCallInGameMenuCode " + inGameMenuCode);
}

ビルド

各プラットフォームに合わせてビルドして、正常にビルドされるとSDKを使用できるようになります。

1. 発生する可能性のあるビルドエラー

1-1. Androidビルドエラー

横モード、縦モード

NaverGameSDKは横モードと縦モードのどちらにも対応しています。

Android、iOSのどちらの環境も、別途に設定しなくても画面の縦横状態によって横モード、縦モードが自動的に適用されます。

Last updated