チャットメッセージの送受信をカスタマイズする
11 分
送受信するチャットメッセージをZEPETO.Chatパッケージをインポートすることでカスタマイズできます。
❗️ 注意
- この機能はマルチプレイヤー要素が実装されたワールドで利用可能です。
👍 参考ポイント
- エディタ環境でもチャットを送受信できます。
- ハンドラーを通じてユーザーが作成したチャットメッセージのみが送受信できます(クイックチャット、システムメッセージは受信できません)
関数定義
class ZepetoChat extends System.Object {
public static get Instance(): ZepetoChatImplementation;
public static get OnReceivedMessage(): UnityEngine_Events.UnityEvent$1<IMessage>;
public constructor();
public static Send($message: string): void;
}- ZepetoChat。Send()を使用して特定のメッセージをチャットウィンドウに送信できます。
- ZepetoChat.OnReceivedMessage.AddListener()を使用して、どのイベントでメッセージを受信するかを決定できます。
使用例
ボタン1と2を押して指定されたメッセージを送信します。 メッセージを送信するためにinputFieldにカスタムメッセージを作成します。

設定例
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { Button, InputField, Text } from 'UnityEngine.UI';
import { ZepetoChat, MessageType, UserMessage } from 'ZEPETO.Chat';
import { Color } from 'UnityEngine';
export default class CustomChat extends ZepetoScriptBehaviour {
public custom1ChatBtn: Button;
public custom2ChatBtn: Button;
public sendChatBtn: Button;
public resultText: Text;
public inputChatbox: InputField;
Start() {
// ボタンがクリックされたとき
this.custom1ChatBtn.onClick.AddListener(() => {
// テキストの色を変更
this.resultText.color = Color.magenta;
// メッセージを送信
ZepetoChat.Send("1");
});
this.custom2ChatBtn.onClick.AddListener(() => {
this.resultText.color = Color.blue;
ZepetoChat.Send("2");
});
this.sendChatBtn.onClick.AddListener(() => {
this.resultText.color = Color.black;
const inputMsg = this.inputChatbox.text;
ZepetoChat.Send(inputMsg);
});
// メッセージを受信
ZepetoChat.OnReceivedMessage.AddListener(msg => {
const userMsg = msg as UserMessage;
this.resultText.text = `[USER - ${userMsg.userName}] - ${userMsg.message}`;
});
}
}
実行結果の例
チャットボタンの有効化/無効化
- マルチプレイヤー要素が実装された世界で利用可能な機能。
- モバイルテストで確認できます。
- 宣言
public static SetActiveChatUI($value: boolean): void;- サンプルコード
- 特定のボタンを押してチャットボタンを有効/無効に切り替えます。
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { Button } from 'UnityEngine.UI';
import { ZepetoChat, MessageType, UserMessage } from 'ZEPETO.Chat';
export default class ChatController extends ZepetoScriptBehaviour {
public chatUIBtn: Button;
private isChatUIActive : boolean = true;
Start() {
// ボタンがクリックされたとき
this.chatUIBtn.onClick.AddListener(() => {
// メッセージを送信
if (this.isChatUIActive) {
ZepetoChat.SetActiveChatUI(false);
this.isChatUIActive = false;
console.log("チャットUI無効化");
}
else {
ZepetoChat.SetActiveChatUI(true);
this.isChatUIActive = true;
console.log("チャットUI有効化");
}
});
}
}
フィルタリングされたメッセージの決定
- マルチプレイヤー要素が実装された世界で利用可能な機能。
- モバイルテストで確認できます。
- 宣言
public isFiltered: boolean;- サンプルコード
- 受信したチャットメッセージがフィルタリングされたメッセージかどうかを判断し、画面に表示します。
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { Text } from 'UnityEngine.UI';
import { ZepetoChat, MessageType, UserMessage } from 'ZEPETO.Chat';
export default class ChatController extends ZepetoScriptBehaviour {
public filterResultText: Text;
Start() {
// メッセージを受信
ZepetoChat.OnReceivedMessage.AddListener(msg => {
const userMsg = msg as UserMessage;
if (userMsg.isFiltered) {
this.filterResultText.text = `このメッセージはフィルタリングされました : ${userMsg.message}`;
} else {
this.filterResultText.text = `このメッセージはフィルタリングされていません : ${userMsg.message}`;
}
});
}
}
