コード例 #1
0
    private void OnSceneGUI()
    {
        LTerrainTools tools = (LTerrainTools)target;

        Ray ray = HandleUtility.GUIPointToWorldRay(Event.current.mousePosition);

        RaycastHit hit;

        if (Physics.Raycast(ray, out hit))
        {
            tools.LastRaycastHit = hit;
        }

        //input
        Event e = Event.current;

        int editor_hash = 12312;
        int controlID   = GUIUtility.GetControlID(editor_hash, FocusType.Passive);

        if (e.type == EventType.Layout)
        {
            HandleUtility.AddDefaultControl(controlID);
        }

        tools.ProcessEvent(e);

        //update
        tools.Tick();
    }
コード例 #2
0
    public override void OnInspectorGUI()
    {
        LTerrainTools terrain = (LTerrainTools)target;

        //base.DrawDefaultInspector();

        EditorGUILayout.BeginHorizontal();
        terrain.CurrentTool = GUILayout.SelectionGrid(terrain.CurrentTool, LTerrainTools.ALL_TOOLS, LTerrainTools.ALL_TOOLS.Length);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginVertical();
        if (GUILayout.Button("Connect chunk edges!"))
        {
            terrain.ConnectChunksEdges();
        }

        terrain.CurrentRadius = EditorGUILayout.Slider("Radius", terrain.CurrentRadius, .10f, 10f);
        EditorGUILayout.EndVertical();

        if (terrain.CurrentTool == LTerrainTools.SCULPT_TOOL)
        {
            EditorGUILayout.BeginVertical();
            terrain.SculptStrenght = EditorGUILayout.Slider("Strenght", terrain.SculptStrenght, 0f, 1f);
            EditorGUILayout.EndVertical();

            EditorGUILayout.BeginHorizontal();
            terrain.UpDirection = (GUILayout.SelectionGrid((terrain.UpDirection) ? 0 : 1, new string[] { "Up", "Down" }, 2) == 0) ? true : false;
            EditorGUILayout.EndHorizontal();
        }
        else if (terrain.CurrentTool == LTerrainTools.SMOOTH_TOOL)
        {
            EditorGUILayout.BeginVertical();
            terrain.SmoothStrenght = EditorGUILayout.Slider("Strenght", terrain.SmoothStrenght, 0f, 1f);
            EditorGUILayout.EndVertical();
        }
        else if (terrain.CurrentTool == LTerrainTools.COLOR_TOOL)
        {
            EditorGUILayout.BeginVertical();
            terrain.PaintingStrenght = EditorGUILayout.Slider("Strenght", terrain.PaintingStrenght, 0f, 1f);
            terrain.PaintingColor    = EditorGUILayout.ColorField("Color", terrain.PaintingColor);
            EditorGUILayout.EndVertical();
        }
    }