QQ小游戲 調(diào)試

2020-07-15 15:54 更新

vConsole

在真機(jī)上,如果想要查看 console API 輸出的日志內(nèi)容和額外的調(diào)試信息,需要在點(diǎn)擊屏幕右上角的按鈕打開的菜單里選擇「打開調(diào)試」。此時(shí)小程序/小游戲會(huì)退出,重新打開后會(huì)右下角會(huì)出現(xiàn)一個(gè) vConsole 按鈕。點(diǎn)擊 vConsole 按鈕可以打開日志面板。

小程序和小游戲的 vConsole 展示內(nèi)容會(huì)有一定差別,下圖左邊是小程序 vConsole,右邊是小游戲 vConsole

vConsole 使用說明

由于實(shí)現(xiàn)機(jī)制的限制,開發(fā)者調(diào)用 console API 打印的日志內(nèi)容,是轉(zhuǎn)換成 JSON 字符串后傳輸給 vConsole 的,導(dǎo)致 vConsole 中展示的內(nèi)容會(huì)有一些限制:

  • 除了 Number、String、Booleannull 外,其他類型都會(huì)被作為 Object 處理展示,打印對(duì)象及原型鏈中的 Enumerable 屬性。

  • InfinityNaN 會(huì)顯示為 null

  • undefined、ArrayBufferFunction 類型無法顯示

  • 無法打印存在循環(huán)引用的對(duì)象

const a = {}
a.b = a
console.log(a) 

針對(duì)上述問題,小程序/小游戲在使用 vConsole 時(shí)做了一些處理

const circular = {x: {}, c: {}}
circular.x = [{promise: Promise.resolve()}]
circular.a = circular
circular.c.x0 = circular.x[0]


console.log(circular)
// "{a: '<Circular: @>', c: {x0: '<Circular: @.x[0]>'}, x: [{promise: '<Promise>'}]}"



注:盡量避免在非調(diào)試情景下打印結(jié)構(gòu)過于復(fù)雜或內(nèi)容過長的日志內(nèi)容(如游戲引擎中的精靈或材質(zhì)對(duì)象等),可能會(huì)帶來額外耗時(shí)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)