การระบุปัญหา
การรวบรวมสื่อสำหรับการทดสอบ
หัวข้อที่มีชื่อว่า “การรวบรวมสื่อสำหรับการทดสอบ”ขั้นตอนแรกในกระบวนการรายงานบั๊กทุกครั้งคือการรวบรวมหลักฐานว่ามีบางอย่างผิดปกติ ข้อความง่าย ๆ อย่าง “เฮ้ เกมนี้ใช้ไม่ได้” ไม่ได้ช่วยทีมดูแลรักษาของเรา เพื่อแก้ไขปัญหาได้อย่างมีประสิทธิภาพ เราต้องการสามสิ่งนี้ทุกครั้ง:
- วิดีโอที่แสดงขณะบั๊กเกิดขึ้น เราเข้าใจว่าคุณไม่สามารถบันทึกเอฟเฟกต์ที่ผิดพลาดบนคีย์บอร์ดได้ แต่วิดีโอการเล่นเกมก็เพียงพอแล้ว
- คำอธิบายการกระทำที่ทำให้เกิดบั๊ก โปรดให้รายละเอียดมากที่สุดเท่าที่จะทำได้ แม้แต่รายละเอียดเล็ก ๆ น้อย ๆ ก็ช่วยให้เราระบุต้นเหตุของปัญหาได้อย่างรวดเร็ว
- ความละเอียดหน้าจอที่คุณใช้เล่น หากไม่มีข้อมูลนี้ นักพัฒนาของเราต้องตรวจสอบทุกความละเอียดที่เรารองรับเพื่อหาปัญหา ซึ่งอาจใช้เวลานาน
หากคุณเป็นผู้สร้าง Lightscript ที่ไม่ได้มีส่วนเกี่ยวข้องกับบริษัทของเราโดยตรง ขั้นตอนง่าย ๆ เหล่านี้ก็ยังช่วยคุณได้มากกับโค้ดของคุณเอง เอกสารประกอบที่ละเอียดรอบคอบ ควบคู่กับความเข้าใจโครงสร้างของโค้ด จะทำให้การระบุปัญหาเป็นกระบวนการที่ตรงไปตรงมา
หากคุณเป็นแฟนของเกมที่พยายามดูแลรักษาด้วยตัวเอง อย่าลืมส่งวิดีโอการเล่นเกมที่เห็นปัญหาให้เรา เราอาจช่วยเร่งการแก้ไขของคุณได้!
การระบุปัญหา
หัวข้อที่มีชื่อว่า “การระบุปัญหา”บั๊กของการผสานรวมมักสังเกตได้ง่าย หากเอฟเฟกต์ไม่เล่นเลยหรือเล่นบ่อยเกินไป แสดงว่ามีบางอย่างเสียอย่างชัดเจน ส่วนที่ท้าทายคือการระบุส่วนของโค้ดที่เป็นต้นเหตุของปัญหาอย่างแม่นยำ ให้เริ่มต้นด้วยการระบุปัญหาตามขั้นตอนที่อธิบายไว้ในส่วนก่อนหน้าเสมอ เพราะจะทำให้มีแนวทางที่ชัดเจนที่สุด ด้านล่างนี้คือกระบวนการแก้ไขบั๊กที่แนะนำ:
-
ตรวจสอบ Console Log:
- มี console log ที่ระบุปัญหาหรือไม่? ปัญหาที่พบบ่อยในส่วนนี้ ได้แก่ ตัวแปรที่ไม่ได้ประกาศ คำที่สะกดผิด และช่วงการวาดมิเตอร์หรือรูปทรงที่ไม่ถูกต้อง SignalRGB จะตรวจไม่พบ stack overflow แต่สังเกตได้ง่าย: SignalRGB จะแครชก่อน ตามด้วยคอมพิวเตอร์ของคุณ เป็นโปรแกรมเมอร์ที่มีความรับผิดชอบ และอย่าทำให้แอปของคุณนับไปจนถึงอนันต์
-
ตรวจสอบมิเตอร์:
- เอฟเฟกต์ทำให้มิเตอร์ของคุณทำงานใน Meter Inspector ระหว่างการเล่นเกมหรือไม่? หากใช่ คุณควรเห็นสีขาวปรากฏในพื้นที่สีดำใต้มุมมองมิเตอร์
- หากมิเตอร์วางผิดตำแหน่ง ให้ใช้เครื่องมือเฉพาะของเรา (WindowSpy) เพื่อวัดหน้าจอและปรับตำแหน่งมิเตอร์ในส่วน
**<head>** - หากวิธีนี้แก้ปัญหาได้ อย่าลืมปรับมิเตอร์สำหรับความละเอียดอื่น ๆ ทั้งหมดในส่วนการปรับแต่ง คำแนะนำเกี่ยวกับการวางมิเตอร์และพิกัดแบบนอร์มัลไลซ์อยู่ในส่วน “Smart Tags” ของเอกสารนี้
- หากมิเตอร์ทำงานถูกต้อง ปัญหาอยู่ที่อื่น
- หากมิเตอร์วางผิดตำแหน่ง ให้ใช้เครื่องมือเฉพาะของเรา (WindowSpy) เพื่อวัดหน้าจอและปรับตำแหน่งมิเตอร์ในส่วน
- เอฟเฟกต์ทำให้มิเตอร์ของคุณทำงานใน Meter Inspector ระหว่างการเล่นเกมหรือไม่? หากใช่ คุณควรเห็นสีขาวปรากฏในพื้นที่สีดำใต้มุมมองมิเตอร์
-
ตรวจสอบฟังก์ชัน Update :
- ข้อมูลมิเตอร์ถูกส่งไปยังคลาส Meter อย่างถูกต้องหรือไม่?
- คุณได้ใส่การอัปเดต Meter แบบมีเงื่อนไขเพื่อรองรับพฤติกรรม UI ที่ซับซ้อนแล้วหรือยัง?
- หากทุกอย่างดูเรียบร้อย ให้วาง
console.logไว้ภายในฟังก์ชัน callback ของคุณโดยตรง log ควรแสดงทุกครั้งที่มิเตอร์เสถียร แม้ว่าเอฟเฟกต์จะไม่ถูกเรียกใช้อย่างถูกต้องก็ตาม - หาก log ปรากฏอย่างสม่ำเสมอ ปัญหาอยู่ที่อื่น
- ข้อมูลมิเตอร์ถูกส่งไปยังคลาส Meter อย่างถูกต้องหรือไม่?
-
ประเมินฟังก์ชัน Callback :
- เรารู้ว่าฟังก์ชัน callback ทำงานถูกต้องเพราะเราเห็น log ก่อนหน้านี้แล้ว ตอนนี้ให้ตรวจสอบความถูกต้องของเงื่อนไขภายในเอฟเฟกต์
- หากไม่มีอะไรผิดปกติอย่างชัดเจน ให้เพิ่มคำสั่ง
console.logภายในเงื่อนไขเพื่อดูว่ามีเงื่อนไขใดทำงานผิดพลาดระหว่างการเล่นเกมหรือไม่ - หากทุกอย่างดูปกติ ปัญหาอาจอยู่ภายในตัวเอฟเฟกต์เอง
- หากไม่มีอะไรผิดปกติอย่างชัดเจน ให้เพิ่มคำสั่ง
- เรารู้ว่าฟังก์ชัน callback ทำงานถูกต้องเพราะเราเห็น log ก่อนหน้านี้แล้ว ตอนนี้ให้ตรวจสอบความถูกต้องของเงื่อนไขภายในเอฟเฟกต์
-
ตรวจสอบฟังก์ชันแอนิเมชันของเอฟเฟกต์ :
- ฟังก์ชันแอนิเมชันมีความหลากหลายสูง จึงไม่มีคำแนะนำแบบเดียวที่ใช้ได้กับทุกกรณี อย่างไรก็ตาม เพื่อการดีบักที่มีประสิทธิภาพ:
- ย้ายเอฟเฟกต์ไปยังเทมเพลต Lightscript เปล่า แล้วตรวจสอบว่าคุณสามารถเปิดใช้งานเพื่อดูแอนิเมชันใน SignalRGB ได้
- สังเกต console และจดบันทึกว่าแอนิเมชันเสียที่จุดใด
- การแยกโค้ดที่มีปัญหาออกมาจะช่วยประหยัดเวลาของคุณ ดังนั้นอย่าลืมทำขั้นตอนนี้
- ฟังก์ชันแอนิเมชันมีความหลากหลายสูง จึงไม่มีคำแนะนำแบบเดียวที่ใช้ได้กับทุกกรณี อย่างไรก็ตาม เพื่อการดีบักที่มีประสิทธิภาพ: