---
title: ปรับแต่งการส่งและรับข้อความแชท
slug: world-sdk-guide-th/FClIahPTo1Y0M1dizL1_I
docTags: 
createdAt: 2024-09-02T08:34:13.134Z
---

คุณสามารถปรับแต่งข้อความแชทที่คุณส่งและรับได้โดยการนำเข้าแพ็คเกจ ZEPETO.Chat.

:::hint{type="danger"}
❗️ **คำเตือน**

- ฟีเจอร์นี้มีให้ในโลกที่มีการใช้งานหลายผู้เล่น.
:::

:::hint{type="success"}
👍 **คะแนนสำหรับการอ้างอิง**

- คุณสามารถส่ง/รับแชทแม้ในสภาพแวดล้อมของโปรแกรมแก้ไข.
- เฉพาะข้อความแชทที่สร้างโดยผู้ใช้ผ่านตัวจัดการเท่านั้นที่สามารถส่ง/รับได้ (ข้อความแชทด่วน, ข้อความระบบไม่สามารถรับได้)
:::



## การกำหนดฟังก์ชัน

```typescript
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 เพื่อส่งข้อความ

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-0ZtFY_KPKvddClWvNPaxM-20240904-102417.png "การตั้งค่าตัวอย่าง")



```typescript
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}`;
        });
    }
}
```

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-P9uASIWH_f8NmXPsY2JHx-20240904-102417.gif "ผลลัพธ์การดำเนินการตัวอย่าง")



## การเปิด/ปิดปุ่มแชท

:::hint{type="danger"}
- ฟีเจอร์ที่มีอยู่ในโลกที่มีการนำองค์ประกอบหลายผู้เล่นมาใช้
- คุณสามารถตรวจสอบได้ในมือถือ
:::

- การประกาศ

```typescript
public static SetActiveChatUI($value: boolean): void;
```

- ตัวอย่างโค้ด
  - กดปุ่มเฉพาะเพื่อสลับปุ่มแชทให้เปิด/ปิด

```typescript
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 แชท");
            }
        });
    }
}
```

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-yvlZBfrHSJ2YVoiuG6Cpy-20240904-102417.gif)



## การกำหนดข้อความที่กรองแล้ว

:::hint{type="danger"}
- ฟีเจอร์ที่มีอยู่ในโลกที่มีการนำองค์ประกอบหลายผู้เล่นมาใช้
- คุณสามารถตรวจสอบได้ในมือถือ
:::

- การประกาศ

```typescript
public isFiltered: boolean;
```

- ตัวอย่างโค้ด
  - กำหนดว่าข้อความแชทที่ได้รับเป็นข้อความที่ถูกกรองหรือไม่และพิมพ์ออกทางหน้าจอ

```typescript
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}`;
            }
        });
    }
}
```

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-METB3-RQoyAdaEyj8GGir-20240904-102417.png)

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-WV21ilO4sqGdszyn7lnuR-20240904-102417.png)

