在游戏过程中渲染和捕捉帧时,如何取消选择或停用某些我不希望在捕获帧中的游戏对象?
任何人都可以告诉我它是如何实现的?
答案 0 :(得分:0)
如果我理解正确,您应该使用SetActive代码
答案 1 :(得分:0)
最好将拍摄延迟到帧的结尾。
public void CaptureFrame()
{
SetAllItems(false);
StartCoroutine(CaptureCoroutine());
}
private IEnumerator CaptureCoroutine()
{
yield return new WaitForEndOfFrame();
Application.CaptureScreenshot("Screenshot.png");
yield return null;
SetAllItems(true);
}
private void SetAllItems(bool value)
{
someGameObject.SetActive(value);
otherGameObject.SetActive(value);
// more code
}
这是因为如果您正在处理UI项目,则只有在渲染相机时才会从帧中删除它们。所有更新完成后都会发生这种情况。所以你需要等待那些,这样相机可以在没有所需物品的情况下再次渲染,然后捕捉帧。然后把它们放回去。
我在重新开始之前添加了一个收益率。我不确定它是否真的需要......只是为了确保......你可以尝试没有它,如果不需要就移除。