CREATE YOUR WORLD
채팅 기능
송/수신하는 채팅 메세지 커스터마이즈하기
11min
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를 눌러 지정된 메시지를 전송하세요 입력 필드에서 사용자 정의 메시지를 만들어 메시지를 전송하세요 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() { // receive message zepetochat onreceivedmessage addlistener(msg => { const usermsg = msg as usermessage; if (usermsg isfiltered) { this filterresulttext text = `이 메시지는 필터링되었습니다 ${usermsg message}`; } else { this filterresulttext text = `이 메시지는 필터링되지 않았습니다 ${usermsg message}`; } }); } }