public override void OnSceneGUI(Event currentEvent, int controlId, Terrain terrain, IOnSceneGUI editContext)
        {
            Event e = Event.current;

            base.OnSceneGUI(currentEvent, controlId, terrain, editContext);

            m_JitterHandler.Update();

            if (m_AdjustingStrength)
            {
                float strength = m_BrushStrength.value;

                strength += 0.001f * e.delta.x;
                m_BrushStrength.value = strength;

                int strengthPct = Mathf.RoundToInt(100.0f * strength);

                GUIStyle style = new GUIStyle();
                style.normal.background = Texture2D.whiteTexture;
                style.fontSize          = 12;
                Handles.Label(m_LastRaycastHit.point, $"Strength: {strengthPct}%", style);
                editContext.Repaint();
            }
            else
            {
                m_LastRaycastHit = editContext.raycastHit;
            }
        }
        public override void OnSceneGUI(Event currentEvent, int controlId, Terrain terrain, IOnSceneGUI editContext)
        {
            RaycastHit raycastHit = editContext.raycastHit;

            base.OnSceneGUI(currentEvent, controlId, terrain, editContext);

            m_JitterHandler.frequency = m_SmoothJitterFreq.value;
            m_JitterHandler.Update();

            if (m_AdjustingRotation)
            {
                float    rotation          = GetMouseFollowAngle(raycastHit);
                int      rotationInDegrees = Mathf.RoundToInt(rotation);
                GUIStyle style             = new GUIStyle();

                style.normal.background = Texture2D.whiteTexture;
                style.fontSize          = 12;
                Handles.Label(raycastHit.point, $"Rotation: {rotationInDegrees}°", style);
                UpdateCurrentRotation(rotation);
                RequestRepaint();
            }
            else
            {
                m_PreviousRaycastHit = raycastHit;
            }
        }
예제 #3
0
        public override void OnSceneGUI(Event currentEvent, int controlId, Terrain terrain, IOnSceneGUI editContext)
        {
            base.OnSceneGUI(currentEvent, controlId, terrain, editContext);

            m_JitterHandler.Update();

            if (m_AdjustingSize)
            {
                float size = m_BrushSize.value;

                size += 0.002f * Mathf.Clamp(size, 1.0f, 100.0f) * currentEvent.delta.x;
                m_BrushSize.value = size;

                GUIStyle style = new GUIStyle();
                style.normal.background = Texture2D.whiteTexture;
                style.fontSize          = 12;
                Handles.Label(raycastHitUnderCursor.point, $"Size: {size:F1}", style);

                RequestRepaint();
            }
        }