예제 #1
0
        /// <summary>
        /// Adds the new instance to array.
        /// </summary>
        /// <param name="obj">Object.</param>
        public void AddNewInstanceToArray(object obj)
        {
            ScriptableObject asset = obj as ScriptableObject;

            _finalize.arraySize++;
            _finalize.GetArrayElementAtIndex(_finalize.arraySize - 1).objectReferenceValue = asset;

            MapboxDataProperty mapboxDataProperty = (MapboxDataProperty)EditorHelper.GetTargetObjectWithProperty(_finalize);

            if (_finalize.serializedObject.ApplyModifiedProperties() && mapboxDataProperty != null)
            {
                mapboxDataProperty.HasChanged = true;
            }
        }
        public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
        {
            float buttonWidth = EditorGUIUtility.singleLineHeight * 4;

            Rect fieldRect  = new Rect(position.x, position.y, position.width - buttonWidth, EditorGUIUtility.singleLineHeight);
            Rect buttonRect = new Rect(position.x + position.width - buttonWidth, position.y, buttonWidth, EditorGUIUtility.singleLineHeight);

            EditorGUI.PropertyField(fieldRect, property);

            if (GUI.Button(buttonRect, searchButtonContent))
            {
                object objectToUpdate = EditorHelper.GetTargetObjectWithProperty(property);
                GeocodeAttributeSearchWindow.Open(property, objectToUpdate);
            }
        }