Ejemplo n.º 1
0
    private void DrawSelectionHandles(SnappingSetOwner handle)
    {
        foreach (var set in handle.GetComponentsInChildren <SnappingSet>())
        {
            foreach (var filter in set.GetComponentsInChildren <MeshFilter>())
            {
                var mesh = filter.sharedMesh;
                for (int i = 0; i < mesh.vertexCount; i++)
                {
                    Vector3 vertex = mesh.vertices[i];
                    Vector3 normal = mesh.normals[i];

                    Vector3 worldSpaceVertex = filter.transform.localToWorldMatrix.MultiplyPoint(vertex);
                    Vector3 worldSpaceNormal = filter.transform.localToWorldMatrix.MultiplyVector(normal);

                    Color color = Handles.color;

                    if (selectedFilter == filter && selectedVertex == i)
                    {
                        Handles.color = Color.green;
                    }

                    if (Handles.Button(worldSpaceVertex, Quaternion.LookRotation(worldSpaceNormal, Vector3.up), 0.06f, 0.1f, Handles.CircleHandleCap))
                    {
                        selectedFilter = filter;
                        selectedVertex = i;
                        options        = null;
                    }

                    Handles.color = color;
                }
            }
        }
    }
Ejemplo n.º 2
0
 private void ProcessInputs(SnappingSetOwner handle)
 {
     if (Event.current.type == EventType.KeyDown && Event.current.keyCode == KeyCode.S)
     {
         Snap();
     }
 }
Ejemplo n.º 3
0
    private void OnSceneGUI()
    {
        return;

        SnappingSetOwner handle = target as SnappingSetOwner;

        DrawSelectionHandles(handle);
        ProcessInputs(handle);
        DrawButtons();
    }