所以我一直在研究如何让Unity中的其他玩家在2D和3D下都看不到某些玩家(无论是离线还是在线的游戏机和PC)。我知道为每个玩家和他们的相机设置一个单独的图层并不是很有效,我在寻找更好的东西。经过几天的研究,我终于找到了这些:
Camera-onPreRender、Camera-onPreCull和Making GameObejcts dynamically invisible
但我还是很困惑。
是public void MyPreRender(Camera cam) & public void MyPreCull(Camera cam)代理还是什么和启用/禁用只是改变了摄像头的值,以排除函数中列出的游戏对象?如果是这样的话,他们不应该被贴上工作委托的标签吗?如果不是,这个函数如何改变哪些游戏对象应该或不应该被剔除/渲染的值?
同样,对于我正在做的事情来说,这会对性能和帧率产生很小的影响吗?另一个人说是这样,但真的是这样吗?有没有更好更快的方法?
发布于 2018-02-14 08:34:46
是的,MyPreRender和MyPreCull是委托(或者更确切地说,是与其他地方定义的委托的签名相匹配的方法)。具体地说,它们是事件处理程序方法。
当相机执行渲染(或剔除)任务时,它首先调用已订阅PreRender (或PreCull)事件的所有方法(通过使用+=告诉其他系统您的处理程序方法)。
你可以在this Unity tutorial上找到更多关于事件的信息。
https://stackoverflow.com/questions/48777877
复制相似问题