微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 为什么我在Unity3D的场景中从一个空的GameObject获得30个绘制调用?

首先,我在谈论SetPass调用,我理解这是调用调用.

我有一个空的GameObject,我在游戏中用作Camera目标.我将它定位在我的角色上方,当它达到x高度时,相机向上移动.

启用Camera目标后,我会收到大约60个SetPass调用.当我禁用它时,我大约30岁.

为什么这个简单的对象产生如此多的SetPass调用

这是启用了空GameObject的屏幕截图:

这是没有启用GameObject的屏幕截图:

这是空的GameObject:

这是我引用空GameObject(cameraTarget)的地方:

void FixedUpdate(){

if (cameraTarget != null){
    if (cameraTarget.transform.position.y > thisTransform.position.y) {
        thisTransform.position = new Vector3 (0, Mathf.Smoothdamp (thisTransform.position.y, cameraTarget.transform.position.y, ref veLocity.y, smoothTime), 0); 
    }
}

}

当我在游戏过程中禁用空GameObject时,我的游戏运行正常,相机仍然跟随空的GameObject,即使它已被禁用,而且我正在减少SetPass调用……很奇怪.

编辑:

附加到我的Empty GameObject的标签图标导致绘制调用增加

编辑:

我在游戏窗口中禁用了“Gizmos”,它已经删除了我所有场景中的绘制调用.我想这只是在编辑器中运行游戏时的一个问题.

解决方法:

Unity 5有一个称为Frame Debugger的简洁功能.你可以捕捉框架,看看到底发生了什么,更多信息在这里http://blogs.unity3d.com/2014/07/29/frame-debugger-in-unity-5-0/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐