# Friends サンプル

> Follow this workflow to implement sample Friends project in a game.

先に進む前に、Unity Hub およびサポートされるバージョンの Unity エディターを [ダウンロード](https://unity3d.com/get-unity/download) してインストールしてください。Friends サービスでは、以下の Unity エディターバージョンがサポートされます。

* 2021 以降のバージョン
  * UI ツールキットと Unity GUI をサポート
* 2020.3 以降のバージョン
  * Unity GUI をサポート

## サンプルプロジェクトをダウンロードする##download-the-sample-project

[GitHub から Friends サンプルプロジェクト](https://github.com/Unity-Technologies/com.unity.services.samples.friends) をダウンロードして、サポート対象バージョンの Unity エディターで開きます。Friends サービスを有効にした状態でサンプルプロジェクトを開く必要があります。

## Friends サービスを有効にする##enable-the-friends-service

1. Unity Dashboard にログインします。まだアカウントがない場合は、[Unity Gaming Services (UGS) の使用の準備](/services/getting-started.md) を参照してください。
2. **Multiplayer** (マルチプレイヤー) > **Friends** の順に移動します。\\


   **Frame:**
   ![](/api/media?file=/friends/media/images/friends-from-multiplayer-menu.png)
3. **Set up Friends** (Friends を設定) を選択します。
4. まだ支払い情報を追加していない場合は、Unity Dashboard に支払い情報の追加を求めるプロンプトが表示される可能性があります。Friends は [従量課金サービスで、無料利用枠が設定されています](https://unity.com/solutions/gaming-services/pricing)。ただし、Friends はベータリリース期間中は無料です。
5. その後は Setup Guide (設定ガイド) に移動し、その手順に従って Friends プロジェクトを設定します。

### Friends プロジェクトを Unity エディターにリンクする##link-your-friends-project-with-the-unity-editor

> **Note:**
>
> **ノート**: Unity Engine でプロジェクトをすでにリンクしている場合は、このステップをスキップできます。また、Friends サービスを有効にしてからプロジェクトをリンクすることもできます。

1. [Unity エディターでプロジェクトをリンクする](/services/getting-started.md#link-your-project-in-the-unity-editor) 手順に従います。
2. Setup Guide (設定ガイド) で **Next** (次へ) を選択します。

### Friends パッケージをインストールする##install-the-friends-package

1. Unity エディターの **2021 以降** または **2020.3 以降** のバージョンを使用できます。Unity Dashboard の Setup Guide (設定ガイド) で使用したいバージョンを選択し、表示される手順に従ってください。
2. 完了したら、Setup Guide (設定ガイド) で **Next** (次へ) を選択します。

### Friends をオンにする##turn-friends-on

1. Setup Guide (設定ガイド) でボタンを **On** (オン) に切り替えることにより、Friends をアクティベートします。アクティベートしたら、プレイヤーが他のプレイヤーに友達リクエストを送信して、友達リストを作成することができます。
2. **Finish** (終了) を選択します。

> **Note:**
>
> **ノート**: 他のサービスとの競合が発生した場合は、Friends サービスのアクティベートを解除してください。Friends のオン/オフはいつでも切り替えられます。

## エディターでのサンプルの実行##running-the-sample-in-editor

以下の手順を使用してサンプルをローカルで設定します。

1. Unity Hub を起動します。
2. **Open** (開く) > **Add project from disk** (ディスクからプロジェクトを追加) の順に選択します。
3. ローカルディスク上のサンプルプロジェクトの場所を選択し、**Add Project** (プロジェクトを追加) を選択します。
4. サンプルプロジェクトが、正しいエディターバージョンとともに Unity Hub に一覧表示されます。プロジェクトをダブルクリックして開きます。Unity でプロジェクトが起動するまで数分待つことが必要になる場合があります。

## プロジェクトへのアセットのドラッグアンドドロップ##drag-and-dropping-the-assets-into-your-project

このサンプルは、プロジェクトへのプラグインとして機能します。そのため Friends を即座に利用できます。

### アセットを取得する##get-the-assets

`Assets/FriendsSample/` フォルダー全体をサンプルプロジェクトから自分のプロジェクトにドラッグするか、`.unitypackage` としてフォルダーをエクスポートします。

### 依存関係の解決##resolving-dependencies

このプロジェクトは、以下の 2 つの非標準 Unity パッケージの依存関係に基づいています。

* Friends Service SDK
  * これを取得するには、Package Manager (**Window** (ウィンドウ) > **Package Manager**) に移動します。
  * ウィンドウの左上にある小さい + アイコンをクリックし、**Add package from Git URL** (Git URL からパッケージを加える) または **Add package by name** (名前でパッケージを追加) を選択します。
  * **com.unity.services.friends** と入力します。
* TextMesh Pro 必須リソース
  * これを取得するには、**Window** (ウィンドウ) > **TextMesh Pro** > **Import TMP Essential Resources** (TMP 必須リソースのインポート) の順に移動します。

### サンプルアセットの使用##using-the-sample-assets

2020.3 向けのサンプルではキャンバススタイルの UI、2021.1 以降向けのサンプルでは UI ツールキットスタイルの UI がサポートされています。サンプルシーンを調べて、階層と標準設定を確認しましょう。また、**RelationshipsManager** を任意のシーンにドラッグすると、UI に表示されて機能するようになります。

## サンプルプロジェクトを再生する##play-with-the-sample-project

この時点では、Unity エディターでサンプルプロジェクトを開いた状態です。次はサンプルを操作していきましょう。

> **Note:**
>
> **ノート**: まだ Unity エディターへのログインと [Unity プロジェクトへのリンク](/services/getting-started.md) を行っていない場合は、続行する前に行ってください。

サンプルプロジェクトは、Friends サービスを操作して以下のようなアクションを実行できる、シンプルなユーザーインターフェースで構成されています。

* [友達リクエストを送信する](#send-a-friend-request)
* [友達リクエストを承認する](#send-a-friend-request)
* [友達リクエストを無視する](#send-a-friend-request)
* [プレイヤーをブロックする](#block-a-player)
* [友達リストを表示する](#view-your-friends-list)
* [ブロックリストを表示する](#view-your-block-list)
* [プレイヤーをブロック解除する](#unblock-a-player)
* [友達を削除する](#remove-a-friend)
* [プレゼンスステータスを設定する](#set-your-presence-status)

以下の表は、ボタンとユーザーインターフェース要素の意味に関するリファレンスとして使用してください。

|                                  |                       |
| -------------------------------- | --------------------- |
| **ボタン名**                         | **説明**                |
| Decline (×) (拒否)                 | 友達リクエストを拒否する          |
| Accept (✔) (承認)                  | 友達リクエストを承認する          |
| Block (-) (ブロック)                 | プレイヤーをブロックする          |
| Unblock (ブロック解除)                 | プレイヤーをブロックリストから削除する   |
| Remove (削除)                      | プレイヤーを友達リストから削除する     |
| 友達リスト                            | 友達になっているすべてのプレイヤーのリスト |
| ブロックリスト                          | ブロックしたすべてのプレイヤーのリスト   |
| Friend Request List (友達リクエストリスト) | 受信した友達リクエストのリスト       |

### プロジェクトを開始する##start-the-project

サンプルユーザーインターフェースを操作できるようにするには、まずサンプルシーンを開始する必要があります。

1. **Project** (プロジェクト) タブで、**Assets** (アセット) > **Scenes** (シーン) の順に選択します。
2. **FriendsSampleUGUI シーンまたは FriendsSampleUIToolkit** シーンをダブルクリックします。\\


   **Frame:**
   ![](/api/media?file=/friends/media/images/friends-scene.png)
3. Unity エディターの **再生モード** に切り替えて、シーンを開始します。

シーンが起動したら、Friends のサンプルユーザーインターフェースが表示されます。

### プロジェクトをテストする##testing-the-project

このプロジェクトを単体でテストするには、Unity エディターを開いた状態で、プロジェクトのビルドを開く必要があります。

1. Build Settings (**File** (ファイル) > **Build Settings** (ビルド設定)) を開きます。
2. 目的のプラットフォームへのビルドを選択します。(Windows と macOS でテスト済み)。
3. いずれかのサンプルシーンが最上位シーンとして含まれていることを確認します。
4. 完了したら、ビルドとエディターを同時に実行します。

### 友達リクエストを送信する##send-a-friend-request

プレイヤーの ID と **Add Friend** (友達を追加) ボタンを使用して、他のプレイヤーに [友達リクエスト](../concepts/friend-requests) を送信できます。

1. プロジェクトからプレイヤー ID をコピーします。\\


   **Frame:**
   ![](/api/media?file=/friends/media/images/player-id-screenshot.png)
2. プロジェクトのビルドに切り替えます。
3. **Add Friend** (友達を追加) ボタンを選択します。\\


   **Frame:**
   ![](/api/media?file=/friends/media/images/add-friend-button-screenshot.png)
4. プロジェクトプレイヤーの ID を ID フィールドに貼り付けて、**Add** (追加) を選択します。\\


   **Frame:**
   ![](/api/media?file=/friends/media/images/add-friend-screenshot.png)
5. Unity エディターに戻ります。
6. **Friend Request List** (友達リクエストリスト) ボタンを選択します。\\


   **Frame:**
   ![](/api/media?file=/friends/media/images/requests-list-screenshot.png)
7. ビルドプレイヤーからの友達リクエストを **Accept** (承認) または **Ignore** (無視) します。

### プレイヤーをブロックする##block-a-player

プレイヤーにブロックされると、そのプレイヤーはオフラインとして表示されます。プレイヤーをブロックすると、そのプレイヤーはブロックリストに表示されます。

他のプレイヤーを [ブロック](../concepts/block-list) する方法には、[友達リスト](../concepts/friends-list) からのブロックと、友達リクエスト受信トレイからのブロックという 2 つの方法があります。

友達リストからプレイヤーをブロックする方法:

1. **Friends list** (友達リスト) ボタンを選択します。
2. ブロックしたいプレイヤーの名前の横にある **Block** (**-**) (ブロック) ボタンを選択します。

自分に友達リクエストを送信したプレイヤーをブロックする方法:

1. **Friend Request list** (友達リクエストリスト) ボタンを選択します。
2. ブロックしたいプレイヤーの名前の横にある **Block** (**-**) (ブロック) ボタンを選択します。

ブロックしたプレイヤーは [ブロックリスト](../concepts/block-list) で確認してブロック解除できます。

### プレイヤーをブロック解除する##unblock-a-player

プレイヤーをブロック解除するには、[ブロックリストを表示](#view-your-block-list) して、プレイヤーの名前の横にある **Unblock** (ブロック解除) ボタンを選択します。


**Frame:**
![](/api/media?file=/friends/media/images/unblock-screenshot.png)

### 友達を削除する##remove-a-friend

友達を [友達リスト](../concepts/friends-list) から削除するには、友達リスト内のプレイヤーの名前の横にある **Remove friend** (友達を削除) ボタンを選択します。

1. **Friends list** (友達リスト) ボタンを選択します。
2. **Remove friend** (友達を削除) ボタンを選択します。

### プレゼンスステータスを設定する##set-your-presence-status

[プレゼンス](../concepts/presence) ステータスを設定するには、現在のステータスの横にある下向き矢印を選択し、新しいステータスを選択します。例えば、ステータスを ONLINE (オンライン) から BUSY (取り込み中) に変更するには、以下の手順に従います。

INVISIBLE (非表示) は、すべての友達に対して自分がオフラインとして表示されるようにする、特殊なステータスです。

1. ONLINE (オンライン) の横にある下向き矢印を選択します。
2. **BUSY** (取り込み中) を選択します。


**Frame:**
![](/api/media?file=/friends/media/images/set-presence-screenshot.png)

### アクティビティステータスを設定する##set-your-activity-status

アクティビティステータスを設定するには、**Presence** (プレゼンス) ドロップダウンの右側にあるテキストを選択します。例えば、現在プレイしているゲーム内でのプレイヤーのアクティビティに基づき、カスタムステータスを設定できます。

1. **In Friends Menu** (Friends メニュー内) というテキストを選択します。これがデフォルトのアクティビティステータスです。
2. 新しいメッセージを入力し、Enter キーを押します。Enter キーを押した後、友達リスト内のユーザーには更新したアクティビティステータスが表示されます。

> **Note:**
>
> **ノート**: Friends サービスでは、ユーザーがオフラインになったときにプレゼンスやアクティビティが自動的に保存されることはありません。ログオン状態に戻ったときに同じプレゼンスやアクティビティを持続させるには、プレゼンスやアクティビティをローカルに保存するか、[Cloud Save](/cloud-save/.md) のようなデータストレージサービスを利用します。

### 友達リストを表示する##view-your-friends-list

[友達リスト](../concepts/friends-list) を表示するには、**Friends List** (友達リスト) ボタンを選択します。


**Frame:**
![](/api/media?file=/friends/media/images/friends-list-screenshot.png)

### リクエストリストを表示する##view-your-request-list

[友達リクエスト](../concepts/friend-requests) リストを表示するには、**Request list** (リクエストリスト) ボタンを選択します。


**Frame:**
![](/api/media?file=/friends/media/images/requests-list-screenshot.png)

### ブロックリストを表示する##view-your-block-list

[ブロックリスト](../concepts/block-list) を表示するには、**Block list** (ブロックリスト) ボタンを選択します。


**Frame:**
![](/api/media?file=/friends/media/images/block-list-screenshot.png)
