summaryrefslogtreecommitdiff
path: root/VRCSDK3Worlds/Assets/MeshBaker/scripts/MB2_UpdateSkinnedMeshBoundsFromBounds.cs
diff options
context:
space:
mode:
Diffstat (limited to 'VRCSDK3Worlds/Assets/MeshBaker/scripts/MB2_UpdateSkinnedMeshBoundsFromBounds.cs')
-rw-r--r--VRCSDK3Worlds/Assets/MeshBaker/scripts/MB2_UpdateSkinnedMeshBoundsFromBounds.cs38
1 files changed, 38 insertions, 0 deletions
diff --git a/VRCSDK3Worlds/Assets/MeshBaker/scripts/MB2_UpdateSkinnedMeshBoundsFromBounds.cs b/VRCSDK3Worlds/Assets/MeshBaker/scripts/MB2_UpdateSkinnedMeshBoundsFromBounds.cs
new file mode 100644
index 00000000..e48e98af
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/MeshBaker/scripts/MB2_UpdateSkinnedMeshBoundsFromBounds.cs
@@ -0,0 +1,38 @@
+using UnityEngine;
+using System.Collections;
+using System.Collections.Generic;
+using DigitalOpus.MB.Core;
+
+public class MB2_UpdateSkinnedMeshBoundsFromBounds : MonoBehaviour {
+ public List<GameObject> objects;
+ SkinnedMeshRenderer smr;
+
+ void Start () {
+ smr = GetComponent<SkinnedMeshRenderer>();
+ if (smr == null){
+ Debug.LogError("Need to attach MB2_UpdateSkinnedMeshBoundsFromBounds script to an object with a SkinnedMeshRenderer component attached.");
+ return;
+ }
+ if (objects == null || objects.Count == 0){
+ Debug.LogWarning("The MB2_UpdateSkinnedMeshBoundsFromBounds had no Game Objects. It should have the same list of game objects that the MeshBaker does.");
+ smr = null;
+ return;
+ }
+ for (int i = 0; i < objects.Count; i++){
+ if (objects[i] == null || objects[i].GetComponent<Renderer>() == null){
+ Debug.LogError("The list of objects had nulls or game objects without a renderer attached at position " + i);
+ smr = null;
+ return;
+ }
+ }
+ bool origVal = smr.updateWhenOffscreen;
+ smr.updateWhenOffscreen = true;
+ smr.updateWhenOffscreen = origVal;
+ }
+
+ void Update () {
+ if (smr != null && objects != null){
+ MB3_MeshCombiner.UpdateSkinnedMeshApproximateBoundsFromBoundsStatic(objects,smr);
+ }
+ }
+}