public static RenderInfo.RendererInstance From(Renderer renderer) { RenderInfo.RendererInstance rendererInstance = new RenderInfo.RendererInstance(); rendererInstance.IsVisible = renderer.get_isVisible(); rendererInstance.CastShadows = renderer.get_shadowCastingMode() > 0; rendererInstance.RecieveShadows = renderer.get_receiveShadows(); rendererInstance.Enabled = renderer.get_enabled() && ((Component)renderer).get_gameObject().get_activeInHierarchy(); ref RenderInfo.RendererInstance local1 = ref rendererInstance;
public static RenderInfo.RendererInstance From(Renderer renderer) { RenderInfo.RendererInstance length = new RenderInfo.RendererInstance() { IsVisible = renderer.isVisible, CastShadows = renderer.shadowCastingMode != ShadowCastingMode.Off, RecieveShadows = renderer.receiveShadows, Enabled = (!renderer.enabled ? false : renderer.gameObject.activeInHierarchy), Size = renderer.bounds.size.magnitude }; Bounds bound = renderer.bounds; length.Distance = Vector3.Distance(bound.center, Camera.main.transform.position); length.MaterialCount = (int)renderer.sharedMaterials.Length; length.RenderType = renderer.GetType().Name; BaseEntity baseEntity = renderer.gameObject.ToBaseEntity(); if (!baseEntity) { length.ObjectName = renderer.transform.GetRecursiveName(""); } else { length.EntityName = baseEntity.PrefabName; if (baseEntity.net != null) { length.EntityId = baseEntity.net.ID; } } if (renderer is MeshRenderer) { length.BoneCount = 0; MeshFilter component = renderer.GetComponent <MeshFilter>(); if (component) { length.ReadMesh(component.sharedMesh); } } if (renderer is SkinnedMeshRenderer) { SkinnedMeshRenderer skinnedMeshRenderer = renderer as SkinnedMeshRenderer; length.ReadMesh(skinnedMeshRenderer.sharedMesh); length.UpdateWhenOffscreen = skinnedMeshRenderer.updateWhenOffscreen; } if (renderer is ParticleSystemRenderer) { ParticleSystem particleSystem = renderer.GetComponent <ParticleSystem>(); if (particleSystem) { length.MeshName = particleSystem.name; length.ParticleCount = particleSystem.particleCount; } } return(length); }
public static void GenerateReport() { M0[] objectsOfType = Object.FindObjectsOfType <Renderer>(); List <RenderInfo.RendererInstance> rendererInstanceList = new List <RenderInfo.RendererInstance>(); foreach (Renderer renderer in (Renderer[])objectsOfType) { RenderInfo.RendererInstance rendererInstance = RenderInfo.RendererInstance.From(renderer); rendererInstanceList.Add(rendererInstance); } string path = string.Format(Application.get_dataPath() + "/../RenderInfo-{0:yyyy-MM-dd_hh-mm-ss-tt}.txt", (object)DateTime.Now); string contents = JsonConvert.SerializeObject((object)rendererInstanceList, (Formatting)1); File.WriteAllText(path, contents); string fileName = Application.get_streamingAssetsPath() + "/RenderInfo.exe"; string arguments = "\"" + path + "\""; Debug.Log((object)("Launching " + fileName + " " + arguments)); Process.Start(fileName, arguments); }