SlideShare a Scribd company logo
Unityネイティブプラグインの勧め

〜UnityでiOS, AndroidのAPIを利用する方法〜

KLab株式会社 牧野龍太郎
自己紹介

● 名前:牧野龍太郎

● 勤務先:KLab福岡事業所勤務

● 職種:クライアントエンジニア

● 2015年KLab入社(在籍期間自体は10年以上)

● 主な経歴

○ 携帯サイトのサーバサイド(Java)開発、および運用

○ ゲームアプリのクライアント(iOS,Android)、サーバサイド開
発、および運用

○ 現在Unityネイティブプラグインの開発に従事

● 3人の子持ち

もくじ

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

KLabでは様々なモバイルゲームを作っています





アクション
ゲーム
リズムゲーム
シミュレーション
ゲーム
etc...
RPG
モバイルゲームに必要な機能とは?

ゲームとしてまず必要になるのがゲームのコア部分の機能

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

モバイルゲームを作るには

コア部分以外にも必要となる機能がある

たとえば・・・



● プラットフォーム上(App Store, Google Play)の課金処理

● Push通知

● データ引き継ぎ機能

● アプリ内チャット機能

● 知人へのシェア機能

● お知らせ表示(WebView)

● etc...

それぞれのゲームでその機能を都度作るのは

面倒だし効率が悪い

ゲームのコア部分以外の共通機能を抽出して

再利用できるようにしよう

↓↓

共通ライブラリを作ろう!

KLabではアプリ開発者がゲーム開発に集中できるように

共通部分のライブラリ化を推進しています

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

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

アプリ実装(クライアントのみ)
共通仕様 / ガイドライン 共通実装
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...
ストアレビュー
シェア機能
アプリ実装(クライアントのみ)
共通仕様 / ガイドライン 共通実装
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...
ストアレビュー
シェア機能
KLabではUnityでのアプリ開発が主流

Unityでは対応していないOSネイティブの機能

それに対応するためには?

OSのネイティブ機能を利用できるプラグイン

が必要

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

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

OSネイティブ機能
Unity開発での制限

Unity側で対応していない限り、通常ではiOSやAndroidで提供されているAPIを直接呼ぶ
ことはできない

アプリ側のコード(C#)
Android API
iOS API
ネイティブプラグイン
ネイティブプラグインとは

OSネイティブの各開発言語(C, C++, Objective-C, Swift, Java, Kotlin)で書かれたライブ
ラリで、Unityの開発言語であるC#から直接呼び出して利用できる

アプリ側のコード(C#)
Android
(C, C++, Java, Kotlin)
iOS
(C, C++, Objective-C,
Swift)
ネイティブプラグインを作るメリット



● ネイティブでしか提供されていない機能を使える

● 各OSの機能を共通のインターフェースで統一化できる

● iOS, Androidの最新機能のサポート

iOSやAndroidのネイティブ層からしか取得できない情報や、利用できない機能をUnityか
ら呼び出して使うことができる

● 例

○ ディスク容量やバッテリー容量取得

○ Androidのローカル通知機能

○ Android NやiOS10から提供されたリッチなPush通知の利用

○ アプリ内ストアレビュー機能

○ 他アプリへのシェア機能

ネイティブでしか提供されていない機能を使える



アプリ側 ネイティブプラグイン側
iOSとAndroidで共通的なインターフェースを提供することで、Unityからの利用を
容易にすることができる



Unityからの
呼び出し(C#)
共通IF(C#)
Androidでの
処理
iOSでの
処理
各OSの機能を共通のインターフェースで統一化できる



iOS, Androidの最新OSで追加された機能も、ネイティブプラグインで実装することで、
Unityをバージョンアップせずに利用できる

iOS, Androidの最新機能のサポート



● 例 アプリ内ストアレビュー送信APIの実装

● ゲームの機能を共通化することで、ゲーム開発者はゲームのコア機能
部分の実装に集中できる





● ネイティブプラグインを使うことで、Unity上でネイティブの機能を十分に
利用できる

まとめ


More Related Content

PDF
Unityアニメーションシステムの 今と未来の話
PDF
MMORPGで考えるレベルデザイン
PPTX
ゲーム仕様書の書き方 ~大久保磨編~ ver.1.2.0
PPTX
Unityネイティブプラグインマニアクス #denatechcon
PDF
Unity In App Purchase (IAP)の使い方
PDF
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
PDF
Unityで始めるバージョン管理 Git LFS 入門編
PDF
ゲームの仕様書を書こうまとめ
Unityアニメーションシステムの 今と未来の話
MMORPGで考えるレベルデザイン
ゲーム仕様書の書き方 ~大久保磨編~ ver.1.2.0
Unityネイティブプラグインマニアクス #denatechcon
Unity In App Purchase (IAP)の使い方
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityで始めるバージョン管理 Git LFS 入門編
ゲームの仕様書を書こうまとめ

What's hot (20)

PDF
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)
PDF
iPhoneでリアルタイムマルチプレイを実現!Photon Network Engine
PPTX
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【導入編】
PDF
Unityでパフォーマンスの良いUIを作る為のTips
PDF
インタフェース完全に理解した
PDF
Steam ゲーム内購入 サーバーサイド実装について
PPTX
UE4のためのより良いゲーム設計を理解しよう!
PPTX
DeNAの最新のマスタデータ管理システム Oyakata の全容
PPTX
若輩エンジニアから見たUniRxを利用したゲーム開発
PPTX
RPGにおけるイベント駆動型の設計と実装
PDF
Observableで非同期処理
PPTX
UnityでUI開発を高速化した件
PPTX
UniRxでMV(R)Pパターン をやってみた
PPTX
プログラマが欲しい仕様書とは
PPTX
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
PDF
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~
PDF
多様な働き⽅のチームでどうやって アジャイルにやるの?(雁行陣開発)
PDF
UE4でマルチプレイヤーゲームを作ろう
PPTX
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
ODP
Unity ネイティブプラグインの作成について
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)
iPhoneでリアルタイムマルチプレイを実現!Photon Network Engine
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【導入編】
Unityでパフォーマンスの良いUIを作る為のTips
インタフェース完全に理解した
Steam ゲーム内購入 サーバーサイド実装について
UE4のためのより良いゲーム設計を理解しよう!
DeNAの最新のマスタデータ管理システム Oyakata の全容
若輩エンジニアから見たUniRxを利用したゲーム開発
RPGにおけるイベント駆動型の設計と実装
Observableで非同期処理
UnityでUI開発を高速化した件
UniRxでMV(R)Pパターン をやってみた
プログラマが欲しい仕様書とは
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~
多様な働き⽅のチームでどうやって アジャイルにやるの?(雁行陣開発)
UE4でマルチプレイヤーゲームを作ろう
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity ネイティブプラグインの作成について
Ad

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

PDF
Unityネイティブプラグインの勧め
PDF
国際化対応におけるUI実装で気をつけるべきこと
PDF
ダイスふる制作レポート Unityでアプリ個人開発
PDF
Letsgo developer 2012 Continuous Delivery
PDF
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
PDF
福井スマートフォンハッカソン Titanium Mobileの紹介
PDF
KLabのゲーム開発を支える開発環境
PDF
Herlockサービス紹介
PDF
Vibe Codingやってみた : 無課金でAI Agentを試した経験を簡単に
PPTX
Jenkinsを使おうよ
PPT
Androidとセキュリティ ~ユーザーを脅威から守る~
PDF
Unityでこんなことができる KLab×博多Tech塾
PDF
その素敵なUI基盤を目指して・・・
PDF
運営型モバイルゲームの運用について
PDF
スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話
PDF
UnityとBlenderハンズオン第5章
PDF
複数拠点における開発効率の維持・向上
PDF
「Camelog」Android開発秘話
PDF
Html5/JSモバイルアプリ最前線
PDF
ONE-UPの紹介
Unityネイティブプラグインの勧め
国際化対応におけるUI実装で気をつけるべきこと
ダイスふる制作レポート Unityでアプリ個人開発
Letsgo developer 2012 Continuous Delivery
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
福井スマートフォンハッカソン Titanium Mobileの紹介
KLabのゲーム開発を支える開発環境
Herlockサービス紹介
Vibe Codingやってみた : 無課金でAI Agentを試した経験を簡単に
Jenkinsを使おうよ
Androidとセキュリティ ~ユーザーを脅威から守る~
Unityでこんなことができる KLab×博多Tech塾
その素敵なUI基盤を目指して・・・
運営型モバイルゲームの運用について
スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話
UnityとBlenderハンズオン第5章
複数拠点における開発効率の維持・向上
「Camelog」Android開発秘話
Html5/JSモバイルアプリ最前線
ONE-UPの紹介
Ad

More from KLab Inc. / Tech (20)

PDF
【公開用】モバイルオンラインゲーム開発を支える早く、安く、使いやすいサーバインフラ構築
PDF
モバイルオンラインゲームのアプリ外課金の導入と運用方法について
PDF
デバイスファーム 「AirLab」 による 自動QAテストの実績と機械学習が拓く次世代QAの可能性
PDF
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
PDF
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
PDF
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
PDF
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
PDF
生成AIが切り拓く新しいゲームの創り方・遊び方
PDF
表も裏もすべて見せます! KLab謹製大規模オンラインゲームの リアルタイムチャットマイクロサービス
PDF
モバイルオンラインゲームでの大規模観戦とチート対策 〜自社製リアルタイム通信システム「WSNet2」の事例〜
PDF
他業界からゲーム業界へ転向したときの話
PDF
ゲーム開発を知らない人にも分かるKLabのゲーム開発運営
PDF
「リアルISUCON」としてのモバイルオンラインゲーム開発
PDF
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
PDF
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
PDF
『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜
PPTX
KLabのチャットシステム インフラ変遷
PPTX
Ganglia のUIにGrafanaを追加する話
PPTX
KLabのインフラエンジニア 〜 こんな感じで働いてます 〜
PPTX
属人化して詰まってた作業を自動化で楽しようとした話
【公開用】モバイルオンラインゲーム開発を支える早く、安く、使いやすいサーバインフラ構築
モバイルオンラインゲームのアプリ外課金の導入と運用方法について
デバイスファーム 「AirLab」 による 自動QAテストの実績と機械学習が拓く次世代QAの可能性
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
生成AIが切り拓く新しいゲームの創り方・遊び方
表も裏もすべて見せます! KLab謹製大規模オンラインゲームの リアルタイムチャットマイクロサービス
モバイルオンラインゲームでの大規模観戦とチート対策 〜自社製リアルタイム通信システム「WSNet2」の事例〜
他業界からゲーム業界へ転向したときの話
ゲーム開発を知らない人にも分かるKLabのゲーム開発運営
「リアルISUCON」としてのモバイルオンラインゲーム開発
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜
KLabのチャットシステム インフラ変遷
Ganglia のUIにGrafanaを追加する話
KLabのインフラエンジニア 〜 こんな感じで働いてます 〜
属人化して詰まってた作業を自動化で楽しようとした話

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