読者です 読者をやめる 読者になる 読者になる

Facebook Unity SDKのサンプル実行手順


Facebook SDK for Unity

 

FacebookのUnity向けSDKがあるのだけど、ドキュメントがやや古く、チュートリアルを動かすためのSDKが最新だとバージョンが合わないなど問題があったため手順を残しておきます。

この記事は2015年3月1日時点のものであり、上のような事情なのですぐにこの手順でもうまくいかなくなる可能性があります。

 

チュートリアルは以下の公式ドキュメント(英語)のものを使います

https://developers.facebook.com/docs/games/unity/unity-tutorial

 

使用したUnityのバージョンは4.6.1です。

 

まずFacebook SDK for Unityをダウンロードします。

ドキュメントに

note that this sample doesn't yet support version 6.0 and later

とあるように現時点での最新バージョン6.0ではサンプルが動作しないので5.1をダウンロードします。

f:id:kurihara-n:20150302233340p:plain

 

サンプルはgithubにあるのでそこからダウンロード。

https://github.com/fbsamples/friendsmash-unity/

全部ダウンロードするといくつかUnityプロジェクトが入っていますが、ひとまずfriendsmash_completeを今回は開きます。

この時点ではFacebookSDKをインポートしていないのでエラーがUnityコンソールにでるかと思います。

最初にダウンロードしたSDKをインポートします。

Unityのメニューから[Assets] > [Import Package] > [Custom Packages...]を選択。

SDK5.1のUnitypackageファイル(FacebookSDK-140401.unitypackage)を選びます。

インポートダイアログが表示されたらImportボタンを押します。

Unityにてインポートが行われたら一度Unityを立ち上げなおして、メニューに[Facebook]と出てくればOKです。

 

次にアプリを配置するアプリサーバの用意をします。

httpsが通ればどこでもよいのですが、

サーバの用意が特にない場合Dropboxにおいてしまうのが簡単です。

実際にアプリを公開する場合は専用に用意するべきですが、サンプルを試すだけならDropBoxでも動作には問題ありません。

Publicフォルダにアプリ用のフォルダを作ります。

公開リンクのURLをしるために適当なファイルをアップロードし、選択したときに表示される[公開リンクをコピー]をクリックしパスをコピーしておきます。

 

ここで一度Facebook側でアプリの作成を行います。

ドキュメントに書かれている時点とUIが変更されているので注意が必要です。

Facebook Developerページから[My Apps] > [Create a New App]を選択。

アプリ作成用のダイアログが出てきます。

Is this a test version of another app?はとりあえずNoにし、カテゴリにゲーム、サブカテゴリを適当なもにに設定し、Create App IDボタンを押します。

Where is your app hosted?の項目のSecure Host URLに入力をする必要があるのでDropBoxのアプリを配置するパスを指定します。

DropBoxの公開URLから最後のファイル名を削除したものを記入します。

あとに出てくる表示はとりあえず次へを押してページの最後まで行けばアプリの作成は完了です。

まだこの時点ではアプリを配置していないのでOpen your appを押すと404エラーが出ます。

アプリがUnitySDKを使うための設定をします。

Facebook Developerの画面上部の[My Apps]から先ほど作ったアプリを選択します。

左側の[Settings]を選択。

Unity IntegrationをYESに変更します。

f:id:kurihara-n:20150303001859p:plain

 

あとは実際のアプリを配置してから設定を行いますが、Unity側で使うので、App IDをコピーしておきます。

 

Unityに戻って[Facebook]メニューから[Edit Settings]を選択します。

インスペクタに設定メニューが開くのでコピーしておいたAppIDを入力します。

ProjectツリーのScenesにあるMainMenuシーンを開きます。

この時点でUnityエディタでプレイしてみるとエラーがでるかと思います。

 SDKのコードが少し古いせいで起きているので

Facebook/Script/FB.csを開き、

#if UNITY_4_5

となっている箇所を
#if UNITY_4_5 || UNITY_4_6

と変更します。

(参考にしたのはこちら

http://stackoverflow.com/questions/21815128/unable-to-verify-assembly-data-you-must-provide-an-authorization-key-when-loadi

ここに書いてあるキーの書き換えというのは現在は必要ないみたいなので#ifのバージョン指定だけ変更します

これでエディタ上でプレイはできるようになったと思います。

Loginをしようとするとアクセストークンが求められるのでひとまずは無視してビルドを行います。

UnityのBuild SettingsからPlatformにWebPlayerを選択してSwitch Platformを行ったあと、Buildをします。

 

生成されたhtmlと.unity3dファイルをDropBoxへアップロードします。

unity3dファイルのほうの公開リンクをコピーして、Facebookのアプリ設定ページのUnity Binary URLのフォームへ貼り付け[変更を保存]をします。

設定ページのキャンバスページのところにあるURL(https://apps.facebook.com/******)にアクセスすると今度はビルドしたアプリが立ち上がると思います。

Chromeの場合右クリックからプラグインの実行をする必要があるかもしれません)

ひとまず[いますぐプレイ]を押すと自分のプロフィール画像が読み込まれた状態のメインメニューが立ち上がり、そこまでいけばオッケーです。

 

最初に書きましたが現時点での動作手順なのでサンプル側に更新があれば対応が必要です。