如何解决禁用图形游戏对象是否可以防止它们受到脚本的影响?
当玩家不在该区域内时,我正在使用框架(边界框)禁用该区域内的所有游戏对象。我想知道视差脚本是否会影响对象的禁用框架。我不希望玩家进入新帧时关闭背景和前景层的视差。
有点偏离主题,但仍然足够相关:我正在构建框架以使其看起来似乎过渡;有没有办法防止视差在过渡点重叠?
解决方法
您已经注意到,
禁用的游戏对象上的脚本无法接收更新调用。您可以做一些事情:
- 在整个游戏对象不在摄像机框架之外时,不要禁用整个游戏对象,而只能禁用附加的渲染器。这样,您的parralax脚本仍会更新。尽管这是否会带来性能优势值得怀疑,但Unity默认会进行Frustrum选择。
- 没有单独的视差脚本,而是有一个ParallaxManager在其中注册了所有对象。永远不会禁用此管理器,因为这样做的额外好处是调用更新的开销更少。
- 不是更新,而是在另一个未禁用的对象上启动一些协程。例如,在Parallax中,您可以从Camera游戏对象启动协程。这样一来,即使视差被禁用,它也继续前进。
- 尝试计算OnEnable中的正确位置。这样,您仍然可以禁用对象,并且再次启用它们时它们会显示在正确的位置。