From eb84bb298d2b95aec7b2ae12cbf25ac64f25379a Mon Sep 17 00:00:00 2001 From: tylermurphy534 Date: Sun, 6 Nov 2022 15:12:42 -0500 Subject: move to self host --- .../examples/scripts/BakeryVolumeReceiver.cs | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 VRCSDK3Worlds/Assets/Bakery/examples/scripts/BakeryVolumeReceiver.cs (limited to 'VRCSDK3Worlds/Assets/Bakery/examples/scripts/BakeryVolumeReceiver.cs') diff --git a/VRCSDK3Worlds/Assets/Bakery/examples/scripts/BakeryVolumeReceiver.cs b/VRCSDK3Worlds/Assets/Bakery/examples/scripts/BakeryVolumeReceiver.cs new file mode 100644 index 00000000..5ba2fb51 --- /dev/null +++ b/VRCSDK3Worlds/Assets/Bakery/examples/scripts/BakeryVolumeReceiver.cs @@ -0,0 +1,48 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +// Example script, a counterpart to BakeryVolumeTrigger.cs (see that script for more info) +// +public class BakeryVolumeReceiver : MonoBehaviour +{ + public bool forceUsage = false; + + // used by triggers + internal int enterCounter = 0; + internal BakeryVolumeTrigger movableTrigger = null; + + Renderer[] renderers; + MaterialPropertyBlock current; + + // Cache renderers affected by volumes + void Awake() + { + if (renderers == null) renderers = GetComponentsInChildren() as Renderer[]; + if (forceUsage) + { + // HDRP can sometimes (?) fail to use globally set volumes when SRP batching is enabled, so disable it for this object. + SetPropertyBlock(new MaterialPropertyBlock()); + } + } + + // Called by triggers + public void SetPropertyBlock(MaterialPropertyBlock mb) + { + if (renderers == null) renderers = GetComponentsInChildren() as Renderer[]; + for(int i=0; i