Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Android上でUnityを動かすためのノウハウ / Android with Unity
Search
morizooo
August 22, 2018
Programming
2
630
Android上でUnityを動かすためのノウハウ / Android with Unity
morizooo
August 22, 2018
Tweet
Share
More Decks by morizooo
See All by morizooo
Flipperを活用した デバッグ効率化について/flipper
morizooo
0
570
Androidアプリをリアーキテクチャした話/Android-rearchitecture
morizooo
1
170
Mirrativ-android-efforts
morizooo
1
7k
消費型課金を導入する / Introduction to consumable In-App Billing
morizooo
0
380
カンファレンスアプリを作ったぞ!! / builderscon tokyo 2017 LT
morizooo
0
2.9k
Other Decks in Programming
See All in Programming
WasmOS: Wasmを実行する自作Microkernel
riru
0
370
DDDはなぜ難しいのか / 良いコードの定義と設計能力の壁
pospome
24
7.6k
Deno に Web 標準 API を実装する / Implementing Web Standard API to Deno
petamoriken
0
350
どうしてこうなった命名集 ~🔥編~ / OOC 2024 LT
pictiny
4
2.9k
WinUI 3デモ - "CommunityToolkit.Mvvm"NuGetパッケージ編
andrewkeepcoding
0
140
WebComponentsで フレームワークを1ページに共存させる
webuilder240
0
150
PHPerKaigi 2024〜10年以上動いているレガシーなバッチシステムを Kubernetes(Amazon EKS) に移行する取り組み〜
tshinowpub
1
220
Why 1 + 1 = 2 in Swift?
1plus4
1
250
incrementalモデルの理解を深める
ikkimiyazaki
2
640
ISUCONってなんだか難しそう……!!でも、初めてのISUCONにPHPで挑戦してきました!
kotomin_m
1
300
object-oriented-conference-2024
fuwasegu
6
1.9k
MySQL のインデックスの種類をおさらいしよう! / overviewing indexes in MySQL
okashoi
0
170
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
39
4.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3k
Building Your Own Lightsaber
phodgson
97
5.6k
Teambox: Starting and Learning
jrom
126
8.4k
4 Signs Your Business is Dying
shpigford
174
21k
Git: the NoSQL Database
bkeepers
PRO
421
63k
Build your cross-platform service in a week with App Engine
jlugia
223
17k
Atom: Resistance is Futile
akmur
258
25k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Debugging Ruby Performance
tmm1
68
11k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
101
6.6k
Building an army of robots
kneath
300
41k
Transcript
Android上でUnityを 動かすためのノウハウ LIVE STREAMING HACK #1 2018.08.22 YUTA MORIOKA Mirrativ,
Inc. © 2018 Mirrativ, Inc.
•Profile •morizooo •2018年2月入社 •ミラティブのAndroid作ってます •UnityはAndroidビルド部分しか触ってません
•Android上でUnityを動かす
•Unityからのエクスポート • ARM64はUnity 2018.2から使用可能 • apply pluginをlibraryに変更 • Manifestの不要な部分を削除 → AARを作成
•UnityPlayerの使い方 • UnityPlayerにcontextを渡してFrameLayoutにAddすればOK • SurfaceViewにアバターが映るのでリフレクション使って透過させる
•UnitySendMessageについて UnitySendMessage("GameObjectName1", "MethodName1", "Message to send"); •NativeからUnityのコールバックを実行するための関数 •主な用途はUnity用のプラグインをNativeで書くときに使われている → MirrativではAndroid/iOSからUnityを操作するために利用
•困ったこと •UnityPlayerを破棄するとアプリが落ちる →android:processを設定することで対処
•困ったこと •UnityPlayerを一度破棄すると、再生成できない - 配信視聴時にインスタンス作成、終了時に破棄したかった - 原因わからず。そもそも複数回作られるような想定がされてなさそう → Applicationクラスにグローバルインスタンスとして作成して対処 → UnityPlayerを破棄することはできないので、 Activity破棄時にUnityPlayer.pause()を実行
•困ったこと •UnityPlayerの上にViewを重ねる - Viewを配置するだけだとUnityPlayerが最前面になる - WindowManagerでアプリに重ねて表示する →配信時にパーミションは取っているが視聴時は取ってない ... - 透過したDialogFragmentを使うことで実現
•今後の展望 •Android5,6系のパフォーマンス改善 - 電池使用量が多いので現状対象外(充電中でも30分で10%減る) - 原因調査中。内部で動いているのがSurfaceViewなのが原因か? •リップシンクの精度向上 - 配信時はマイク音声、視聴時はRTMP音声を基にリップシンクしてます •他にもやりたいことが沢山あります!!
現在ゲーム好きなAndroidエンジニアを積極採用中! © 2018 Mirrativ, Inc. 詳細はこちら! https://www.wantedly.com/projects/226247 ◆具体的な業務内容 ・MirrativのAndroidアプリ開発 ◆必須の経験/能
・Java or Kotlinでの Androidアプリ開発経験 ・Mirrativのサービス内容や コンセプト、未来像に共感できる