Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Unityのframework化を支える技術

Avatar for tion-low tion-low
September 11, 2019

 Unityのframework化を支える技術

Avatar for tion-low

tion-low

September 11, 2019
Tweet

Other Decks in Programming

Transcript

  1. 自己紹介 • 清 貴幸 • WFLE, Inc. • エンジニア ◦

    iOS ◦ Unity(NativePlugin) • 最近の事件 ◦ 港区に家を買おうとして心が 折れた ◦ 港区の家事情に詳しい人、仲 良くしてください
  2. ライブ配信 機能UI Unity(C#) Unity Native Plugin (ObjC++) iOS App (Swift

    / ObjC) 3Dモデル表示 フェイストラッ キング 機能 ライブ 配信機能 Unity ランタイム インタフェイス なんらかの イベント通知 Unity ランタイム
  3. ライブ配信 機能UI Unity(C#) Unity Native Plugin (ObjC++) iOS App (Swift

    / ObjC) 3Dモデル表示 フェイストラッ キング 機能呼び出し ライブ 配信機能 呼び出し Unity 機能呼び出し なんらかの イベント通知 framework フェイストラッ キング 機能 ライブ 配信機能 フェイストラッ キング デリゲート ライブ配信 デリゲート Unity ランタイム Unity ランタイム インタフェイス
  4. • Unity <-> ネイティブアプリの連携方法が統一された • ネイティブアプリとUnityのインタフェイスが単純明快になっ た • iOSエンジニアにとってなじみのあるインタフェイスになった •

    デリゲートパターンを採用 • ライブ配信とフェイストラッキングのクラスをネイティブア プリプロジェクトに移動 • iOSエンジニアが修正しやすくなった インタフェイスの整備
  5. REALITY iOS Repository REALITY iOS Proj REALITY Avatar Repository  REALITY

    Avatar Unity Proj REALITY Avatar iOS Proj Submodule 1. Avatarの  Xcode Projを出力 2. 必要なファイルをコピー 3. アーカイブ 4. IPA出力
  6. RealityAvatar .framework GCS 6. IPA出力 REALITY iOS Repository REALITY iOS

    Proj RealityAvatar .framework REALITY Avatar Repository  REALITY Avatar Unity Proj REALITY Avatar iOS Proj RealityAvatar .framework 5. アーカイブ 3. frameworkアップロード 1. AvatarのXcode Proj出 力後、コードコピー 2. frameworkのビルド 4. frameworkのダウンロード
  7. • iOSアプリを開発するために、まずUnityを入れる必要がある • -> 初期開発時にUnityがなくてもビルド可能に! • Unityから出力したソースコードをimportしているためにクソ でかい差分が出やすい • ->

    frameworkのlinkになり、xcodeprojの差分が出なくなった • 差分がでかいゆえにコンパイル時間がエグい • クリーンビルドで600sec前後 • -> 結果
  8. 比較(個人の感想) 清の手法 (beta)Unity as a library framework作成機能 メンテコスト 高 -

    NativePlugin 開発しやすさ 高 低 別プロジェクトへの 導入しやすさ 高 低 iOSエンジニア 親和性 高 中