プレイヤー検索メニューを追加する - プレイヤーを検索する - (Unity モジュール)
注釈:本資料はAI技術を用いて翻訳されています。
メニューの内容
このチュートリアルでは、表示名でプレイヤーを検索し、フレンド招待リクエストを送信するために使用するユーザーインターフェース (UI) を準備する方法を学びます。ファイルは リソース セクションで入手でき、以下で構成されています:
- FindFriendsMenu_Starter: 表示名またはフレンドコードでプレイヤーを検索する UI メニュー。
- C# ファイル:
/Assets/Resources/Modules/Social/FriendsEssentials/Scripts/UI/FindFriendsMenu_Starter.cs - Prefab ファイル:
/Assets/Resources/Modules/Social/FriendsEssentials/Prefabs/FindFriendsMenu_Starter.prefab
- C# ファイル:
- FriendEntry: 表示名、アバター、フレンド招待送信ボタンなどのプレイヤー情報を表示する UI コンポーネント。
- C# ファイル:
/Assets/Resources/Modules/Social/FriendsEssentials/Scripts/UI/FriendEntry.cs - Prefab ファイル:
/Assets/Resources/Modules/Social/FriendsEssentials/Prefabs/FriendEntry.prefab
- C# ファイル:
これらの UI メニューの Prefab を確認して、より詳細な情報を入手してください。
フレンド検索メニュー
以下は FindFriendsMenu_Starter.prefab のプレビューです。このメニューは以下のコンポーネントで構成されています:
- Friend Code Text: フレンドコードを入力するテキストフィールド。
- Copy Code Button: フレンドコードをコピーするボタン。
- Search Bar: 検索したいプレイヤーの表示名を入力するテキストフィールド。
- Search Button: 表示名でプレイヤーを検索するボタン。
このメニューには、デフォルトパネル、ローディングパネル、ローディング失敗パネル、検索結果パネルなど、検索結果を表示するためのいくつかのパネルもあります。

検索バーと見つかったプレイヤーエントリを表示するリストは、FindFriendsMenu_Starter.cs スクリプトで定義されています。このスクリプトには、UI 参照を保存するための以下のフィールドがあります:
[Header("Find Friends Components")]
[SerializeField] private GameObject friendEntryPrefab;
[SerializeField] private TMP_Text friendCode;
[SerializeField] private Button friendCodeCopyButton;
[SerializeField] private TMP_InputField friendSearchBar;
[SerializeField] private Button friendSearchButton;
[Header("Menu Components")]
[SerializeField] private AccelByteWarsWidgetSwitcher widgetSwitcher;
[SerializeField] private Transform resultContentPanel;
[SerializeField] private Button backButton;
このメニューは、検索が成功すると、resultContentPanel フィールドにインスタンス化された 1 つのプレイヤーエントリを一度に表示します。スクリプトには、現在のプレイヤーエントリを保存するための以下のプロパティがあります:
private GameObject userResult;
widgetSwitcher コンポーネントは、デフォルトビュー、ローディング状態、空の結果状態、エラー状態など、メニューを異なる状態に切り替えるために使用されます。
ClearSearchPanel() メソッドを使用して、検索パネルをクリアし、現在のプレイヤーエントリを破棄できます。
private void ClearSearchPanel()
{
resultContentPanel.DestroyAllChildren();
if (userResult != null)
{
Destroy(userResult);
}
}
OnFriendCodeCopyButtonClicked() メソッドは、プレイヤーがコピーボタンをクリックしたときに呼び出されます。このメソッドは、フレンドコードをクリップボードにコピーし、フレンドコードがコピーされたことをプレイヤーに通知するメッセージを表示します。
private async void OnFriendCodeCopyButtonClicked()
{
AccelByteWarsUtility.CopyToClipboard(friendCode.text);
TMP_Text buttonText = friendCodeCopyButton.GetComponentInChildren<TMP_Text>();
string originalText = buttonText.text;
buttonText.SetText(FriendsEssentialsModels.FriendCodeCopiedMessage);
friendCodeCopyButton.interactable = false;
await UniTask.Delay(TimeSpan.FromSeconds(2));
buttonText.SetText(originalText);
friendCodeCopyButton.interactable = true;
}
フレンドエントリ
以下は FriendEntry.prefab のプレビューです。この Prefab は、表示名、アバター、フレンド招待送信ボタンなどのプレイヤー情報を表示します。

この Prefab には、表示名、アバター、招待送信ボタンの UI 参照を保持する FriendEntry.cs というスクリプトコンポーネントがあります。スクリプトには、他のオブジェクトが表示される情報を変更できるようにするための以下のパブリックゲッターとプロパティがあります。
public string UserId { get; set; } = string.Empty;
public Image FriendImage => friendImage;
public TMP_Text FriendName => friendName;
public TMP_Text FriendStatus => friendStatus;
public Button SendInviteButton => sendInviteButton;
UI を準備する
UI Prefab を準備するには、以下の手順に従います:
-
FindFriendsMenu_Starter.csを開き、FindFriend()メソッドを見つけます。このメソッドは、プレイヤーが Enter キーを押すか、検索ボタンをクリックしたときに呼び出されます。現時点では、警告メッセージをログに記録するだけです。private void FindFriend(string query)
{
BytewarsLogger.LogWarning("The FindFriend method is not implemented yet");
} -
Unity Editor で、
Assets/Resources/Modules/Social/FriendsEssentialsに移動します。FriendsEssentialsAssetConfigというアセット設定があります。これを開き、Is Starter Activeを有効にします。これにより、フレンド関連の UI スターターファイルがアクティブになります。
-
Unity Editor でゲームをプレイします。実装が成功した場合、Social > Find Friends に移動できるようになります。テキスト入力をクリックして Enter を押すか、検索ボタンをクリックして、フレンドを検索してみてください。コンソールに警告メッセージが表示されます。
[FindFriendsMenu_Starter] [FindFriend] [Warning] [85] - The FindFriend method is not implemented yet
リソース
- このチュートリアルで使用されるファイルは、Unity Byte Wars GitHub リポジトリで入手できます。
- Assets/Resources/Modules/Social/FriendsEssentials/FriendsEssentialsAssetConfig.asset
- Assets/Resources/Modules/Social/FriendsEssentials/Scripts/FindFriendsMenu_Starter.prefab
- Assets/Resources/Modules/Social/FriendsEssentials/Scripts/FindFriendsMenu_Starter.cs
- Assets/Resources/Modules/Social/FriendsEssentials/Prefabs/FriendEntry.prefab
- Assets/Resources/Modules/Social/FriendsEssentials/Scripts/UI/FriendEntry.cs