【发布时间】:2014-10-23 06:45:23
【问题描述】:
我有 2 层:GUI 层和 3D 层。每层都有一个摄像头。
GUI 图层相机设置:
- 清除标志:仅限深度
- 剔除蒙版:GUI 层
- 深度:-1
- 组件:带有
OnGUI()逻辑的 C# 脚本 - GUILayer、Flare 层和音频监听器:开启
3D 图层相机设置:
- 清除标志:仅限深度
- 剔除蒙版:除 GUI 层外的所有内容
- 深度:0
- GUILayer、Flare 层和音频监听器:关闭
我的目标是展示 3D 元素背后的 GUI 元素。如果删除/禁用了 C# 脚本并改用 GUITexture 组件,则设置没问题。但是,使用GUITexture组件,很难通过脚本控制大小和逻辑。
因此,我有一些由GUI.DrawTexture() 在分配给相机的脚本中绘制的图像。例如:
GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height),
backgroundTexture, ScaleMode.StretchToFill);
虽然脚本作为组件附加到 GUI 层,但它不会在 3D 对象后面绘制;而是在 3D 对象前面绘制。
我的问题是,如何指定GUI.DrawTexture() 在特定图层上绘图/如何使图像在 3D 对象后面绘制?
更新在OnGUI() 中尝试GUI.Depth = -99; 不会改变这种情况。
【问题讨论】: