protected virtual void OnSceneGUI() { var targ = this.target as VisualAspect; if (targ == null) { return; } if (!targ.enabled) { return; } VisualAspectInspector.Material.SetColor("_colorSolid", Color.black); VisualAspectInspector.Material.SetFloat("_colorAlpha", 0.4f); Matrix4x4 mat = Matrix4x4.TRS(targ.transform.position, Quaternion.identity, Vector3.one * 0.1f); for (int i = 0; i < VisualAspectInspector.Material.passCount; ++i) { VisualAspectInspector.Material.SetPass(i); Graphics.DrawMeshNow(PrimitiveUtil.GetMesh(PrimitiveType.Sphere), mat); } VisualAspectInspector.Material.SetColor("_colorSolid", targ.AspectColor); VisualAspectInspector.Material.SetFloat("_colorAlpha", 0.8f); mat = Matrix4x4.TRS(targ.transform.position, Quaternion.identity, Vector3.one * 0.08f); for (int i = 0; i < VisualAspectInspector.Material.passCount; ++i) { VisualAspectInspector.Material.SetPass(i); Graphics.DrawMeshNow(PrimitiveUtil.GetMesh(PrimitiveType.Sphere), mat); } }
static void CreateQuadAsChild() { var go = PrimitiveUtil.CreatePrimitive(PrimitiveType.Quad); go.transform.parent = Selection.activeTransform; go.transform.ZeroOut(false); }
static void CreatePlaneTriggerAsChild() { var go = PrimitiveUtil.CreatePrimitive(PrimitiveType.Plane, true, true); go.transform.parent = Selection.activeTransform; go.transform.ZeroOut(false); }
static void CreateCubeTriggerAsChild() { var go = PrimitiveUtil.CreatePrimitive(PrimitiveType.Cube, true, true); go.GetComponent <Collider>().isTrigger = true; go.transform.parent = Selection.activeTransform; go.transform.ZeroOut(false); }
public void Build() { var renderer = GetComponent <MeshRenderer> (); var filter = GetComponent <MeshFilter> (); var cubeMesh = PrimitiveUtil.GetPrimitiveMesh(PrimitiveType.Cube); var vertexList = new List <Vector3>(cubeMesh.vertices); var indexList = new List <int>(cubeMesh.triangles); for (var i = 0; i < detailLevel; i++) { GeometryUtil.Subdivide(vertexList, indexList, true); } // compute UV coords var uvList = new List <Vector2> (); for (var i = 0; i < vertexList.Count; i++) { //var v = vertexList [i] = Vector3.Normalize (vertexList [i]); uvList.Add(V3toUV(vertexList[i])); } var vertices = vertexList.ToArray(); //FlipWinding (indexList); var mesh = filter.mesh = new Mesh(); mesh.vertices = vertices; mesh.uv = uvList.ToArray(); mesh.SetTriangles(indexList, 0, true); mesh.RecalculateNormals(); mesh.RecalculateTangents(); }
private static void DrawIcon(VisualAspect targ) { SensorRenderUtil.AspectMaterial.SetColor("_colorSolid", Color.black); SensorRenderUtil.AspectMaterial.SetFloat("_colorAlpha", 0.4f); Matrix4x4 mat = Matrix4x4.TRS(targ.transform.position, Quaternion.identity, Vector3.one * 0.1f); for (int i = 0; i < SensorRenderUtil.AspectMaterial.passCount; ++i) { SensorRenderUtil.AspectMaterial.SetPass(i); Graphics.DrawMeshNow(PrimitiveUtil.GetMesh(PrimitiveType.Sphere), mat); } SensorRenderUtil.AspectMaterial.SetColor("_colorSolid", targ.AspectColor); SensorRenderUtil.AspectMaterial.SetFloat("_colorAlpha", 0.8f); mat = Matrix4x4.TRS(targ.transform.position, Quaternion.identity, Vector3.one * 0.08f); for (int i = 0; i < SensorRenderUtil.AspectMaterial.passCount; ++i) { SensorRenderUtil.AspectMaterial.SetPass(i); Graphics.DrawMeshNow(PrimitiveUtil.GetMesh(PrimitiveType.Sphere), mat); } }