[UE4]檢查Actor是否出現在畫面
功能需求
在公司專案中,由於一些功能需求,必須判斷角色是否出現在畫面中。
稍微找了一下官方文件,找到有WasRecentlyRendered這個功能,名字看起來簡單好懂。然而實際使用會發現有時判定並未和想像的一樣,明明在畫面外也會返回true,為什麼呢?
看了原始碼才發現,WasRecentlyRendered內的判斷依據是PrimitiveComponent的LastRenderTime來判斷的,然而這個值在render shadow的時候也會被更新,造成判斷錯誤。
解決方法
解決方法是,自己寫另一個接口,取得
PrimitiveComponent的LastRenderTimeOnScreen,這個值就是正確的結果了。
額外資訊
r.VisualizeOcculudedPrimitives
輸入這個指令可以讓被遮蔽的多邊形顯示出來,對以上功能的除錯很方便!