public void Render(IMeshRenderer renderer, int rectangleCount, Material material, UnityEngine.Color additionalColor) { if (parent != null) { parent.Render(renderer, rectangleCount, material, additionalColor); return; } if (currentMeshComponent == null) { meshComponentNo = 0; currentMeshComponent = meshComponents[meshComponentNo]; currentMeshComponent.SetMaterial(material, additionalColor); } else { Material componentMaterial = currentMeshComponent.meshRenderer.sharedMaterial; if (componentMaterial != material || (currentMeshComponent.property != null && currentMeshComponent.additionalColor != additionalColor)) { int no = ++meshComponentNo; if (no >= meshComponents.Count) { AddMeshComponent(); } currentMeshComponent = meshComponents[no]; currentMeshComponent.SetMaterial(material, additionalColor); } } currentMeshComponent.AddRenderer(renderer, rectangleCount, updateCount); }
public bool CreateControl(string assemblyName, string[] dependencies) { // Check if assembly exists if (!File.Exists(assemblyName)) { return(false); } // Check if dependencies exists if (dependencies != null) { foreach (var item in dependencies) { if (!File.Exists(item)) { return(false); } } } assemblyName = Path.GetFileNameWithoutExtension(assemblyName); // Try creating renderer instance. try { // Load the assembly into the current application domain. Assembly assembly = Assembly.Load(assemblyName); // Get all types implementing the IMeshRenderer interface. var type = typeof(IMeshRenderer); var types = assembly.GetTypes().Where(s => type.IsAssignableFrom(s)).ToArray(); if (types.Length > 0) { // Create an instance. renderer = (IMeshRenderer)Activator.CreateInstance(types[0]); } } catch (Exception) { return(false); } // Return true if render control was successfully created. return(renderer != null); }
public void AddRenderer(IMeshRenderer renderer, int rc, int uc) { if (updateCount != uc) { updateCount = uc; rendererCount = 0; rectangleCount = 0; } int i = rendererCount++; if (i < renderers.Count) { renderers[i] = renderer; } else { renderers.Add(renderer); } rectangleCount += rc; }
public void Render( IMeshRenderer renderer, int rectangleCount, Material material) { if (parent != null) { parent.Render(renderer, rectangleCount, material); return; } if (currentMeshComponent == null) { meshComponentNo = 0; currentMeshComponent = meshComponents[meshComponentNo]; currentMeshComponent.SetMaterial(material); } else { Material componentMaterial = currentMeshComponent.meshRenderer.sharedMaterial; if (componentMaterial != material) { int no = ++meshComponentNo; if (no >= meshComponents.Count) AddMeshComponent(); currentMeshComponent = meshComponents[no]; currentMeshComponent.SetMaterial(material); } } currentMeshComponent.AddRenderer(renderer, rectangleCount, updateCount); }
public void AddRenderer(IMeshRenderer renderer, int rc, int uc) { if (updateCount != uc) { updateCount = uc; rendererCount = 0; rectangleCount = 0; } int i = rendererCount++; if (i < renderers.Count) renderers[i] = renderer; else renderers.Add(renderer); rectangleCount += rc; }
public void Render(IMeshRenderer renderer, int rectangleCount, Material material, UnityEngine.Color additionalColor) { if (parent != null) { parent.Render(renderer, rectangleCount, material, additionalColor); return; } if (!needsUpdate) return; if (currentMeshComponent == null) { meshComponentNo = 0; currentMeshComponent = meshComponents[meshComponentNo]; currentMeshComponent.SetMaterial(material, additionalColor); } else { Material componentMaterial = currentMeshComponent.meshRenderer.sharedMaterial; if (componentMaterial != material || (currentMeshComponent.property != null && currentMeshComponent.additionalColor != additionalColor)) { int no = ++meshComponentNo; if (no >= meshComponents.Count) AddMeshComponent(); currentMeshComponent = meshComponents[no]; currentMeshComponent.SetMaterial(material, additionalColor); } } currentMeshComponent.AddRenderer(renderer, rectangleCount, updateCount); }
public bool CreateControl(string assemblyName, string[] dependencies) { // Check if assembly exists if (!File.Exists(assemblyName)) { return false; } // Check if dependencies exists if (dependencies != null) { foreach (var item in dependencies) { if (!File.Exists(item)) { return false; } } } assemblyName = Path.GetFileNameWithoutExtension(assemblyName); // Try creating renderer instance. try { // Load the assembly into the current application domain. Assembly assembly = Assembly.Load(assemblyName); // Get all types implementing the IMeshRenderer interface. var type = typeof(IMeshRenderer); var types = assembly.GetTypes().Where(s => type.IsAssignableFrom(s)).ToArray(); if (types.Length > 0) { // Create an instance. renderer = (IMeshRenderer)Activator.CreateInstance(types[0]); } } catch (Exception) { return false; } // Return true if render control was successfully created. return (renderer != null); }
public void Draw(IMeshRenderer meshRenderer) { meshRenderer.Render(_mesh.Mesh, Matrix.Identity); }