• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by colinday · Oct 10, 2012 at 08:59 AM · editornan

MinMaxSlider going to NaN when click outside range

I'm having an issue with the MinMaxSlider in a custom editor going to infinity / NaN when I sometimes click outside of the range bar. It behaves correctly for the most part, but when I switch the inspector to another object and then come back to this one and click outside the range bar, the range bar disappears and if I drag around the min/max values blow out and go to NaN.

Here's the code for my simple custom editor with the Sound object I'm trying to write the editor for.

Any ideas? It really feels like a bug in the Min/Max slider to me ... or I'm missing some crucial setup or piece of understanding about custom editors. I'm using Unity 3.5.6 on OSX.

 public class Sound : MonoBehaviour
 {
         
     // the clip to play
     public AudioClip AudioClip;
     
     // volume
     public float Volume = 1.0f;
 
     // pitch
     public float PitchMin = 1.0f;
     public float PitchMax = 1.0f;
             
 }
 
 
 using AssemblyCSharp;
 using UnityEditor;
 using UnityEngine;
 
 [CustomEditor(typeof(Sound))]
 [CanEditMultipleObjects]
 public class SoundEditor : Editor 
 {
 
     // properties
     private SerializedProperty m_audioClipProp;
     private SerializedProperty m_volumeProp;
     private SerializedProperty m_pitchMinProp;
     private SerializedProperty m_pitchMaxProp;
     
     void OnEnable()
     {
         m_audioClipProp = serializedObject.FindProperty( "AudioClip" );
         m_volumeProp = serializedObject.FindProperty( "Volume" );
         m_pitchMinProp = serializedObject.FindProperty( "PitchMin" );
         m_pitchMaxProp = serializedObject.FindProperty( "PitchMax" );
     }
         
     public override void OnInspectorGUI() 
     {
             
         // Update the serializedProperty - always do this in the beginning of OnInspectorGUI.
         serializedObject.Update();
 
         // audio clip                    
         AudioClip audioClip = m_audioClipProp.objectReferenceValue as AudioClip;
         audioClip = EditorGUILayout.ObjectField( "Audio Clip", audioClip, typeof( AudioClip ), false ) as AudioClip;
         if (GUI.changed)
         {
             m_audioClipProp.objectReferenceValue = audioClip;
         }
                     
         // volume
         EditorGUILayout.Slider( m_volumeProp, 0.0f, 1.0f );
         
         // pitch
         float min = m_pitchMinProp.floatValue;
         float max = m_pitchMaxProp.floatValue;
         GUIContent pitchLabel = new GUIContent( string.Format( "Pitch [Min:{0:F1}, Max:{1:F1}]", min, max ) );
         EditorGUILayout.MinMaxSlider( pitchLabel, ref min, ref max, -3.0f, 3.0f );
         if (GUI.changed)
         {
             m_pitchMinProp.floatValue = min;
             m_pitchMaxProp.floatValue = max;
         }
                 
         // Apply changes to the serializedProperty - always do this in the end of OnInspectorGUI.
         serializedObject.ApplyModifiedProperties();
         
     }
     
 }
Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

9 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Editor camera broken? "transform.position assign attempt for 'SceneCamera' is not valid." 2 Answers

Linking 2 script variables (min + max) to one editor bar - MinMaxSlider? 0 Answers

Detecting moment when GameObiect is created in hierarchy. 1 Answer

How can I create a editor button that can not be selected 0 Answers

Got a Problem when serializing Class Dictionary with Custom Editor 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges