Shooting Game チュートリアル iOS対応 第01回
すすめていきます。
こちらもおとなしく、作成済みプロジェクトをDLしてそれを開きます。
いつもどおりにアップデートの案内が出るので承諾。
1.1 シェア機能を実装する
まずはテクスチャのDL。
そしてコードを書き進める。
なるほど、iOSのコードを入れる処理があるのね!よかった!
externって何?
extern 修飾子は、外部で実装されるメソッドを宣言するために使用します。
なるほど。
Application.CaptureScreenshot ("screenShot.png");
スクショの取り方もわかった。
なんでOnGUIのところはif文なんだろう?
なぜ if 文で囲っているかというと, GUI.Buttton は押された時のみ true を返すので
こうすることで押した時のみ行う処理を書くことができます.
(引用:[Unity][GUI] スクリプトから Button を作ろう - Qiita)
とりあえず、カッコ内で生成しておけば押された時にTrueを返す、と覚えておけばいいのかな。
つづいてネイティブコードを書く!
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];
}
}
でも、最初なんか狭いよ。
そのあとはいいんだけど。
ということで完成ファイルを落として比べてみることにします。
…。
同じようです。
でもまあ実装方法がわかったので、自分のプロジェクトにもこれで入れられるね!
UIActivityViewController以外でも試してみたい。