反射探针用于将周围环境捕获到纹理中,然后传递给着色器并用于反射。
这些属性与 Inspector 中显示的值完全匹配。
此类是 反射探针 组件的脚本接口。
反射探针通常只是在编辑器中创建,但有时您可能希望从脚本创建反射探针。
using UnityEngine; using UnityEditor;
public class ProbeCreator { [MenuItem("ReflectionProbe/CreateRealtimeProbe")] public static void RealtimeProbe() { // Add a GameObject with a ReflectionProbe component GameObject probeGameObject = new GameObject("Realtime Reflection Probe"); ReflectionProbe probeComponent = probeGameObject.AddComponent<ReflectionProbe>(); // The probe will contribute to reflections inside a box of size 10x10x10 centered on the position of the probe probeComponent.size = new Vector3(10, 10, 10);
// Set the type to realtime and refresh the probe every frame probeComponent.mode = UnityEngine.Rendering.ReflectionProbeMode.Realtime; probeComponent.refreshMode = UnityEngine.Rendering.ReflectionProbeRefreshMode.EveryFrame; } }
defaultTexture | 捕获环境贡献的默认反射探针的表面纹理。只读。 |
defaultTextureHDRDecodeValues | 默认反射探针纹理的 HDR 解码值。 |
backgroundColor | 反射探针纹理将被清除的颜色。 |
bakedTexture | 反射探针周围环境的烘焙纹理的引用。 |
blendDistance | 用于混合的探针周围的距离(在延迟探针中使用)。 |
bounds | 探针的世界空间轴对齐包围盒,探针可以在其中对反射做出贡献(只读)。 |
boxProjection | 此反射探针是否应该使用盒投影? |
center | 探针的包围盒的中心,探针可以在其中对反射做出贡献。中心相对于探针的位置。 |
clearFlags | 反射探针如何清除背景。 |
cullingMask | 这用于选择性地渲染反射探针周围环境的一部分。 |
customBakedTexture | 反射探针周围环境的烘焙纹理的引用。使用此属性分配自定义反射纹理。 |
farClipPlane | 渲染探针时的远裁剪平面距离。 |
hdr | 此反射探针是否应该使用 HDR 渲染? |
importance | 反射探针的重要性。 |
intensity | 应用于着色器中反射探针纹理的强度修改器。 |
mode | 反射探针纹理是否应该在编辑器中生成 (ReflectionProbeMode.Baked) 或者探针是否应该使用自定义指定的纹理 (ReflectionProbeMode.Custom)? |
nearClipPlane | 渲染探针时的近裁剪平面距离。 |
realtimeTexture | 反射探针周围环境的实时纹理的引用。使用此属性分配一个 RenderTexture 以用于实时反射。 |
refreshMode | 设置探针的刷新方式。其他资源:ReflectionProbeRefreshMode。 |
renderDynamicObjects | 指定 Unity 是否应将非静态游戏对象渲染到反射探针中。如果将此属性设置为 true,则 Unity 会将非静态游戏对象渲染到反射探针中。如果将此属性设置为 false,则 Unity 不会将非静态游戏对象渲染到反射探针中。只有当反射探针的类型为 Custom 时,Unity 才会考虑此属性。 |
resolution | 底层反射纹理的分辨率(以像素为单位)。 |
shadowDistance | 渲染探针时的阴影绘制距离。 |
size | 探针的包围盒的大小,探针可以在其中对反射做出贡献。大小以世界空间为单位。 |
texture | 传递给反射探针附近对象的着色器的纹理(只读)。 |
textureHDRDecodeValues | 反射探针纹理的 HDR 解码值。 |
timeSlicingMode | 设置此探针的时间切片模式其他资源:ReflectionProbeTimeSlicingMode。 |
IsFinishedRendering | 检查探针是否已完成时间切片渲染。 |
RenderProbe | 刷新探针的立方体贴图。 |
Reset | 将所有 ReflectionProbe 参数恢复为默认值。 |
BlendCubemap | 实用程序方法,用于将 2 个立方体贴图混合到目标渲染纹理中。 |
UpdateCachedState | 使用 ReflectionProbe 的当前状态更新剔除系统。如果实现自己的运行时反射系统,这将确保 Unity 在渲染过程中正确地剔除 ReflectionProbe。 |
defaultReflectionSet | 添加一个委托,以便在默认镜面反射立方体贴图更改时接收通知。 |
defaultReflectionTexture | 添加一个委托,以便在默认镜面反射立方体贴图更改时接收通知。 |
reflectionProbeChanged | 添加一个委托,以便在将反射探针添加到场景或从场景中移除时接收通知。 |
enabled | 启用的行为将更新,禁用的行为将不会更新。 |
isActiveAndEnabled | 报告游戏对象及其关联的行为是否处于活动状态并已启用。 |
gameObject | 此组件附加到的游戏对象。组件始终附加到游戏对象。 |
tag | 此游戏对象的标签。 |
transform | 附加到此游戏对象的 Transform。 |
hideFlags | 对象是否应隐藏、与场景一起保存或用户可修改? |
name | 对象的名称。 |
BroadcastMessage | 在该游戏对象或其任何子对象中的每个 MonoBehaviour 上调用名为 methodName 的方法。 |
CompareTag | 将游戏对象的标签与定义的标签进行比较。 |
GetComponent | 获取与指定组件相同的 GameObject 上类型为 T 的组件的引用。 |
GetComponentInChildren | 获取与指定组件相同的 GameObject 或任何子对象上类型为 T 的组件的引用。 |
GetComponentIndex | 获取组件在其父 GameObject 上的索引。 |
GetComponentInParent | 获取与指定组件相同的 GameObject 或任何父对象上类型为 T 的组件的引用。 |
GetComponents | 获取与指定组件相同的 GameObject 上所有类型为 T 的组件的引用。 |
GetComponentsInChildren | 获取与指定组件相同的 GameObject 及其任何子对象上所有类型为 T 的组件的引用。 |
GetComponentsInParent | 获取与指定组件相同的 GameObject 及其任何父对象上所有类型为 T 的组件的引用。 |
SendMessage | 在该游戏对象中的每个 MonoBehaviour 上调用名为 methodName 的方法。 |
SendMessageUpwards | 在该游戏对象和行为的每个祖先上的每个 MonoBehaviour 上调用名为 methodName 的方法。 |
TryGetComponent | 获取指定类型的组件(如果存在)。 |
GetInstanceID | 获取对象的实例 ID。 |
ToString | 返回对象的名称。 |
Destroy | 移除游戏对象、组件或资源。 |
DestroyImmediate | 立即销毁对象 obj。强烈建议使用 Destroy 代替。 |
DontDestroyOnLoad | 加载新场景时不要销毁目标对象。 |
FindAnyObjectByType | 检索类型为 type 的任何活动加载的对象。 |
FindFirstObjectByType | 检索类型为 type 的第一个活动加载的对象。 |
FindObjectsByType | 检索类型为 type 的所有加载对象的列表。 |
Instantiate | 克隆对象 original 并返回克隆。 |
InstantiateAsync | 捕获原始对象(必须与某些 GameObject 相关)的快照,并返回 AsyncInstantiateOperation。 |
bool | 对象是否存在? |
operator != | 比较两个对象是否引用不同的对象。 |
operator == | 比较两个对象引用,以查看它们是否引用同一对象。 |