Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

Share

Unityネイティブプラグインの勧め 〜UnityでiOS, AndroidのAPIを利用する方法〜

Download to read offline

KLab福岡Meetup「作って終わりじゃない!プロのゲームづくり」
https://klab-fukuoka-meetup.connpass.com/event/212061/
のセッション資料です。

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Unityネイティブプラグインの勧め 〜UnityでiOS, AndroidのAPIを利用する方法〜

  1. 1. Unityネイティブプラグインの勧め
 〜UnityでiOS, AndroidのAPIを利用する方法〜
 KLab株式会社 牧野龍太郎
  2. 2. 自己紹介
 ● 名前:牧野龍太郎
 ● 勤務先:KLab福岡事業所勤務
 ● 職種:クライアントエンジニア
 ● 2015年KLab入社(在籍期間自体は10年以上)
 ● 主な経歴
 ○ 携帯サイトのサーバサイド(Java)開発、および運用
 ○ ゲームアプリのクライアント(iOS,Android)、サーバサイド開 発、および運用
 ○ 現在Unityネイティブプラグインの開発に従事
 ● 3人の子持ち

  3. 3. もくじ
 ● モバイルゲームに必要な機能について ● 共通ライブラリとは ● ネイティブプラグインとは
  4. 4. ● モバイルゲームに必要な機能について ● 共通ライブラリとは ● ネイティブプラグインとは

  5. 5. KLabでは様々なモバイルゲームを作っています
 
 
 アクション ゲーム リズムゲーム シミュレーション ゲーム etc... RPG
  6. 6. モバイルゲームに必要な機能とは?

  7. 7. ゲームとしてまず必要になるのがゲームのコア部分の機能
 パズルゲーム ・パズル要素 ・ステージ ・クリア要素 ・etc... リズムゲーム ・音楽に合わせたタップパ ターンを表示 ・タップ判定 ・クリア要素 ・etc... RPG ・レベルやスキルなどの 成長要素 ・キャラクターや武器、魔 法などのエフェクト ・ストーリー ・etc... などゲームによって様々ですが

  8. 8. モバイルゲームを作るには
 コア部分以外にも必要となる機能がある

  9. 9. たとえば・・・
 
 ● プラットフォーム上(App Store, Google Play)の課金処理
 ● Push通知
 ● データ引き継ぎ機能
 ● アプリ内チャット機能
 ● 知人へのシェア機能
 ● お知らせ表示(WebView)
 ● etc...

  10. 10. それぞれのゲームでその機能を都度作るのは
 面倒だし効率が悪い

  11. 11. ゲームのコア部分以外の共通機能を抽出して
 再利用できるようにしよう
 ↓↓
 共通ライブラリを作ろう!

  12. 12. KLabではアプリ開発者がゲーム開発に集中できるように
 共通部分のライブラリ化を推進しています

  13. 13. ● モバイルゲームに必要な機能について ● 共通ライブラリとは ● ネイティブプラグインとは

  14. 14. KLabでライブラリ化している機能

  15. 15. アプリ実装(クライアントのみ) 共通仕様 / ガイドライン 共通実装 Scripting Utilities Other Libraries Unity3D mono OS Native Infrastructures Device情報 Audio HTTP通信 ログ出力 GameCenter GPGS Data Binding Asset管理 Scripting Graphics Network 2D 3D OS情報 Task(Thread/Process) FileSystem etc... MultiThread etc... Crash Report etc... AI Novel etc... Latest .NET Polyfill アプリ情報 ローカル通知 PFゲームサービス連携 WebView 課金 ユーザ認証 ローカライズ 友達招待 データ連係 不正対策 チャット etc... ストアレビュー シェア機能
  16. 16. アプリ実装(クライアントのみ) 共通仕様 / ガイドライン 共通実装 Scripting Utilities Other Libraries Unity3D mono OS Native Infrastructures Device情報 Audio HTTP通信 ログ出力 GameCenter GPGS Data Binding Asset管理 Scripting Graphics Network 2D 3D OS情報 Task(Thread/Process) FileSystem etc... MultiThread etc... Crash Report etc... AI Novel etc... Latest .NET Polyfill アプリ情報 ローカル通知 PFゲームサービス連携 WebView 課金 ユーザ認証 ローカライズ 友達招待 データ連係 不正対策 チャット etc... ストアレビュー シェア機能
  17. 17. KLabではUnityでのアプリ開発が主流

  18. 18. Unityでは対応していないOSネイティブの機能
 それに対応するためには?

  19. 19. OSのネイティブ機能を利用できるプラグイン
 が必要

  20. 20. それがネイティブプラグイン

  21. 21. ● スマホゲームに必要な機能について ● 共通ライブラリとは ● ネイティブプラグインとは

  22. 22. OSネイティブ機能 Unity開発での制限
 Unity側で対応していない限り、通常ではiOSやAndroidで提供されているAPIを直接呼ぶ ことはできない
 アプリ側のコード(C#) Android API iOS API
  23. 23. ネイティブプラグイン ネイティブプラグインとは
 OSネイティブの各開発言語(C, C++, Objective-C, Swift, Java, Kotlin)で書かれたライブ ラリで、Unityの開発言語であるC#から直接呼び出して利用できる
 アプリ側のコード(C#) Android (C, C++, Java, Kotlin) iOS (C, C++, Objective-C, Swift)
  24. 24. ネイティブプラグインを作るメリット
 
 ● ネイティブでしか提供されていない機能を使える
 ● 各OSの機能を共通のインターフェースで統一化できる
 ● iOS, Androidの最新機能のサポート

  25. 25. iOSやAndroidのネイティブ層からしか取得できない情報や、利用できない機能をUnityか ら呼び出して使うことができる
 ● 例
 ○ ディスク容量やバッテリー容量取得
 ○ Androidのローカル通知機能
 ○ Android NやiOS10から提供されたリッチなPush通知の利用
 ○ アプリ内ストアレビュー機能
 ○ 他アプリへのシェア機能
 ネイティブでしか提供されていない機能を使える
 

  26. 26. アプリ側 ネイティブプラグイン側 iOSとAndroidで共通的なインターフェースを提供することで、Unityからの利用を 容易にすることができる
 
 Unityからの 呼び出し(C#) 共通IF(C#) Androidでの 処理 iOSでの 処理 各OSの機能を共通のインターフェースで統一化できる
 

  27. 27. iOS, Androidの最新OSで追加された機能も、ネイティブプラグインで実装することで、 Unityをバージョンアップせずに利用できる
 iOS, Androidの最新機能のサポート
 
 ● 例 アプリ内ストアレビュー送信APIの実装

  28. 28. ● ゲームの機能を共通化することで、ゲーム開発者はゲームのコア機能 部分の実装に集中できる
 
 
 ● ネイティブプラグインを使うことで、Unity上でネイティブの機能を十分に 利用できる
 まとめ


KLab福岡Meetup「作って終わりじゃない!プロのゲームづくり」 https://klab-fukuoka-meetup.connpass.com/event/212061/ のセッション資料です。

Views

Total views

219

On Slideshare

0

From embeds

0

Number of embeds

59

Actions

Downloads

0

Shares

0

Comments

0

Likes

0

×