หากมีคำถามที่ไม่มีคำตอบในหน้านี้ โปรดติดต่อเราโดยใช้ข้อมูลติดต่อในหน้าติดต่อทีมสนับสนุน
หน้านี้อาจได้รับการอัปเดตด้วยคำถามที่พบบ่อยเมื่อเราได้รับคำถามเหล่านั้น
ทั่วไป
ส่วนนี้มีคำถามที่ไม่เข้าข่ายคำถามในหมวดหมู่ใดหมวดหมู่หนึ่ง
ฉันทดสอบเกมในสภาพแวดล้อมของ YouTube ได้ไหม
ได้ โดยใช้พอร์ทัลนักพัฒนาแอปและทำตาม วิธีการทดสอบ
เกมของฉันไม่แสดงผลใน Android หรือชุดทดสอบ SDK ฉันควรทำอย่างไร
เมื่อเกมไม่แสดงผลใน Android หรือชุดทดสอบ SDK เท่านั้น มักเกิดจากวิธีโหลดเกมใน WebView ระบบจะโหลดเกมใน WebView ที่ไม่แสดงต่อผู้ใช้ในตอนแรกด้วยเหตุผลด้านประสิทธิภาพ ซึ่งจะทำให้ขนาดวิวพอร์ตของ WebView เป็น 0 เราขอแนะนำวิธีแก้ปัญหาต่อไปนี้
(1) ตรวจสอบว่าโค้ดเกมทำงานได้ไม่ว่าขนาดวิวพอร์ตจะเป็นเท่าใด
(2) ตรวจสอบว่าโค้ดเกมจัดการการปรับขนาดวิวพอร์ตได้ และโค้ดเกมไม่รอหรือล้มเหลวเมื่อขนาดวิวพอร์ตเป็น 0
เราขอแนะนำให้คุณรอรับเหตุการณ์ resize ของหน้าต่างและตั้งค่าความสูงของเกมเมื่อ window.innerHeight ไม่เป็น 0 เท่านั้น
ข้อกำหนดทางเทคนิค
ส่วนนี้มีคำถามที่เกี่ยวข้องกับข้อกำหนดทางเทคนิคของฟีเจอร์เล่นเกมของ YouTube
ฉันขอรับการยกเว้นสำหรับข้อจำกัดด้านขนาดไฟล์แต่ละไฟล์ได้ไหม
ไม่ได้ ขนาดไฟล์แต่ละไฟล์ เป็นขีดจำกัดที่แน่นอน
ระบบวัดขนาดของ Bundle เริ่มต้นอย่างไร
ระบบจะวัดขนาดของ Bundle เริ่มต้นเป็นจำนวนไบต์ทั้งหมดที่ Playable ดาวน์โหลดจนกว่าจะมีการเรียกใช้เหตุการณ์ gameReady
Playables ใช้การบีบอัด HTTP เมื่อเป็นไปได้ ซึ่งหมายความว่า ขนาดของ Bundle เริ่มต้นอาจเล็กกว่าขนาดดิบทั้งหมดของ ชิ้นงาน เมื่อทดสอบขนาดของ Bundle เริ่มต้นใน ชุดทดสอบ SDK หากโฮสต์ในเครื่องของคุณไม่ได้บีบอัด ชิ้นงาน ขนาดของ Bundle เริ่มต้นอาจใหญ่กว่าขนาดที่จะเกิดขึ้นเมื่อเผยแพร่ Playable หากต้องการดูขนาดของ Bundle เริ่มต้นจริงที่แสดงสำหรับ Playable ให้ใช้ ชุดทดสอบ SDK ที่ชี้ไปที่ไฟล์ index.html จาก บิลด์ที่อัปโหลด หรือแก้ไขการตั้งค่าเซิร์ฟเวอร์ในเครื่องเพื่อ เปิดใช้การบีบอัด gzip
ฉันมีขนาดไฟล์แต่ละไฟล์หรือขนาดของ Bundle ทั้งหมดถึงหรือเกินขีดจำกัดแล้ว ฉันควรทำอย่างไร
หากต้องการเพิ่มประสิทธิภาพเกมและปรับปรุงประสิทธิภาพ โปรดดูบทความต่อไปนี้
- การบีบอัดรูปภาพ
- การตรวจสอบประสิทธิภาพ
- เวลาในการโหลดที่รวดเร็ว
-
การเพิ่มประสิทธิภาพการเข้ารหัสและขนาดการโอนชิ้นงานที่อิงตามข้อความ
ฉันควรทำอย่างไรหากขนาดของ Bundle ทั้งหมดเกินขีดจำกัด
ผู้ใช้อาจต้องดาวน์โหลดชิ้นงานจากเกมทุกครั้งที่เล่นเกม เราขอแนะนำให้ขนาดของ Bundle ทั้งหมดของเกมมีขนาดเล็กที่สุดเท่าที่จะเป็นไปได้เพื่อป้องกันไม่ให้เวลาที่ใช้ในการโหลดนานและมีการใช้ปริมาณการใช้อินเทอร์เน็ตจำนวนมาก
เราขอแนะนำให้เกมใช้การโหลดแบบ Lazy Loading หรือการโหลดเนื้อหาแบบเพิ่มทีละน้อยประเภทอื่นๆ ระหว่างเซสชันการเล่นแต่ละครั้งเมื่อผู้เล่นมีความคืบหน้า หรือแบ่งเนื้อหาออกเป็นระดับต่างๆ เพื่อให้ดาวน์โหลดเนื้อหาได้ทีละน้อยๆ ในเซสชันที่ยาวนาน ในสถานการณ์เช่นนี้ การมีขนาดของ Bundle ทั้งหมดที่ใหญ่ขึ้นอาจไม่ทำให้ประสบการณ์ของผู้ใช้แย่ลง และอาจสร้างประสบการณ์ของผู้ใช้ที่ดีขึ้นด้วยซ้ำโดยการเปิดใช้เนื้อหาเพิ่มเติมในเกมของคุณโดยมีร่องรอยต่อผู้ใช้ที่น้อยลง หากคุณ คิดว่าเกมของคุณทำงานในลักษณะนี้และสมควรที่จะมีขนาดของ Bundle ทั้งหมดที่ใหญ่ขึ้น โปรดติดต่อเราโดยใช้ หน้าติดต่อทีมสนับสนุน เพื่อพูดคุยเกี่ยวกับกรณีการใช้งานของคุณ
ฉันยกเว้นการวิเคราะห์ภายในจากการกำหนดให้มีการเรียกภายนอกได้ไหม
ไม่ได้ ขณะนี้ Playables ต้องไม่ทำการเรียกภายนอกที่ เวลานี้ โปรดแจ้งให้ผู้จัดการพาร์ทเนอร์ทราบเกี่ยวกับข้อมูลวิเคราะห์ที่คุณสนใจ เพื่อให้เราจัดลำดับความสำคัญของฟีเจอร์ในอนาคตในส่วนนี้ได้
เกมดึงข้อมูลและระดับจากฐานข้อมูลระยะไกลได้ไหม
ขณะนี้ยังไม่ได้ แต่เรากำลังทดลองใช้การเข้าถึงข้อมูลระยะไกลกับเกมบางเกม ปัจจุบันข้อมูลเกมทั้งหมดต้องรวมอยู่ใน Bundle ของเกม หากต้องการอัปเดตหรือรีเฟรชชิ้นงานหรือเนื้อหาของเกม โปรดติดต่อเราโดยใช้ข้อมูลติดต่อใน หน้าติดต่อทีมสนับสนุนเพื่อส่ง Bundle ของเกมที่รีเฟรชแล้ว หรือติดต่อเราเพื่อสอบถามเพิ่มเติมหากคุณต้องการให้เราพิจารณาเข้าร่วม โปรแกรมนำร่อง
ฉันเห็นข้อผิดพลาดเกี่ยวกับการละเมิด "นโยบายรักษาความปลอดภัยเนื้อหา" สำหรับการเรียกใช้สคริปต์ในบรรทัด
ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณใช้ JavaScript เพื่อสร้างและเพิ่มแท็ก <script> ลงใน
หน้า YouTube ใช้นโยบายรักษาความปลอดภัยเนื้อหา (CSP) ที่กำหนดให้สคริปต์ต้องมีโค้ดรักษาความปลอดภัยพิเศษที่เรียกว่า "Nonce" เพื่อความปลอดภัย YouTube จะเพิ่มโค้ดนี้ลงในสคริปต์ในไฟล์ HTML โดยอัตโนมัติ แต่คุณต้องเพิ่มโค้ดนี้ลงในสคริปต์ที่คุณสร้างด้วยโค้ดด้วยตนเอง
เมื่อสร้างแท็กสคริปต์แบบเป็นโปรแกรมโดยใช้ JavaScript คุณต้องค้นหา Nonce จากหน้าและนำไปใช้กับองค์ประกอบสคริปต์ใหม่
ตัวอย่าง
const script = document.createElement('script');
script.src = '...';
// Find the nonce from the main page and apply it
script.nonce = document.querySelector('script[nonce]')?.nonce;
document.head.appendChild(script);
คุณสามารถทดสอบการกำหนดค่าแบบออฟไลน์ได้โดยใช้หลักเกณฑ์ที่ระบุไว้ใน วิธีการของชุดทดสอบ
การผสานการทำงานร่วมกับ SDK
ส่วนนี้มีคำถามที่เกี่ยวข้องกับ API ของ Playables SDK
ฉันไม่ผ่านการรับรองเนื่องจากปัญหาการผสานการทำงานร่วมกับเสียง ฉันต้องแก้ไขอะไรบ้าง
ปัญหาเกี่ยวกับเสียงที่พบบ่อยที่สุดคือเกมที่คาดหวังให้ผู้ใช้โต้ตอบก่อนที่จะเริ่มเล่น อย่างไรก็ตาม ฟีเจอร์เล่นเกมของ YouTube อาจได้รับโฟกัสโดยอัตโนมัติ ดังนั้นเกมจึงต้องจัดการกรณีนี้
ดูตัวอย่างการตั้งค่าเสียงได้ที่ตัวอย่าง
Unity
ส่วนนี้มีคำถามเกี่ยวกับการผสานการทำงานร่วมกับเกม Unity ที่มีอยู่กับ YouTube Playables SDK ดูตัวอย่างวิธีใช้ SDK และ Unity Wrapper ได้ในเอกสารประกอบของ ฟีเจอร์เล่นเกมของ YouTube Unity Wrapper
ฉันใช้การบีบอัดล่วงหน้าของ Unity ได้ไหม
เราไม่แนะนำให้บีบอัดชิ้นงานล่วงหน้า ข้อกำหนดด้านขนาดของ Bundle เริ่มต้นใช้ขนาดหลังการบีบอัด และระบบจะบีบอัดไฟล์ที่อัปโหลดหลังจากนำเข้า หากยังจำเป็นต้องบีบอัดไฟล์ล่วงหน้า โปรดดูส่วนที่เหลือของ ส่วนนี้หรือติดต่อทีมสนับสนุนในหน้าติดต่อทีมสนับสนุนเพื่อ พูดคุยเกี่ยวกับตัวเลือกที่ดีที่สุดสำหรับเกมของคุณ
เกมบางเกมจะต้องใช้การบีบอัดล่วงหน้าสำหรับไฟล์ .wasm หรือ .data ของ Unity
ใช้การบีบอัดล่วงหน้าในเงื่อนไขต่อไปนี้เท่านั้น เนื่องจากอาจทำให้เวลาในการโหลดช้าลงมาก
- หากคุณต้องใช้การบีบอัดล่วงหน้าของ Unity เพื่อให้เป็นไปตามข้อกำหนดด้านขนาด ไฟล์แต่ละไฟล์หรือขนาดของBundle ทั้งหมด โปรดดู "ฉันมีขนาดไฟล์แต่ละไฟล์หรือขนาดของ Bundle ทั้งหมดถึงหรือเกินขีดจำกัดแล้ว ฉันควรทำอย่างไร"
- หากคุณต้องใช้การบีบอัดล่วงหน้าของ Unity เพื่อให้เกมผ่านการรับรอง คุณต้องเป็นไปตามข้อกำหนดต่อไปนี้
- คุณต้องใช้การบีบอัดล่วงหน้าแบบ Zip
- คุณต้องคลายการบีบอัดไฟล์ด้วยตนเองภายในสคริปต์ตัวโหลด เราขอแนะนำให้ใช้ Compression Streams API
ข้อกำหนดเพิ่มเติมเหล่านี้เกิดจากข้อจำกัดของสถาปัตยกรรมการแสดงผล ขณะนี้เรายังไม่รองรับส่วนหัว HTTP เพิ่มเติมหรือการบีบอัด Brotli
ฉันจะจัดการการอัปเดตเฟรมได้อย่างไรเมื่อเกมทำงานในเบื้องหลัง
คุณสามารถใช้ setTimeout เพื่อจัดการการอัปเดตเฟรมเมื่อเกมทำงานในเบื้องหลัง
ซึ่งจะช่วยควบคุมลักษณะการทำงานต่างๆ เช่น การหยุดเสียงชั่วคราว คุณสามารถยืนยันการจัดการเฟรมในเบื้องหลังได้โดยเปิดใช้ตัวเลือก "ทำงานในเบื้องหลัง" ในการตั้งค่าเพลเยอร์
ข้อจำกัดด้านหน่วยความจำสำหรับเกม Unity
เกมบางเกมใน Unity จะใช้หน่วยความจำจำนวนมาก ซึ่งอาจทำให้เกินข้อจำกัดด้านการใช้งานหน่วยความจำ สำหรับ Playables เราขอแนะนำให้ ทำตามเอกสารประกอบสำหรับนักพัฒนาแอปเกี่ยวกับ หน่วยความจำใน Unity WebGL