进入或退出相机渲染范围内-血条动态显示
需求:敌人进入相机范围内,在UI界面上动态显示血条。未被渲染时,不显示血条。
Unity为我们提供了多种与渲染相关的接口,带大家看下:
OnPreRender:在摄像机开始渲染场景之前调用。Tips:Scene加载过程中或结束
OnPostRender:指场景都渲染完成后调用接口
OnRenderObject:在完成所有常规场景渲染后调用此函数。Tips:指场景开始渲染(刚开始执行渲染,还未渲染完成)时调用接口
OnWillRenderObject:当对象可见时,被相机渲染时 一直调用此函数。
可以发现,OnWillRenderObject才是与当前物体的渲染状态相关联。
但是依旧没法监听物体移除渲染范围的时候。只适用于在渲染时候去持续做某些逻辑。
翻了一下手册又发现两个函数:
OnBecameVisible:当物体进入摄像机渲染范围时会调用一次
OnBecameInvisible:当物体退出摄像机渲染范围时会调用一次
代码如下:
public void OnBecameVisible() { if (isRenderObject==false) { isRenderObject = true; intoRenderer?.Invoke(); } } public void OnBecameInvisible() { if (isRenderObject == true) { isRenderObject = false; exitRenderer?.Invoke(); } }
注意:OnBecameVisible、OnBecameInvisible、OnWillRenderObject只有在所挂物体(不包括子物体)有Render才有效。否则无法回调
血量条模块的设计可见文章:设计敌人血条模块
作者:Miracle
来源:麦瑞克博客
链接:https://www.playcreator.cn/archives/unity/110/
本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议,转载请注明!
来源:麦瑞克博客
链接:https://www.playcreator.cn/archives/unity/110/
本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议,转载请注明!
THE END
0
打赏
海报
进入或退出相机渲染范围内-血条动态显示
需求:敌人进入相机范围内,在UI界面上动态显示血条。未被渲染时,不显示血条。
Unity为我们提供了多种与渲染相关的接口,带大家看下:
OnPreRender:在……