/* ///////////////////////////////////////////////////////////////////////////////////////////////// DisableRenderers v1 by MacGruber. License: CC-BY //////////////////////////////////////////////////////////////////////////////////////////////////*/ using UnityEngine; using System.Collections.Generic; public class DisableRenderers : MVRScript { private List myCUAs = new List(); private List myCUARoots = new List(); private List controllerRenderers = new List(); private List toggledOff = new List(); //private string[] allowedMiscTypes = new[] { "CensorCube", "CensorPanel", "CustomUnityAsset", "ImagePanel", "ImagePanelEmissive", "ImagePanelTransparent", "ImagePanelTransparentEmissive", "ImagePanelTransparentEmissiveOverlay", "SimpleSign", "VaMLogo", "VaMSign", "WebBrowser", "WebPanel", "WebPanelEmissive" }; //private string[] allowedMiscTypes = new[] { "CensorCube", "CensorPanel", "CustomUnityAsset", "ImagePanel", "ImagePanelEmissive", "ImagePanelTransparent", "ImagePanelTransparentEmissive", "ImagePanelTransparentEmissiveOverlay", "SimpleSign", "VaMLogo", "VaMSign" }; public override void Init() { var atoms = GetSceneAtoms(); for (int i = 0; i < atoms.Count; i++) { // if (System.Array.IndexOf(allowedTypes, atoms[i].type) == -1) // { // SuperController.LogError(atoms[i].type); // continue; // } if (atoms[i].type == "Person") { continue; } var myCUA = atoms[i].GetStorableByID("asset") as CustomUnityAssetLoader; var myCUARoot = atoms[i].reParentObject?.Find("object/rescaleObject"); if (myCUA != null && myCUARoot != null) { myCUA.RegisterAssetLoadedCallback(OnAssetLoadedCallback); myCUAs.Add(myCUA); myCUARoots.Add(myCUARoot); } else { //SuperController.LogError(atoms[i].type); if(atoms[i].type.StartsWith("WebPanel") || atoms[i].type == "WebBrowser" || atoms[i].type.StartsWith("Glass")) { if(atoms[i].on) { toggledOff.Add(atoms[i]); } } controllerRenderers.AddRange(atoms[i].GetComponentsInChildren()); } } if (enabled) OnEnable(); else OnDisable(); } private void OnDestroy() { for(int i = 0; i < myCUAs.Count; i++) myCUAs[i].DeregisterAssetLoadedCallback(OnAssetLoadedCallback); } private void OnDisable() { UpdateRenderers(true); } private void OnEnable() { UpdateRenderers(false); } private void OnAssetLoadedCallback() { UpdateRenderers(false); } private void UpdateRenderers(bool doEnable) { for(int j = 0; j < myCUARoots.Count; j++) { Renderer[] renderers = myCUARoots[j].GetComponentsInChildren(true); for (int i=0; i