Invalidation Box:使條目無效的容器。使容器內的條目不再更新,如果確定某一個UI不需要更新的話,就可以把這個UI放到Invalidation Box中。
一、Invalidation Box是一個性能優化容器
二、通過外界給Invalidation Box內的子控件賦值,子控件是會更新的。只有子控件自身代碼引起的變化會被Invalidation Box禁止更新。
三、Invalidation Box.CanCache:Invalidation Box的子控件是否可被更新,true可更新,false不可更新。
1、創建一個名為“CountsWidget”的UserWidget,添加名為TextBlock_1的TextBlock,並在TextBlock_1的Tick事件中遞增一個數字:
2、創建一個名為“TestInvalidationBox”的UserWidget
Invalidation Box.SetCanCache可以設置子控件是否可更新。
3、運行游戲,Invalidation Box子控件默認是不更新的。
4、點擊“Toggle CanCache”按鈕開始更新,再點擊一下“Toggle CanCache”按鈕,數字停止在31並停止更新
5、過了一段時間,再點擊一下“Toggle CanCache”按鈕,數字從31開始繼續更新,而不是Invalidation Box的子控件實際在更新,但被Invalidation Box阻止在界面上顯示出來
6、Invalidation Box的子控件完全停止,所有一切互動都靜止,包括tick事件也不會被調用。