どこまでも自由な日々

パソコン初心者主婦のブログです。

Shooting Game チュートリアル iOS対応 第01回

プラグインを作成する(シェア機能)

iOSで、SNSシェアプラグインを入れるチュートリアル

すすめていきます。

 

こちらもおとなしく、作成済みプロジェクトをDLしてそれを開きます。

いつもどおりにアップデートの案内が出るので承諾。

1.1 シェア機能を実装する

まずはテクスチャのDL。

そしてコードを書き進める。

なるほど、iOSのコードを入れる処理があるのね!よかった!

externって何?

extern 修飾子は、外部で実装されるメソッドを宣言するために使用します。

 なるほど。

        Application.CaptureScreenshot ("screenShot.png");

スクショの取り方もわかった。

なんでOnGUIのところはif文なんだろう?

なぜ if 文で囲っているかというと, GUI.Buttton は押された時のみ true を返すので
こうすることで押した時のみ行う処理を書くことができます.

 (引用:[Unity][GUI] スクリプトから Button を作ろう - Qiita

とりあえず、カッコ内で生成しておけば押された時にTrueを返す、と覚えておけばいいのかな。

f:id:moph-moph:20150529091313p:plain

つづいてネイティブコードを書く!

Plugins/iOSフォルダ内にmmファイルを入れておくと、ビルドしたXcodeプロジェクトに自動でファイルを追加してくれます。

へぇ。

そんでファイルの作成(手動)

.mmって??.mじゃないの?と思っていたら。

Objective-C++(Objective-Cの中でC++を使う)では.mm。

.mmなら#importとかいらない、ということらしい。合ってる?

 

そしてソースコードを見ていく。

#endif

extern "C"{

}

お作法ということで書けばいいのかな。

 

と思ったらエラー。

autoreleaseと#endifを消してコンパイルOKになりました。

あと、platformもiOSにしておきました。

extern "C"{

void Shooting_Share(const char *text, const char *url, const char *textureURL){

NSString *_text = [NSString stringWithUTF8String:text];
NSString *_url = [NSString stringWithUTF8String:url];
NSString * _textureURL = [NSString stringWithUTF8String:textureURL];

UIImage *image = nil;

if([_textureURL length] != 0){
image = [UIImage imageWithContentsOfFile:_textureURL];
}

NSArray *actItems = [NSArray arrayWithObjects:_text, _url, image,nil];

UIActivityViewController *uiActivityViewController = [[UIActivityViewController alloc]initWithActivityItems:actItems applicationActivities:nil];

[UnityGetGLViewController() presentViewController:uiActivityViewController animated:YES completion:nil];
}
}

 でも、最初なんか狭いよ。

 f:id:moph-moph:20150531163338p:image

そのあとはいいんだけど。

f:id:moph-moph:20150531163520p:image

 

ということで完成ファイルを落として比べてみることにします。

…。

同じようです。

 

でもまあ実装方法がわかったので、自分のプロジェクトにもこれで入れられるね!

UIActivityViewController以外でも試してみたい。