tencent cloud

Game Multimedia Engine

製品アップデート情報
製品紹介
製品概要
優位性のある特徴
製品機能
ユースケース
セキュリティコンプライアンス認証
初心者ガイド
SDKダウンロードガイド
製品機能体験
基本機能Demo
シーン化体験
コンソールガイド
使用量の表示
サービスの有効化
クイックスタート
Quick Integration of SDK
Quick Integration of Sample Project
基本機能開発ガイド
Authentication Key
リアルタイム音声ロール設定
音質設定
拡張機能開発ガイド
サーバー側のレコーディング
レンジボイス
3Dサウンド
効果音と伴奏
ネットワークオーディオストリーム転送ルーティング
カスタムメッセージチャネル
社内ファイアーフォール制限への対応について
Language Parameter Reference List
GMEルーム管理機能の導入
クライアントAPI
SDK for Unity
SDK for Unreal Engine
Cocos2D SDK
SDK for Windows
SDK for iOS
SDK for Android
SDK for macOS
H5 SDK
Electron SDK
SDK for Flutter
SDK Version Upgrade Guide
エラーコード
Toolchain
Server APIs
History
Introduction
API Category
Usage APIs
Recording APIs
Making API Requests
Voice Chat APIs
Application APIs
Data Types
Error Codes
よくある質問
製品機能質問
問題解決ガイド
課金について
Sample Projectの使用上の問題
一般的な質問
認証について
リアルタイム音声ルーム参加失敗について
リアルタイム音声利用時に音声が聞こえない問題とオーディオ関連について
ネットワークについて
ボイス・ツー・テキスト変換について
プロジェクトエクスポートについて
Service Agreement
Service Level Agreement
お問い合わせ
用語集
GME ポリシー
データ処理とセキュリティ契約
プライバシーポリシー

プロジェクトのエクスポート

PDF
フォーカスモード
フォントサイズ
最終更新日: 2024-01-18 15:49:51
Unityを使う開発者たちがTencent Cloud Gaming Multimedia Engineの製品APIのデバッグ・アクセスを手軽に実行できるように、ここでUnity開発に向けるプロジェクトエクスポート設定について説明します。

iOSプラットフォームのエクスポートについて

UnityプロジェクトからXcodeプロジェクトにエクスポートする際には、GME動的ライブラリを処理する必要があり、処理手段はUnityのバージョンによって異なります。

1. 動的ライブラリ処理(Unity 2019以降)

設定の原理

UnityEditor.iOS.Xcode.Extensions.PBXProjectExtensions.AddFileToEmbedFrameworksを使用して新しいEditor OnPostprocessBuildスクリプトを作成します。このAPIは、動的ライブラリを最終的なパッケージBundleのframeworkディレクトリに自動的にコピーし、署名します。
ビジネス層は、必要な機能に基づいて動的ライブラリを削減し、動的ライブラリのリストに基づいてサンプルコードにインポートするフレームワークのリストを決定します。動的ライブラリの機能については、動的ライブラリディレクトリをご参照ください。
string[] framework_names = {
"libgme_fdkaac.framework",
"libgme_lamemp3.framework",
"libgme_ogg.framework",
"libgme_soundtouch.framework"
};

サンプルコード

Demoプロジェクト内のadd_dylib.csスクリプトファイルを参照して、プロジェクトのニーズに応じて、このコードの一部をプロジェクト内のEditorフォルダに配置します。
[UnityEditor.Callbacks.PostProcessBuild(1002)]
public static void OnPostprocessBuild (UnityEditor.BuildTarget BuildTarget, string path){
if (BuildTarget == UnityEditor.BuildTarget.iOS) {
UnityEngine.Debug.Log ("OnPostprocessBuild add_dylib:" + path);
#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
{
string projPath = UnityEditor.iOS.Xcode.PBXProject.GetPBXProjectPath (path);
UnityEditor.iOS.Xcode.PBXProject proj = new UnityEditor.iOS.Xcode.PBXProject ();

proj.ReadFromString (System.IO.File.ReadAllText (projPath));
// string targetGuid = proj.TargetGuidByName (UnityEditor.iOS.Xcode.PBXProject.GetUnityTargetName ()); // 2018
string targetGuid = proj.GetUnityMainTargetGuid(); // 2019

// インポートされたフレームワークによる削減
string[] framework_names = {
"libgme_fdkaac.framework",
"libgme_lamemp3.framework",
"libgme_ogg.framework",
"libgme_soundtouch.framework"
};

for (int i = 0; i < framework_names.Length; i++)
{
string framework_name = framework_names[i];
string dylibGuid = null;
dylibGuid = proj.FindFileGuidByProjectPath("Frameworks/Plugins/iOS/" + framework_name);

if (dylibGuid == null) {
UnityEngine.Debug.LogWarning (framework_name + " guid not found");
}else{
UnityEngine.Debug.LogWarning (framework_name + " guid:" + dylibGuid);
// proj.AddDynamicFramework (targetGuid, dylibGuid);
UnityEditor.iOS.Xcode.Extensions.PBXProjectExtensions.AddFileToEmbedFrameworks(proj, targetGuid, dylibGuid);

proj.AddBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", "@executable_path/Frameworks");
System.IO.File.WriteAllText (projPath, proj.WriteToString ());
}
}
}
#endif
}
}

2. 動的ライブラリ処理(Unity2019以前)

UnityEditor.iOS.Xcode.Extensionsは現在Unity 2019以降でのみ使用できます。以前のUnityバージョンでの使用については、上位バージョンのUnityからUnityEditor.iOS.Xcodeパッケージをエクスポートするか、添付ファイルUnityEditorAV.iOS.XCode.zipを参照してこのファイルを展開し、Engineering Directory Editorフォルダに配置してもよい。


3. Xcodeプロジェクトのエクスポート

Xcode10.0以降であることを確認し、UnityエディタでXcodeプロジェクトをエクスポートします。

4. bitcodeの無効化

コンパイル中に次のようなエラーが表示された場合は、Bitcodeを無効にしてください。この設定を無効化するには、Targets>Build SettingsでBitcodeをサーチし、対応するオプションを見つけてからNOに設定すればよいです。


5. iOSプラットフォームの権限を追加

Required background modes:バックグラウンド実行が許容されます(オプション)。
Microphone Usage Description:マイク権限が許容されます。

6. 補充ライブラリファイル

コンパイル中に次の図のエラーが発生した場合、ライブラリファイルを補完してください。

ライブラリファイルのリストは次のとおりです:
libc++.tbd
CoreMedia.framework
libresolv.tbd
AVFoundation.framework
Security.framework
CoreAudio.framework
AudioToolbox.framework
libiconv.tbd
libz.tbd
SystemConfiguration.framework
OpenAL.framework

7. libresolv9.tbdを追加

次の図のエラーが発生した場合、

UnityFrameworkにlibresolv9.tbdを追加してください。


8. エクスポート問題

エクスポートについては、iOSエクスポートをご参照ください。

Androidプラットフォームからのエクスポート

1. libファイルの削除

GME Unity SDKには、arm64-v8a、armeabi-v7aおよびx86のlibファイルがデフォルトで用意されています。プロジェクトの必要に応じて削除してください。
架构缺失
指定されたアーキテクチャがないAndroid実行可能ファイルをエクスポートすると、Crashが発生します。
実行可能ファイルapkファイルをエクスポートした後、開くと黒画面となり、強制終了した場合、通常は適切なアーキテクチャのlibファイルがないので、プロジェクトに応じて追加または削除してください。

2. 権限設定

2.1 必要な権限 必ずプロジェクトのAndroidManifest.xmlファイルに下記の権限を追加してください。
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
2.2 必要に応じて権限を追加 必要に応じてプロジェクトのAndroidManifest.xmlファイルに、下記の権限を追加してください。
読み書き権限
読み書き権限の追加は必須ではありません。次のルールに基づいて追加するかどうかを判断します。
デフォルトのログパス(/sdcard/Android/data/xxx.xxx.xxx/files)を使用している場合は、SetLogPathが呼び出されていないことを意味しますので、WRITE_EXTERNAL_STORAGE権限は必要ありません。
SetLogPathインターフェースを呼び出してログパスを外部ストレージデバイスに配置し、音声メッセージ機能を使用した録音時のストレージパスは外部ストレージデバイスである場合は、WRITE_EXTERNAL_STORAGE権限をユーザーに要求し、ユーザーの明示的な承認を得る必要があります。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

3. エクスポート問題

エクスポートについては、Androidからのエクスポートをご参照ください。

Windowsプラットフォームのエクスポートについて

エクスポートについては、Windowsからのエクスポートをご参照ください。

WebGLからのエクスポート

1. WebGL下のpluginsの設定

WebGLプラットフォームでのgmesdkと競合しないよう、Windowsプラットフォームでのgmesdk.dllの適用範囲を設定します。



2. Flare Layerの取消(Unity 2018以降)


一部のUnityバージョンではMainCameraのFlare Layerモードをサポートしなくなるため、パッケージ化するSceneでFlare Layerのチェックを外す必要があります。チェックを外さない場合、次のエラーが表示されます:


3. テンプレートの選択

WebGLプラットフォームからエクスポートするときは、GMEのWebGLテンプレートを選択します。これにより、正常にパッケージ化された目的物が依存ライブラリに正しくインポートしていることが保証されます。プロジェクトでは、デフォルトでGMEWebGLTemplatesUnity2018テンプレートが使用されます。このテンプレートはUnity2018とUnity2019の両方のバージョンをサポートしています。Unity2020およびUnity2021のバージョンでは、パッケージ化の際に使用テンプレートを変更し、GMEWebGLTemplatesUnity2021を使用してパッケージ化する必要があります。


4. フロントエンドライブラリの導入

GME- WebGLを独自のプロジェクトにインポートする場合、Unityを使用して適切なWebページを生成する際には、フロントエンドライブラリを手動で導入し、フロントエンドライブラリファイルを適切な参照位置に配置し、Audioタグを追加する必要があります(下の図を参照)。Unityの目的物をパッケージ化するたびに上記の作業を自動的に行いたい場合は、GME-WebGL demoのやり方を参考にして、自分のプロジェクトに適切なテンプレートを追加してください。


5. エクスポート問題

エクスポートについては、Unity-WebGLからのエクスポートをご参照ください。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック