パーティーメニューの追加 - パーティー入門 - (Unity モジュール)
注釈:本資料はAI技術を用いて翻訳されています。
メニューの内容
このセクションでは、パーティーメンバーを表示するための UI を準備する方法を学びます。これらの UI は以下のクラスで定義されています:
-
PartyMenu_Starter: パーティーメンバーを表示するために使用される C# クラス。
- CS ファイル:
Assets/Resources/Modules/Play/PartyEssentials/Scripts/UI/PartyMenu_Starter.cs - Prefab ファイル:
Assets/Resources/Modules/Play/PartyEssentials/Prefabs/PartyMenu_Starter.prefab
- CS ファイル:
-
PartyMemberEntry: 表示名やアバターなど、個々のパーティーメンバー情報を表示するために使用される C# クラス。
- CS ファイル:
Assets/Resources/Modules/Play/PartyEssentials/Scripts/UI/PartyMemberEntry.cs - Prefab ファイル:
Assets/Resources/Modules/Play/PartyEssentials/Prefabs/PartyMemberEntry.prefab
- CS ファイル:
これらの UI がどのように構築されているかの詳細を見ていきましょう。
パーティーメニュー
以下は PartyMenu_Starter プレハブのプレビューです。このプレハブは、パーティーメンバーを表示するコンテナとパーティーから退出するボタンで構成されています。

このメニューで使用されるコンポーネントは、PartyMenu_Starter クラスで定義されています。
[SerializeField] private Transform memberEntryContainer;
[SerializeField] private PartyMemberEntry memberEntryPrefab;
[SerializeField] private AccelByteWarsWidgetSwitcher widgetSwitcher;
[SerializeField] private Button leaveButton;
[SerializeField] private Button backButton;
パーティーメンバーエントリー
以下は PartyMemberEntry プレハブのプレビューです。このプレハブには2つの状態があります:個々のパーティー情報を表示する状態と、新しいパーティーメンバーを追加するボタンを表示する状態です。
以下は、個々のパーティーメンバー情報を表示する状態のプレビューです:

以下は、パーティーメンバー追加ボタンを表示する状態のプレビューです:

これらの状態を切り替えるために、PartyMemberEntry クラスファイルには以下の関数があります。SetPartyMember() はパーティーメンバー情報を表示するために使用され、ResetPartyMember() はパーティーメンバー追加ボタンを表示するために使用されます。
public void SetPartyMember(AccelByte.Models.AccountUserPlatformData memberUserData, bool isLeader)
{
cachedMemberUserData = memberUserData;
SetPartyMemberColor(isLeader ? leaderColor : memberColor);
memberNameText.text = AccelByteWarsOnlineUtility.GetDisplayName(memberUserData);
avatarImage.LoadImage(memberUserData.AvatarUrl);
// Switch view to display member information.
memberButton.gameObject.SetActive(true);
addMemberButton.gameObject.SetActive(false);
// Only set button interaction for non-current user entry.
SetInteractable(GameData.CachedPlayerState.PlayerId != memberUserData.UserId);
}
public void ResetPartyMember()
{
memberNameText.text = string.Empty;
avatarImage.ResetImage();
SetPartyMemberColor(Color.white);
// Switch view to display add member button.
memberButton.gameObject.SetActive(false);
addMemberButton.gameObject.SetActive(true);
SetInteractable(true);
}
以下は、このプレハブで使用されるコンポーネントの宣言です。これらの宣言は PartyMemberEntry クラスにあります。
[SerializeField] private Image outlineImage;
[SerializeField] private AccelByteWarsAsyncImage avatarImage;
[SerializeField] private TMP_Text memberNameText;
[SerializeField] private Button memberButton;
[SerializeField] private Button addMemberButton;
プレイヤーアクションメニュー
フレンドリストの表示モジュールで概説されたこのフレンド詳細メニューは、フレンド詳細の表示に加えて、アクションボタンを表示するプレイヤーアクションメニューとしても機能します。これらのボタンは実行時に動的に生成されます。
このモジュールでは、使用する3つの生成されたボタンがあります。それらは、パーティー招待の送信、パーティーからのプレイヤーのキック、パーティーメンバーを新しいリーダーに昇格させるためのボタンです。

これらのボタンは、PartyEssentialsWrapper_Starter クラスで定義された以下の関数にバインドされています。これについては次のセクションで詳しく説明します。
public void OnInviteToPartyButtonClicked(string inviteeUserId)
{
// TODO: Call function to send party invite.
}
public void OnKickPlayerFromPartyButtonClicked(string targetUserId)
{
// TODO: Call function to kick player from party.
}
public void OnPromotePartyLeaderButtonClicked(string targetUserId)
{
// TODO: Call function to promote party leader.
}
UI の準備
このセクションでは、前のセクションで説明したメニューを有効にする方法を学びます。
-
プロジェクトをビルドし、Unity エディターで開きます。エディターで、
Assets/Resources/Modules/Play/PartyEssentialsに移動し、PartyEssentialsAssetConfig.assetを開きます。次に、Is ActiveチェックボックスとIs Starter Activeチェックボックスにチェックを入れて、スターターモードでモジュールを有効にします。 -
次に、エディターでゲームをプレイします。メインメニュー > ソーシャル > パーティーに移動できるようになります。
リソース
-
このチュートリアルセクションで使用されるファイルは、Unity Byte Wars GitHub リポジトリで入手できます。
- Assets/Resources/Modules/Play/PartyEssentials/Prefabs/UI/PartyMenu_Starter.prefab
- Assets/Resources/Modules/Play/PartyEssentials/Scripts/UI/PartyMenu_Starter.cs
- Assets/Resources/Modules/Play/PartyEssentials/Prefabs/UI/PartyMemberEntry.prefab
- Assets/Resources/Modules/Play/PartyEssentials/Scripts/UI/PartyMemberEntry.cs
- Assets/Resources/Modules/Play/PartyEssentials/Scripts/PartyEssentialsWrapper_Starter.cs