1.6 KiB
1.6 KiB
name, description
| name | description |
|---|---|
| C# Chat System Formatting | Hướng dẫn viết code C# cho hệ thống chat dùng AUIDialog.FormatPrintf và pGameUI.GetStringFromTable. |
C# Chat System Formatting
Skill này cung cấp hướng dẫn khi viết code C# cho hệ thống chat (ví dụ như khi chuyển đổi code từ C++ sang C# trong Unity).
Quy tắc lấy chuỗi và format
Khi cần lấy một chuỗi từ bảng ngôn ngữ (Table) và format chuỗi đó với các tham số (thay thế cho %s, %d,...), hãy sử dụng kết hợp pGameUI.GetStringFromTable và AUIDialog.FormatPrintf.
Trong phiên bản C++ gốc (ví dụ trong EC_GameUIMan.cpp), việc lấy chuỗi thường dùng GetStringFromTable và format bằng swprintf hoặc các hàm tương tự. Ở phiên bản C#, chúng ta thực hiện như sau:
// Ví dụ Table 9343: chuỗi dạng "Thời gian đăng nhập trước: %s"
// AUIDialog.FormatPrintf sẽ thực hiện kết hợp giữa pGameUI.GetStringFromTable(9343) và chuỗi timeStr
string textTime = AUIDialog.FormatPrintf(pGameUI.GetStringFromTable(9343), timeStr);
Các bước thực hiện
- Đảm bảo đã lấy được referent tới
pGameUI, ví dụ quaCECUIManager.Instance?.GetInGameUIMan(). - Lấy chuỗi format gốc từ bảng ngôn ngữ:
pGameUI.GetStringFromTable(ID). - Dùng
AUIDialog.FormatPrintfđể thay thế các placeholder (như%s,%d) trong chuỗi lấy được bằng các giá trị thực tế. - Gửi chuỗi đã được format đến hệ thống chat, ví dụ qua
EventBus.Publish(new GameSession.ChatMessageEvent {...}).