はじめに(Androidの場合)
Unityゲームに素晴らしいアプリ内サポートを追加するには、3つのステップが必要となります。
C#やJavaScriptで記述されたゲームスクリプトから呼び出し可能なHelpshift SDK X用のUnityプラグインの統合方法について説明します。
要件
- Unity5.5.6以上。
- SDK Xは、APIレベル24以上(Android OS 7 Nougat以上)でのみ動作します。
- コード内の
minSDKVersionは、APIレベル19(Android 4.4 KitKat)までをインストール可能なアプリでSDKをインポートしてコンパイルできるようにするために、APIレベル19として保持されています。 - あなたのアプリがAPIレベル24以下(Android OS 7 Nougat以下)のデバイスにインストールされている場合、サポートの提供に別のメディアを選択することができます。たとえば、電子メールやウェブサイトなどです。
- 10.4.0以降、SDKはJava 8でコンパイルを行うことでAndroid 15のコンパイルに対応します。
- SDK 10.3.0はAndroid 7以上(APIレベル24以上)に対応しており、このバージョン以上で機能します。
- 最低限のAPIレベルであるレベル19でコンパイルすることは可能ですが、対応はAPIレベル24以上です。 Helpshift SDKのAndroid OSサポートポリシーの詳細については、こちらの記事を参照してください。
Helpshift Unity SDKのダウンロード
1. SDK X - アプリ内カスタマーサービス
Helpshift SDK .zipフォルダーには、以下のものが含まれています。
| helpshiftX-plugin-unity-v10.4.0.unitypackage | Helpshift SDK XのUnityパッケージ |
| unity-jar-resolver(v1.2.170.0) | Android Helpshiftパッケージのサポートライブラリの依存関係を解決します。 |
| iOS/dSYM/HelpshiftX.framework.dSYM | Xcodeでのクラッシュレポートのシンボル化やデバッグに使用するHelpshiftXフレームワーク用のデバッグシンボルファイルです。 |
UnityプロジェクトにHelpshiftを追加する
- Helpshift Unity SDKパッケージを解凍します。
- Helpshift Unity SDKは、Unityパッケージのインポート手順を介してインポート可能な標準の
.unitypackageとして表示されます。 helpshiftx-plugin-unity-version.unitypackageをUnityゲームにインポートする手順は、以下の通りです。- 「Unityプロジェクトを開く」でドロップダウンメニュー「アセット」に移動し、「パッケージをインポート」、「カスタムパッケージ」の順に選択する
- 解凍したSDKから
helpshiftx-plugin-unity-version.unitypackageファイルを選択し、Helpshift SDKをインポートする。 - 「Unityパッケージのインポート」ウィンドウで、「インポート」をクリックする
- iOS用としても統合する場合には、unitypackageのインポート中に
iOS/Helpshift.frameworkフォルダーを選択する。こちらをご参照ください。
Android AppCompatライブラリの要件を解決する
Helpshift SDKは、Android AppCompatライブラリに依存しています。これらのライブラリは、使用するビルド方法に応じて以下のいずれかの方法で入手できます。
Unity内部のビルドシステムまたはUnity内部のGradleビルドシステムを使用する際に依存関係を解決する
Androidライブラリの依存関係をダウンロードして統合するには、Unity Jar Resolverプラグインを使用します。
すでにプロジェクトでUnity Jar Resolverを使用している場合には、Unity Jar Resolverのインポート手順を省略できます。
Unity Jar Resolverについては、必要に応じてすべてのバージョンをご利用いただけます。Helpshiftでは、開発者にとって使いやすいようにこれをパッケージ化しています。
Unity Jar Resolverのリリースについては、こちらでご確認ください。https://github.com/googlesamples/Unity Jar Resolver/tags
Unity Jar ResolverプラグインをUnityプロジェクトにインポートする
- 「Unityプロジェクトを開く」でドロップダウンメニュー「アセット」に移動し、「パッケージをインポート」、「カスタムパッケージ」の順に選択します
- 解凍したHelpshift SDKから
unity-jar-resolver/external-dependency-manager-1.2.170.unitypackageファイルを選択してUnity Jar Resolverをインポートします。 - 「Unityパッケージのインポート」ウィンドウで、「インポート」をクリックします
Unity Jar ResolverがAndroidの自動解決の有効化を要求している場合には、「有効にする」ボタンをクリックし、依存関係ファイルの変更時にすべての依存関係が自動的に解決されるようにします。この設定の有効/無効を切り替えるには、「アセット」、「PlayServicesResolver」、「Android Resolver」の順に移動し、「設定」を使用してください。
デフォルトでは、Unity Jar Resolverは必要な依存関係をすべて自動で解決します。依存関係を手動で解決する手順は、以下の通りです。
- 「Unityプロジェクトを開く」でドロップダウンメニュー「アセット」に移動し、「PlayServicesResolver」、「Android Resolve」の順に選択します
- 「Resolve」または「Force Resolve」を選択します
Unity Jar Resolverの詳細については、「Unity Jar Resolver」をご参照ください
カスタムGradleテンプレートまたはエクスポートプロジェクトを使用する際の依存関係を解決する
Unityの組み込みGradleビルドサポート とAndroid Studioへのエクスポート はプラグイン単位のGradleスクリプトをサポートしていません。したがって、Helpshift SDKはデフォルトの状態ではそれ自体で依存関係を追加することができません。
「プレイヤー」ウィンドウでカスタムGradleテンプレートプロパティを有効にすると、mainTemplate.gradleが生成されます。
「プレイヤー」ウィンドウでExport Projectプロパティを有効にした状態でプロジェクトをビルドすると、生成されたGradleプロジェクトにbuild.gradleが存在しています。
mainTemplate.gradleまたはbuild.gradleファイルの依存関係セクションを、以下のように更新します。
- 10.3.X
- Below 10.2.3
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation(name: 'Helpshift', ext:'aar')
implementation 'androidx.appcompat:appcompat:1.0.0'
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation(name: 'Helpshift', ext:'aar')
implementation 'com.android.support:appcompat-v7:28.0.0'
}
UnityのGradleテンプレートについてのドキュメントは、「https://docs.unity3d.com/Manual/gradle-templates.html」を参照してください。
アプリでHelpshiftを初期化する
HelpshiftのAPIを使用するには、以下のようにHelpshiftの名前空間をインポートしてください
using Helpshift;
最初に、Helpshiftダッシュボードでアプリを作成します

選択した
PlatformにAndroidを指定してアプリを作成します
Helpshiftは、登録済みの各種アプリを以下の2つのトークンの組み合わせによって一意に識別します。
Domain Name | あなたのHelpshiftドメイン。例: happyapps.helpshift.com |
Platform ID | あなたのアプリ固有のアプリID |

メソッド_install(appId, domain)_APIを呼び出し、Helpshiftを初期化します
using Helpshift;
public class MyGameControl : MonoBehaviour
{
private HelpshiftSdk help;
...
void Awake() {
help = HelpshiftSdk.GetInstance();
var configMap = new Dictionary<string, object>();
help.Install(appId, domainName, configMap);
}
...
}
中国向けのアプリでHelpshiftを初期化する
中国リージョン向けにHelphift SDKを統合するには、特別なインストール設定キーであるisForChinaを使用する必要があります。
この設定キーはブール値を受け入れます。中国リージョン向けのアプリでSDKを統合する場合には、trueを渡してください。指定がない場合のデフォルト値は、falseです。
using Helpshift;
public class MyGameControl : MonoBehaviour
{
private HelpshiftSdk help;
...
void Awake() {
help = HelpshiftSdk.GetInstance();
var configMap = new Dictionary<string, object>();
configMap.Add("isForChina", true);
help.Install(appId, domainName, configMap);
}
...
}
インストール呼び出しの配置
インストール呼び出しは、必ずAwake()メソッド内に配置してください。これを他の場所に配置すると、実行時の予期せぬ問題が引き起こされてしまう可能性があります。
HelpshiftInitializationException
インストール呼び出しよりも先にAPIを呼び出すと、デバッグモードで非チェックのHelpshiftInitializationExceptionがスローされる可能性があります。
Android OS version Support
バージョン24未満のAndroid SDKでinstall()を呼び出しても動作しません。すべてのAPIが操作不可能となります。
Helpshiftの使用を開始する
これでHelpshiftがアプリに統合されました。今後はアプリ内で会話画面用のサポートAPIを使用する必要があります。
アプリを実行し、_ShowConversation_API呼び出しを使用してテスト会話を開始してみてください。 その後はHelpshiftエージェントダッシュボードへと移動し、返信を行ってアプリ内のメッセージングを体験してみてください。
FAQと会話APIの使用例は、以下の通りです。
public class MyGameControl : MonoBehaviour
{
private HelpshiftSdk help;
void Awake(){
// install call here
}
void OnGUI () {
...
var configMap = new Dictionary<string, object>();
// Starting a conversation with your customers
if (MenuButton (contactButton))
{
help.ShowConversation(configMap);
}
}
}