---
# System prepended metadata

title: Godot疑難雜症
tags: [程式]

---

# Godot疑難雜症

## PackedScene

### instantiate後, export的成員變數有誤

可能是因為在instantiate時, export的變數會由PackedScene(.tscn)來對建立出來的節點與腳本, 進行設置.
但此設置是直接指定, 不會特別複製參考型別, 導致若先前instantiate後, 有對建立出來的node的該成員變數進行變更, 實際上就是變更PackedScene裡紀錄的export的資料. 
或許可以在_init中, 對各個export的參考型別的成員變數進行複製(淺複製即可).

## Web

### 無意義的網頁滾輪條出現

因為在某些特殊環境下, 利用window.innerWidth/window.innerHeight所取得的尺寸, 會因為四捨五入為整數的關係, 導致計算後對canvas設置的尺寸, 會超出有小數px的實際window尺寸.

所以在匯出的{匯出名}.js中, 要把updateSize()裡
```javascript=
const scale = GodotDisplayScreen.getPixelRatio();
if (isFullscreen || wantsFullWindow) {
    width = window.innerWidth * scale;
    height = window.innerHeight * scale;
}
```
改為使用
```javascript=
const scale = GodotDisplayScreen.getPixelRatio();
if (isFullscreen || wantsFullWindow) {
    width = Math.floor(window.visualViewport.width) * scale;
    height = Math.floor(window.visualViewport.height) * scale;
}
```