ข้ามไปที่เนื้อหา

การแสดงผลในเอนจิน UI แบบโอเวอร์เลย์

ภาพรวม

ฟังก์ชันการแสดงผลโอเวอร์เลย์ในเอนจิน UI เป็นฟังก์ชันที่แสดงโอเวอร์เลย์ที่ SDK จัดเตรียมไว้ผ่านระบบ UI ของเกมเอนจิน ฟังก์ชันนี้ใช้ข้อมูลหน้าจอ OSR (Off-Screen Rendering) ของ Chromium Embedded Framework (CEF) Hive SDK จะส่งข้อมูลนี้ไปยัง UI ของเกมเอนจินเพื่อแสดงโอเวอร์เลย์ วิธีนี้ช่วยให้แสดงโอเวอร์เลย์บนหน้าจอเกมได้อย่างเสถียรในสภาพแวดล้อม Windows ฟังก์ชันนี้รองรับใน Hive SDK Unity Windows และ Hive SDK Unreal Windows

วิธีใช้งาน

  1. ตั้งค่า engineOsrRenderEnabled เป็น true ใน hive_config.xml
  2. หากเปลี่ยนการตั้งค่าหลังจากติดตั้ง Hive SDK แล้ว ให้บิลด์แพ็กเกจเกมที่รวม SDK ใหม่อีกครั้ง หากไม่บิลด์เกมใหม่ การตั้งค่าที่เปลี่ยนจะไม่ถูกนำไปใช้
  3. หลังจากบิลด์เสร็จแล้ว เมื่อรันเกมจะทำงานดังนี้:
    • Hive SDK Unreal Windows: ค้นหาเกมเวิลด์ (Game World) ปัจจุบันโดยอัตโนมัติและเรนเดอร์โอเวอร์เลย์หน้าจอ UI ของ Hive SDK ลงบนหน้าจอเกมโดยตรง
    • Hive SDK Unity Windows: เรนเดอร์โอเวอร์เลย์หน้าจอ UI ของ Hive SDK ลงบนหน้าจอเกมโดยตรง

Unreal Engine: กำหนด World โดยตรงเพื่อแสดงโอเวอร์เลย์

Hive SDK Unreal Windows จะค้นหา World ปัจจุบันของเกมโดยอัตโนมัติและเรนเดอร์โอเวอร์เลย์หน้าจอ UI ของ SDK บนหน้าจอเกม อย่างไรก็ตาม หากโปรเจ็กต์ Unreal Engine ใช้หลาย World หรือแสดงโอเวอร์เลย์ในสภาพแวดล้อมแยกต่างหากแทนหน้าจอเกมปกติ SDK อาจตัดสินใจ World ที่จะใช้แสดงโอเวอร์เลย์โดยอัตโนมัติได้ยาก ในกรณีที่ World เป้าหมายสำหรับแสดงโอเวอร์เลย์เปลี่ยนไป ให้ส่ง World ใหม่ไปยัง SetTargetWorld() แล้วเรียกใช้อีกครั้งดังตัวอย่างด้านล่าง

#include "CefOverlayManager.h"

void AMyPlayerController::BeginPlay()
{
    Super::BeginPlay();

    UCefOverlayManager::Get()->SetTargetWorld(GetWorld());
}