├── .github ├── FUNDING.yml └── workflows │ └── ci.yml ├── .gitignore ├── Assets ├── NaughtyAttributes.meta └── NaughtyAttributes │ ├── Documentation~ │ ├── AnimatorParam_Inspector.png │ ├── BoxGroup_Inspector.png │ ├── Button_Inspector.png │ ├── CurveRange_Inspector.png │ ├── Dropdown_Inspector.gif │ ├── EnableIf_Inspector.gif │ ├── EnumFlags_Inspector.png │ ├── Expandable_Inspector.png │ ├── Foldout_Inspector.gif │ ├── HorizontalLine_Inspector.png │ ├── InfoBox_Inspector.png │ ├── InputAxis_Inspector.png │ ├── Label_Inspector.png │ ├── Layer_Inspector.png │ ├── MinMaxSlider_Inspector.png │ ├── MinValueMaxValue_Inspector.gif │ ├── ProgressBar_Inspector.gif │ ├── ProgressBar_Inspector.png │ ├── ReadOnly_Inspector.png │ ├── ReorderableList_Inspector.gif │ ├── Required_Inspector.png │ ├── ResizableTextArea_Inspector.gif │ ├── Scene_Inspector.png │ ├── ShowAssetPreview_Inspector.png │ ├── ShowIf_Inspector.gif │ ├── ShowNativeProperty_Inspector.png │ ├── ShowNonSerializedField_Inspector.png │ ├── SortingLayer_Inspector.png │ ├── Tag_Inspector.png │ └── ValidateInput_Inspector.png │ ├── README.html │ ├── README.html.meta │ ├── Samples.meta │ ├── Samples │ ├── DemoScene.meta │ └── DemoScene │ │ ├── DemoScene.unity │ │ ├── DemoScene.unity.meta │ │ ├── DemoSceneSettings.lighting │ │ ├── DemoSceneSettings.lighting.meta │ │ ├── TestAssets.meta │ │ └── TestAssets │ │ ├── Cube.prefab │ │ ├── Cube.prefab.meta │ │ ├── DummyAnimation.anim │ │ ├── DummyAnimation.anim.meta │ │ ├── DummyAnimatorController.controller │ │ ├── DummyAnimatorController.controller.meta │ │ ├── NaughtyScriptableObject.asset │ │ ├── NaughtyScriptableObject.asset.meta │ │ ├── TestScriptableObjectA.asset │ │ ├── TestScriptableObjectA.asset.meta │ │ ├── TestScriptableObjectB.asset │ │ ├── TestScriptableObjectB.asset.meta │ │ ├── icon-github.png │ │ └── icon-github.png.meta │ ├── Scripts.meta │ ├── Scripts │ ├── Core.meta │ ├── Core │ │ ├── DrawerAttributes.meta │ │ ├── DrawerAttributes │ │ │ ├── AllowNestingAttribute.cs │ │ │ ├── AllowNestingAttribute.cs.meta │ │ │ ├── AnimatorParamAttribute.cs │ │ │ ├── AnimatorParamAttribute.cs.meta │ │ │ ├── CurveRangeAttribute.cs │ │ │ ├── CurveRangeAttribute.cs.meta │ │ │ ├── DrawerAttribute.cs │ │ │ ├── DrawerAttribute.cs.meta │ │ │ ├── DropdownAttribute.cs │ │ │ ├── DropdownAttribute.cs.meta │ │ │ ├── EnumFlagsAttribute.cs │ │ │ ├── EnumFlagsAttribute.cs.meta │ │ │ ├── Expandable.cs │ │ │ ├── Expandable.cs.meta │ │ │ ├── HorizontalLineAttribute.cs │ │ │ ├── HorizontalLineAttribute.cs.meta │ │ │ ├── InfoBoxAttribute.cs │ │ │ ├── InfoBoxAttribute.cs.meta │ │ │ ├── InputAxisAttribute.cs │ │ │ ├── InputAxisAttribute.cs.meta │ │ │ ├── LayerAttribute.cs │ │ │ ├── LayerAttribute.cs.meta │ │ │ ├── MinMaxSliderAttribute.cs │ │ │ ├── MinMaxSliderAttribute.cs.meta │ │ │ ├── ProgressBarAttribute.cs │ │ │ ├── ProgressBarAttribute.cs.meta │ │ │ ├── ResizableTextAreaAttribute.cs │ │ │ ├── ResizableTextAreaAttribute.cs.meta │ │ │ ├── SceneAttribute.cs │ │ │ ├── SceneAttribute.cs.meta │ │ │ ├── ShowAssetPreviewAttribute.cs │ │ │ ├── ShowAssetPreviewAttribute.cs.meta │ │ │ ├── SortingLayerAttribute.cs │ │ │ ├── SortingLayerAttribute.cs.meta │ │ │ ├── TagAttribute.cs │ │ │ └── TagAttribute.cs.meta │ │ ├── DrawerAttributes_SpecialCase.meta │ │ ├── DrawerAttributes_SpecialCase │ │ │ ├── ButtonAttribute.cs │ │ │ ├── ButtonAttribute.cs.meta │ │ │ ├── ReorderableListAttribute.cs │ │ │ ├── ReorderableListAttribute.cs.meta │ │ │ ├── ShowNativePropertyAttribute.cs │ │ │ ├── ShowNativePropertyAttribute.cs.meta │ │ │ ├── ShowNonSerializedFieldAttribute.cs │ │ │ ├── ShowNonSerializedFieldAttribute.cs.meta │ │ │ ├── SpecialCaseDrawerAttribute.cs │ │ │ └── SpecialCaseDrawerAttribute.cs.meta │ │ ├── INaughtyAttribute.cs │ │ ├── INaughtyAttribute.cs.meta │ │ ├── MetaAttributes.meta │ │ ├── MetaAttributes │ │ │ ├── BoxGroupAttribute.cs │ │ │ ├── BoxGroupAttribute.cs.meta │ │ │ ├── DisableIfAttribute.cs │ │ │ ├── DisableIfAttribute.cs.meta │ │ │ ├── EnableIfAttribute.cs │ │ │ ├── EnableIfAttribute.cs.meta │ │ │ ├── EnableIfAttributeBase.cs │ │ │ ├── EnableIfAttributeBase.cs.meta │ │ │ ├── FoldoutAttribute.cs │ │ │ ├── FoldoutAttribute.cs.meta │ │ │ ├── HideIfAttribute.cs │ │ │ ├── HideIfAttribute.cs.meta │ │ │ ├── IGroupAttribute.cs │ │ │ ├── IGroupAttribute.cs.meta │ │ │ ├── LabelAttribute.cs │ │ │ ├── LabelAttribute.cs.meta │ │ │ ├── MetaAttribute.cs │ │ │ ├── MetaAttribute.cs.meta │ │ │ ├── OnValueChangedAttribute.cs │ │ │ ├── OnValueChangedAttribute.cs.meta │ │ │ ├── ReadOnlyAttribute.cs │ │ │ ├── ReadOnlyAttribute.cs.meta │ │ │ ├── ShowIfAttribute.cs │ │ │ ├── ShowIfAttribute.cs.meta │ │ │ ├── ShowIfAttributeBase.cs │ │ │ └── ShowIfAttributeBase.cs.meta │ │ ├── NaughtyAttributes.Core.asmdef │ │ ├── NaughtyAttributes.Core.asmdef.meta │ │ ├── Utility.meta │ │ ├── Utility │ │ │ ├── EColor.cs │ │ │ ├── EColor.cs.meta │ │ │ ├── EConditionOperator.cs │ │ │ └── EConditionOperator.cs.meta │ │ ├── ValidatorAttributes.meta │ │ └── ValidatorAttributes │ │ │ ├── MaxValueAttribute.cs │ │ │ ├── MaxValueAttribute.cs.meta │ │ │ ├── MinValueAttribute.cs │ │ │ ├── MinValueAttribute.cs.meta │ │ │ ├── RequiredAttribute.cs │ │ │ ├── RequiredAttribute.cs.meta │ │ │ ├── ValidateInputAttribute.cs │ │ │ ├── ValidateInputAttribute.cs.meta │ │ │ ├── ValidatorAttribute.cs │ │ │ └── ValidatorAttribute.cs.meta │ ├── Editor.meta │ ├── Editor │ │ ├── DecoratorDrawers.meta │ │ ├── DecoratorDrawers │ │ │ ├── HorizontalLineDecoratorDrawer.cs │ │ │ ├── HorizontalLineDecoratorDrawer.cs.meta │ │ │ ├── InfoBoxDecoratorDrawer.cs │ │ │ └── InfoBoxDecoratorDrawer.cs.meta │ │ ├── NaughtyAttributes.Editor.asmdef │ │ ├── NaughtyAttributes.Editor.asmdef.meta │ │ ├── NaughtyInspector.cs │ │ ├── NaughtyInspector.cs.meta │ │ ├── PropertyDrawers.meta │ │ ├── PropertyDrawers │ │ │ ├── AllowNestingPropertyDrawer.cs │ │ │ ├── AllowNestingPropertyDrawer.cs.meta │ │ │ ├── AnimatorParamPropertyDrawer.cs │ │ │ ├── AnimatorParamPropertyDrawer.cs.meta │ │ │ ├── CurveRangePropertyDrawer.cs │ │ │ ├── CurveRangePropertyDrawer.cs.meta │ │ │ ├── DropdownPropertyDrawer.cs │ │ │ ├── DropdownPropertyDrawer.cs.meta │ │ │ ├── EnumFlagsPropertyDrawer.cs │ │ │ ├── EnumFlagsPropertyDrawer.cs.meta │ │ │ ├── ExpandablePropertyDrawer.cs │ │ │ ├── ExpandablePropertyDrawer.cs.meta │ │ │ ├── InputAxisPropertyDrawer.cs │ │ │ ├── InputAxisPropertyDrawer.cs.meta │ │ │ ├── LayerPropertyDrawer.cs │ │ │ ├── LayerPropertyDrawer.cs.meta │ │ │ ├── MinMaxSliderPropertyDrawer.cs │ │ │ ├── MinMaxSliderPropertyDrawer.cs.meta │ │ │ ├── ProgressBarPropertyDrawer.cs │ │ │ ├── ProgressBarPropertyDrawer.cs.meta │ │ │ ├── PropertyDrawerBase.cs │ │ │ ├── PropertyDrawerBase.cs.meta │ │ │ ├── ResizableTextAreaPropertyDrawer.cs │ │ │ ├── ResizableTextAreaPropertyDrawer.cs.meta │ │ │ ├── ScenePropertyDrawer.cs │ │ │ ├── ScenePropertyDrawer.cs.meta │ │ │ ├── ShowAssetPreviewPropertyDrawer.cs │ │ │ ├── ShowAssetPreviewPropertyDrawer.cs.meta │ │ │ ├── SortingLayerPropertyDrawer.cs │ │ │ ├── SortingLayerPropertyDrawer.cs.meta │ │ │ ├── TagPropertyDrawer.cs │ │ │ └── TagPropertyDrawer.cs.meta │ │ ├── PropertyDrawers_SpecialCase.meta │ │ ├── PropertyDrawers_SpecialCase │ │ │ ├── ReorderableListPropertyDrawer.cs │ │ │ ├── ReorderableListPropertyDrawer.cs.meta │ │ │ ├── SpecialCasePropertyDrawerBase.cs │ │ │ └── SpecialCasePropertyDrawerBase.cs.meta │ │ ├── PropertyValidators.meta │ │ ├── PropertyValidators │ │ │ ├── MaxValuePropertyValidator.cs │ │ │ ├── MaxValuePropertyValidator.cs.meta │ │ │ ├── MinValuePropertyValidator.cs │ │ │ ├── MinValuePropertyValidator.cs.meta │ │ │ ├── PropertyValidatorBase.cs │ │ │ ├── PropertyValidatorBase.cs.meta │ │ │ ├── RequiredPropertyValidator.cs │ │ │ ├── RequiredPropertyValidator.cs.meta │ │ │ ├── ValidateInputPropertyValidator.cs │ │ │ └── ValidateInputPropertyValidator.cs.meta │ │ ├── Utility.meta │ │ └── Utility │ │ │ ├── ButtonUtility.cs │ │ │ ├── ButtonUtility.cs.meta │ │ │ ├── NaughtyEditorGUI.cs │ │ │ ├── NaughtyEditorGUI.cs.meta │ │ │ ├── PropertyUtility.cs │ │ │ ├── PropertyUtility.cs.meta │ │ │ ├── ReflectionUtility.cs │ │ │ ├── ReflectionUtility.cs.meta │ │ │ ├── SavedBool.cs │ │ │ └── SavedBool.cs.meta │ ├── Test.meta │ └── Test │ │ ├── AnimatorParamTest.cs │ │ ├── AnimatorParamTest.cs.meta │ │ ├── BoxGroupTest.cs │ │ ├── BoxGroupTest.cs.meta │ │ ├── ButtonTest.cs │ │ ├── ButtonTest.cs.meta │ │ ├── CurveRangeTest.cs │ │ ├── CurveRangeTest.cs.meta │ │ ├── DisableIfTest.cs │ │ ├── DisableIfTest.cs.meta │ │ ├── DropdownTest.cs │ │ ├── DropdownTest.cs.meta │ │ ├── EnableIfTest.cs │ │ ├── EnableIfTest.cs.meta │ │ ├── EnumFlagsTest.cs │ │ ├── EnumFlagsTest.cs.meta │ │ ├── ExpandableTest.cs │ │ ├── ExpandableTest.cs.meta │ │ ├── FoldoutTest.cs │ │ ├── FoldoutTest.cs.meta │ │ ├── HideIfTest.cs │ │ ├── HideIfTest.cs.meta │ │ ├── HorizontalLineTest.cs │ │ ├── HorizontalLineTest.cs.meta │ │ ├── InfoBoxTest.cs │ │ ├── InfoBoxTest.cs.meta │ │ ├── InputAxisTest.cs │ │ ├── InputAxisTest.cs.meta │ │ ├── LabelTest.cs │ │ ├── LabelTest.cs.meta │ │ ├── LayerTest.cs │ │ ├── LayerTest.cs.meta │ │ ├── MinMaxSliderTest.cs │ │ ├── MinMaxSliderTest.cs.meta │ │ ├── MinMaxValueTest.cs │ │ ├── MinMaxValueTest.cs.meta │ │ ├── NaughtyAttributes.Test.asmdef │ │ ├── NaughtyAttributes.Test.asmdef.meta │ │ ├── OnValueChangedTest.cs │ │ ├── OnValueChangedTest.cs.meta │ │ ├── ProgressBarTest.cs │ │ ├── ProgressBarTest.cs.meta │ │ ├── ReadOnlyTest.cs │ │ ├── ReadOnlyTest.cs.meta │ │ ├── ReorderableListTest.cs │ │ ├── ReorderableListTest.cs.meta │ │ ├── RequiredTest.cs │ │ ├── RequiredTest.cs.meta │ │ ├── ResizableTextAreaTest.cs │ │ ├── ResizableTextAreaTest.cs.meta │ │ ├── SceneTest.cs │ │ ├── SceneTest.cs.meta │ │ ├── ShowAssetPreviewTest.cs │ │ ├── ShowAssetPreviewTest.cs.meta │ │ ├── ShowIfTest.cs │ │ ├── ShowIfTest.cs.meta │ │ ├── ShowNativePropertyTest.cs │ │ ├── ShowNativePropertyTest.cs.meta │ │ ├── ShowNonSerializedFieldTest.cs │ │ ├── ShowNonSerializedFieldTest.cs.meta │ │ ├── SortingLayerTest.cs │ │ ├── SortingLayerTest.cs.meta │ │ ├── TagTest.cs │ │ ├── TagTest.cs.meta │ │ ├── ValidateInputTest.cs │ │ ├── ValidateInputTest.cs.meta │ │ ├── _NaughtyComponent.cs │ │ ├── _NaughtyComponent.cs.meta │ │ ├── _NaughtyScriptableObject.cs │ │ ├── _NaughtyScriptableObject.cs.meta │ │ ├── _TestScriptableObjectA.cs │ │ ├── _TestScriptableObjectA.cs.meta │ │ ├── _TestScriptableObjectB.cs │ │ └── _TestScriptableObjectB.cs.meta │ ├── package.json │ └── package.json.meta ├── LICENSE ├── Packages ├── manifest.json └── packages-lock.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── PackageManagerSettings.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset ├── VFXManager.asset ├── VersionControlSettings.asset └── XRSettings.asset └── README.md /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: ["https://www.paypal.com/paypalme/dbrizov", "https://www.buymeacoffee.com/dbrizov"] 13 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | 8 | jobs: 9 | split-upm: 10 | name: update upm branch 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v2 14 | with: 15 | fetch-depth: 0 16 | - name: update upm branch 17 | run: | 18 | echo '### head info' 19 | git log -1 20 | 21 | echo '### split upm branch' 22 | git subtree split -P "$PKG_ROOT" -b upm 23 | 24 | echo '### update remote upm branch' 25 | git push origin upm 26 | env: 27 | PKG_ROOT: Assets/NaughtyAttributes 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ==================== 2 | Temp/ 3 | Library/ 4 | Logs/ 5 | UserSettings/ 6 | Assets/AssetStoreTools/ 7 | Assets/AssetStoreTools.meta 8 | Assets/Plugins/Editor/JetBrains 9 | Assets/Plugins/Editor/JetBrains.meta 10 | Assets/Plugins.meta 11 | Assets/Plugins/Editor.meta 12 | 13 | ==================== 14 | ExportedObj/ 15 | obj/ 16 | .vs/ 17 | .vscode/ 18 | .vsconfig 19 | .idea/ 20 | *.svd 21 | *.userprefs 22 | *.csproj 23 | *.pidb 24 | *.suo 25 | *.sln 26 | *.user 27 | *.unityproj 28 | *.booproj 29 | 30 | ==================== 31 | .DS_Store 32 | .DS_Store? 33 | ._* 34 | .Spotlight-V100 35 | .Trashes 36 | ehthumbs.db 37 | Thumbs.db 38 | 39 | ==================== 40 | Builds/ 41 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 23ad0e668d9d1e441946a2133bc31bce 3 | folderAsset: yes 4 | timeCreated: 1507998703 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/AnimatorParam_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/AnimatorParam_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/BoxGroup_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/BoxGroup_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/Button_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/Button_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/CurveRange_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/CurveRange_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/Dropdown_Inspector.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/Dropdown_Inspector.gif -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/EnableIf_Inspector.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/EnableIf_Inspector.gif -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/EnumFlags_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/EnumFlags_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/Expandable_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/Expandable_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/Foldout_Inspector.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/Foldout_Inspector.gif -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/HorizontalLine_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/HorizontalLine_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/InfoBox_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/InfoBox_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/InputAxis_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/InputAxis_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/Label_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/Label_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/Layer_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/Layer_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/MinMaxSlider_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/MinMaxSlider_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/MinValueMaxValue_Inspector.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/MinValueMaxValue_Inspector.gif -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/ProgressBar_Inspector.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/ProgressBar_Inspector.gif -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/ProgressBar_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/ProgressBar_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/ReadOnly_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/ReadOnly_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/ReorderableList_Inspector.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/ReorderableList_Inspector.gif -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/Required_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/Required_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/ResizableTextArea_Inspector.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/ResizableTextArea_Inspector.gif -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/Scene_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/Scene_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/ShowAssetPreview_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/ShowAssetPreview_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/ShowIf_Inspector.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/ShowIf_Inspector.gif -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/ShowNativeProperty_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/ShowNativeProperty_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/ShowNonSerializedField_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/ShowNonSerializedField_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/SortingLayer_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/SortingLayer_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/Tag_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/Tag_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Documentation~/ValidateInput_Inspector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Documentation~/ValidateInput_Inspector.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/README.html.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f1c5c604e6d27cc4d86e81f45c704e11 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Samples.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b1e9ff0668650a54da2c458e80a90032 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Samples/DemoScene.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: afb4c815411c28b449e61fbaa1a8bfa3 3 | folderAsset: yes 4 | timeCreated: 1507995550 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Samples/DemoScene/DemoScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 07845a5477be2b149a6f1cb32b5a3a5b 3 | timeCreated: 1507998788 4 | licenseType: Free 5 | DefaultImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Samples/DemoScene/DemoSceneSettings.lighting: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!850595691 &4890085278179872738 4 | LightingSettings: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: DemoSceneSettings 10 | serializedVersion: 2 11 | m_GIWorkflowMode: 0 12 | m_EnableBakedLightmaps: 1 13 | m_EnableRealtimeLightmaps: 1 14 | m_RealtimeEnvironmentLighting: 1 15 | m_BounceScale: 1 16 | m_AlbedoBoost: 1 17 | m_IndirectOutputScale: 1 18 | m_UsingShadowmask: 1 19 | m_BakeBackend: 0 20 | m_LightmapMaxSize: 1024 21 | m_BakeResolution: 40 22 | m_Padding: 2 23 | m_TextureCompression: 1 24 | m_AO: 0 25 | m_AOMaxDistance: 1 26 | m_CompAOExponent: 1 27 | m_CompAOExponentDirect: 0 28 | m_ExtractAO: 0 29 | m_MixedBakeMode: 2 30 | m_LightmapsBakeMode: 1 31 | m_FilterMode: 1 32 | m_LightmapParameters: {fileID: 0} 33 | m_ExportTrainingData: 0 34 | m_TrainingDataDestination: TrainingData 35 | m_RealtimeResolution: 2 36 | m_ForceWhiteAlbedo: 0 37 | m_ForceUpdates: 0 38 | m_FinalGather: 0 39 | m_FinalGatherRayCount: 256 40 | m_FinalGatherFiltering: 1 41 | m_PVRCulling: 1 42 | m_PVRSampling: 1 43 | m_PVRDirectSampleCount: 32 44 | m_PVRSampleCount: 500 45 | m_PVREnvironmentSampleCount: 500 46 | m_PVREnvironmentReferencePointCount: 2048 47 | m_LightProbeSampleCountMultiplier: 4 48 | m_PVRBounces: 2 49 | m_PVRRussianRouletteStartBounce: 2 50 | m_PVREnvironmentMIS: 0 51 | m_PVRFilteringMode: 2 52 | m_PVRDenoiserTypeDirect: 0 53 | m_PVRDenoiserTypeIndirect: 0 54 | m_PVRDenoiserTypeAO: 0 55 | m_PVRFilterTypeDirect: 0 56 | m_PVRFilterTypeIndirect: 0 57 | m_PVRFilterTypeAO: 0 58 | m_PVRFilteringGaussRadiusDirect: 1 59 | m_PVRFilteringGaussRadiusIndirect: 5 60 | m_PVRFilteringGaussRadiusAO: 2 61 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 62 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 63 | m_PVRFilteringAtrousPositionSigmaAO: 1 64 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Samples/DemoScene/DemoSceneSettings.lighting.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 98ee975b74776234986f4d35f14c4ccc 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Samples/DemoScene/TestAssets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 53a462744f22ca549927c5e6ea797362 3 | folderAsset: yes 4 | timeCreated: 1509089305 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Samples/DemoScene/TestAssets/Cube.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &1981131855061102 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 4344736110947706} 12 | - component: {fileID: 33062901823624450} 13 | - component: {fileID: 65233182844289960} 14 | - component: {fileID: 23099360439063292} 15 | m_Layer: 0 16 | m_Name: Cube 17 | m_TagString: Untagged 18 | m_Icon: {fileID: 0} 19 | m_NavMeshLayer: 0 20 | m_StaticEditorFlags: 0 21 | m_IsActive: 1 22 | --- !u!4 &4344736110947706 23 | Transform: 24 | m_ObjectHideFlags: 0 25 | m_CorrespondingSourceObject: {fileID: 0} 26 | m_PrefabInstance: {fileID: 0} 27 | m_PrefabAsset: {fileID: 0} 28 | m_GameObject: {fileID: 1981131855061102} 29 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 30 | m_LocalPosition: {x: 0, y: 0, z: 0} 31 | m_LocalScale: {x: 1, y: 1, z: 1} 32 | m_Children: [] 33 | m_Father: {fileID: 0} 34 | m_RootOrder: 0 35 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 36 | --- !u!33 &33062901823624450 37 | MeshFilter: 38 | m_ObjectHideFlags: 0 39 | m_CorrespondingSourceObject: {fileID: 0} 40 | m_PrefabInstance: {fileID: 0} 41 | m_PrefabAsset: {fileID: 0} 42 | m_GameObject: {fileID: 1981131855061102} 43 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 44 | --- !u!65 &65233182844289960 45 | BoxCollider: 46 | m_ObjectHideFlags: 0 47 | m_CorrespondingSourceObject: {fileID: 0} 48 | m_PrefabInstance: {fileID: 0} 49 | m_PrefabAsset: {fileID: 0} 50 | m_GameObject: {fileID: 1981131855061102} 51 | m_Material: {fileID: 0} 52 | m_IsTrigger: 0 53 | m_Enabled: 1 54 | serializedVersion: 2 55 | m_Size: {x: 1, y: 1, z: 1} 56 | m_Center: {x: 0, y: 0, z: 0} 57 | --- !u!23 &23099360439063292 58 | MeshRenderer: 59 | m_ObjectHideFlags: 0 60 | m_CorrespondingSourceObject: {fileID: 0} 61 | m_PrefabInstance: {fileID: 0} 62 | m_PrefabAsset: {fileID: 0} 63 | m_GameObject: {fileID: 1981131855061102} 64 | m_Enabled: 1 65 | m_CastShadows: 1 66 | m_ReceiveShadows: 1 67 | m_DynamicOccludee: 1 68 | m_MotionVectors: 1 69 | m_LightProbeUsage: 1 70 | m_ReflectionProbeUsage: 1 71 | m_RenderingLayerMask: 1 72 | m_RendererPriority: 0 73 | m_Materials: 74 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} 75 | m_StaticBatchInfo: 76 | firstSubMesh: 0 77 | subMeshCount: 0 78 | m_StaticBatchRoot: {fileID: 0} 79 | m_ProbeAnchor: {fileID: 0} 80 | m_LightProbeVolumeOverride: {fileID: 0} 81 | m_ScaleInLightmap: 1 82 | m_PreserveUVs: 1 83 | m_IgnoreNormalsForChartDetection: 0 84 | m_ImportantGI: 0 85 | m_StitchLightmapSeams: 0 86 | m_SelectedEditorRenderState: 3 87 | m_MinimumChartSize: 4 88 | m_AutoUVMaxDistance: 0.5 89 | m_AutoUVMaxAngle: 89 90 | m_LightmapParameters: {fileID: 0} 91 | m_SortingLayerID: 0 92 | m_SortingLayer: 0 93 | m_SortingOrder: 0 94 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Samples/DemoScene/TestAssets/Cube.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7ec354ef3daae7641b7a3fa5e1fe0c81 3 | timeCreated: 1509089337 4 | licenseType: Free 5 | NativeFormatImporter: 6 | externalObjects: {} 7 | mainObjectFileID: 100100000 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Samples/DemoScene/TestAssets/DummyAnimation.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 31fbd6c92d19aaa48910857627a54a25 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Samples/DemoScene/TestAssets/DummyAnimatorController.controller: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1102 &-1567792821050049497 4 | AnimatorState: 5 | serializedVersion: 5 6 | m_ObjectHideFlags: 1 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: DummyAnimation 11 | m_Speed: 1 12 | m_CycleOffset: 0 13 | m_Transitions: [] 14 | m_StateMachineBehaviours: [] 15 | m_Position: {x: 50, y: 50, z: 0} 16 | m_IKOnFeet: 0 17 | m_WriteDefaultValues: 1 18 | m_Mirror: 0 19 | m_SpeedParameterActive: 0 20 | m_MirrorParameterActive: 0 21 | m_CycleOffsetParameterActive: 0 22 | m_TimeParameterActive: 0 23 | m_Motion: {fileID: 7400000, guid: 31fbd6c92d19aaa48910857627a54a25, type: 2} 24 | m_Tag: 25 | m_SpeedParameter: 26 | m_MirrorParameter: 27 | m_CycleOffsetParameter: 28 | m_TimeParameter: 29 | --- !u!91 &9100000 30 | AnimatorController: 31 | m_ObjectHideFlags: 0 32 | m_CorrespondingSourceObject: {fileID: 0} 33 | m_PrefabInstance: {fileID: 0} 34 | m_PrefabAsset: {fileID: 0} 35 | m_Name: DummyAnimatorController 36 | serializedVersion: 5 37 | m_AnimatorParameters: 38 | - m_Name: Float0 39 | m_Type: 1 40 | m_DefaultFloat: 0 41 | m_DefaultInt: 0 42 | m_DefaultBool: 0 43 | m_Controller: {fileID: 9100000} 44 | - m_Name: Float1 45 | m_Type: 1 46 | m_DefaultFloat: 0 47 | m_DefaultInt: 0 48 | m_DefaultBool: 0 49 | m_Controller: {fileID: 9100000} 50 | - m_Name: Int0 51 | m_Type: 3 52 | m_DefaultFloat: 0 53 | m_DefaultInt: 0 54 | m_DefaultBool: 0 55 | m_Controller: {fileID: 9100000} 56 | - m_Name: Int1 57 | m_Type: 3 58 | m_DefaultFloat: 0 59 | m_DefaultInt: 0 60 | m_DefaultBool: 0 61 | m_Controller: {fileID: 9100000} 62 | - m_Name: Bool0 63 | m_Type: 4 64 | m_DefaultFloat: 0 65 | m_DefaultInt: 0 66 | m_DefaultBool: 0 67 | m_Controller: {fileID: 9100000} 68 | - m_Name: Bool1 69 | m_Type: 4 70 | m_DefaultFloat: 0 71 | m_DefaultInt: 0 72 | m_DefaultBool: 0 73 | m_Controller: {fileID: 9100000} 74 | - m_Name: Trigger0 75 | m_Type: 9 76 | m_DefaultFloat: 0 77 | m_DefaultInt: 0 78 | m_DefaultBool: 0 79 | m_Controller: {fileID: 9100000} 80 | - m_Name: Trigger1 81 | m_Type: 9 82 | m_DefaultFloat: 0 83 | m_DefaultInt: 0 84 | m_DefaultBool: 0 85 | m_Controller: {fileID: 9100000} 86 | m_AnimatorLayers: 87 | - serializedVersion: 5 88 | m_Name: Base Layer 89 | m_StateMachine: {fileID: 945276690032550857} 90 | m_Mask: {fileID: 0} 91 | m_Motions: [] 92 | m_Behaviours: [] 93 | m_BlendingMode: 0 94 | m_SyncedLayerIndex: -1 95 | m_DefaultWeight: 0 96 | m_IKPass: 0 97 | m_SyncedLayerAffectsTiming: 0 98 | m_Controller: {fileID: 9100000} 99 | --- !u!1107 &945276690032550857 100 | AnimatorStateMachine: 101 | serializedVersion: 5 102 | m_ObjectHideFlags: 1 103 | m_CorrespondingSourceObject: {fileID: 0} 104 | m_PrefabInstance: {fileID: 0} 105 | m_PrefabAsset: {fileID: 0} 106 | m_Name: Base Layer 107 | m_ChildStates: 108 | - serializedVersion: 1 109 | m_State: {fileID: -1567792821050049497} 110 | m_Position: {x: 390, y: 80, z: 0} 111 | m_ChildStateMachines: [] 112 | m_AnyStateTransitions: [] 113 | m_EntryTransitions: [] 114 | m_StateMachineTransitions: {} 115 | m_StateMachineBehaviours: [] 116 | m_AnyStatePosition: {x: 50, y: 20, z: 0} 117 | m_EntryPosition: {x: 50, y: 120, z: 0} 118 | m_ExitPosition: {x: 800, y: 120, z: 0} 119 | m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} 120 | m_DefaultState: {fileID: -1567792821050049497} 121 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Samples/DemoScene/TestAssets/DummyAnimatorController.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 63ee86efd213bf34285c95f33e79dc6c 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Samples/DemoScene/TestAssets/NaughtyScriptableObject.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 753bdb918c6038142acddbd7aae6958f, type: 3} 13 | m_Name: NaughtyScriptableObject 14 | m_EditorClassIdentifier: 15 | listA: 16 | - {fileID: 11400000, guid: 149474eb879a6a641b560ca17d48712f, type: 2} 17 | - {fileID: 11400000, guid: 149474eb879a6a641b560ca17d48712f, type: 2} 18 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Samples/DemoScene/TestAssets/NaughtyScriptableObject.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9cf80899b80517945a2d2390fb48877f 3 | timeCreated: 1518639643 4 | licenseType: Free 5 | NativeFormatImporter: 6 | externalObjects: {} 7 | mainObjectFileID: 11400000 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Samples/DemoScene/TestAssets/TestScriptableObjectA.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 19472ac11eae27a4b804f354ca7d9c00, type: 3} 13 | m_Name: TestScriptableObjectA 14 | m_EditorClassIdentifier: 15 | listB: 16 | - {fileID: 11400000, guid: 05371aa7630d3ef44ac0106af06cd73c, type: 2} 17 | - {fileID: 11400000, guid: 05371aa7630d3ef44ac0106af06cd73c, type: 2} 18 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Samples/DemoScene/TestAssets/TestScriptableObjectA.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 149474eb879a6a641b560ca17d48712f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Samples/DemoScene/TestAssets/TestScriptableObjectB.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: c2b396aeebc9d984da298eee313896bc, type: 3} 13 | m_Name: TestScriptableObjectB 14 | m_EditorClassIdentifier: 15 | slider: {x: 3, y: 7} 16 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Samples/DemoScene/TestAssets/TestScriptableObjectB.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 05371aa7630d3ef44ac0106af06cd73c 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Samples/DemoScene/TestAssets/icon-github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dbrizov/NaughtyAttributes/a97aa9b3b416e4c9122ea1be1a1b93b1169b0cd3/Assets/NaughtyAttributes/Samples/DemoScene/TestAssets/icon-github.png -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Samples/DemoScene/TestAssets/icon-github.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 005888ede18a58e4db8d069cfa3007cb 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 1 73 | - serializedVersion: 3 74 | buildTarget: Standalone 75 | maxTextureSize: 2048 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | forceMaximumCompressionQuality_BC6H_BC7: 1 85 | - serializedVersion: 3 86 | buildTarget: Android 87 | maxTextureSize: 2048 88 | resizeAlgorithm: 0 89 | textureFormat: -1 90 | textureCompression: 1 91 | compressionQuality: 50 92 | crunchedCompression: 0 93 | allowsAlphaSplitting: 0 94 | overridden: 0 95 | androidETC2FallbackOverride: 0 96 | forceMaximumCompressionQuality_BC6H_BC7: 1 97 | - serializedVersion: 3 98 | buildTarget: WebGL 99 | maxTextureSize: 2048 100 | resizeAlgorithm: 0 101 | textureFormat: -1 102 | textureCompression: 1 103 | compressionQuality: 50 104 | crunchedCompression: 0 105 | allowsAlphaSplitting: 0 106 | overridden: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 1 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 5e97eb03825dee720800000000000000 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | spritePackingTag: 123 | pSDRemoveMatte: 0 124 | pSDShowRemoveMatteOption: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 66686847ee1fa044bb15dfe473666178 3 | folderAsset: yes 4 | timeCreated: 1507995546 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1f67e408a6d0adf4ab29d095ccd8b116 3 | folderAsset: yes 4 | timeCreated: 1507998942 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c76425e719cd4424d868674bcfb233f2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/AllowNestingAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class AllowNestingAttribute : DrawerAttribute 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/AllowNestingAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 95b49d3abe880c044adbe7faf6b7b4ec 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/AnimatorParamAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | 4 | namespace NaughtyAttributes 5 | { 6 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 7 | public class AnimatorParamAttribute : DrawerAttribute 8 | { 9 | public string AnimatorName { get; private set; } 10 | public AnimatorControllerParameterType? AnimatorParamType { get; private set; } 11 | 12 | public AnimatorParamAttribute(string animatorName) 13 | { 14 | AnimatorName = animatorName; 15 | AnimatorParamType = null; 16 | } 17 | 18 | public AnimatorParamAttribute(string animatorName, AnimatorControllerParameterType animatorParamType) 19 | { 20 | AnimatorName = animatorName; 21 | AnimatorParamType = animatorParamType; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/AnimatorParamAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7373332cb77b42744a415d6b4add445d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/CurveRangeAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | 4 | namespace NaughtyAttributes 5 | { 6 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 7 | public class CurveRangeAttribute : DrawerAttribute 8 | { 9 | public Vector2 Min { get; private set; } 10 | public Vector2 Max { get; private set; } 11 | public EColor Color { get; private set; } 12 | 13 | public CurveRangeAttribute(Vector2 min, Vector2 max, EColor color = EColor.Clear) 14 | { 15 | Min = min; 16 | Max = max; 17 | Color = color; 18 | } 19 | 20 | public CurveRangeAttribute(EColor color) 21 | : this(Vector2.zero, Vector2.one, color) 22 | { 23 | } 24 | 25 | public CurveRangeAttribute(float minX, float minY, float maxX, float maxY, EColor color = EColor.Clear) 26 | : this(new Vector2(minX, minY), new Vector2(maxX, maxY), color) 27 | { 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/CurveRangeAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bbdf3fb8882c7514c9a01108122cda7e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/DrawerAttribute.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | /// <summary> 6 | /// Base class for all drawer attributes 7 | /// </summary> 8 | public class DrawerAttribute : PropertyAttribute, INaughtyAttribute 9 | { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/DrawerAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9df37fdebccf65c4da5b0a14f6dad5f5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/DropdownAttribute.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System; 3 | using System.Collections.Generic; 4 | 5 | namespace NaughtyAttributes 6 | { 7 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 8 | public class DropdownAttribute : DrawerAttribute 9 | { 10 | public string ValuesName { get; private set; } 11 | 12 | public DropdownAttribute(string valuesName) 13 | { 14 | ValuesName = valuesName; 15 | } 16 | } 17 | 18 | public interface IDropdownList : IEnumerable<KeyValuePair<string, object>> 19 | { 20 | } 21 | 22 | public class DropdownList<T> : IDropdownList 23 | { 24 | private List<KeyValuePair<string, object>> _values; 25 | 26 | public DropdownList() 27 | { 28 | _values = new List<KeyValuePair<string, object>>(); 29 | } 30 | 31 | public void Add(string displayName, T value) 32 | { 33 | _values.Add(new KeyValuePair<string, object>(displayName, value)); 34 | } 35 | 36 | public IEnumerator<KeyValuePair<string, object>> GetEnumerator() 37 | { 38 | return _values.GetEnumerator(); 39 | } 40 | 41 | IEnumerator IEnumerable.GetEnumerator() 42 | { 43 | return GetEnumerator(); 44 | } 45 | 46 | public static explicit operator DropdownList<object>(DropdownList<T> target) 47 | { 48 | DropdownList<object> result = new DropdownList<object>(); 49 | foreach (var kvp in target) 50 | { 51 | result.Add(kvp.Key, kvp.Value); 52 | } 53 | 54 | return result; 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/DropdownAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2cb864a1092cec04f8a4dbb556e8ed31 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/EnumFlagsAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class EnumFlagsAttribute : DrawerAttribute 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/EnumFlagsAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e8b31eb6d7299e54d89dcabc4cad0e6a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/Expandable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class ExpandableAttribute : DrawerAttribute 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/Expandable.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 60926d6ca7f9ced469e9248ff1192da6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/HorizontalLineAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = true, Inherited = true)] 6 | public class HorizontalLineAttribute : DrawerAttribute 7 | { 8 | public const float DefaultHeight = 2.0f; 9 | public const EColor DefaultColor = EColor.Gray; 10 | 11 | public float Height { get; private set; } 12 | public EColor Color { get; private set; } 13 | 14 | public HorizontalLineAttribute(float height = DefaultHeight, EColor color = DefaultColor) 15 | { 16 | Height = height; 17 | Color = color; 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/HorizontalLineAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2fdd6f99acca2fd42a4f3162d585ce95 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/InfoBoxAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | public enum EInfoBoxType 6 | { 7 | Normal, 8 | Warning, 9 | Error 10 | } 11 | 12 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = true, Inherited = true)] 13 | public class InfoBoxAttribute : DrawerAttribute 14 | { 15 | public string Text { get; private set; } 16 | public EInfoBoxType Type { get; private set; } 17 | 18 | public InfoBoxAttribute(string text, EInfoBoxType type = EInfoBoxType.Normal) 19 | { 20 | Text = text; 21 | Type = type; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/InfoBoxAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: afd1d6323740c734893fa8397c53113b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/InputAxisAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class InputAxisAttribute : DrawerAttribute 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/InputAxisAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 85033978c18810f46af271bbe94cf4aa 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/LayerAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class LayerAttribute : DrawerAttribute 7 | { 8 | } 9 | } -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/LayerAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 668d19ebe071176448d1af816a9a0ce0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/MinMaxSliderAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class MinMaxSliderAttribute : DrawerAttribute 7 | { 8 | public float MinValue { get; private set; } 9 | public float MaxValue { get; private set; } 10 | 11 | public MinMaxSliderAttribute(float minValue, float maxValue) 12 | { 13 | MinValue = minValue; 14 | MaxValue = maxValue; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/MinMaxSliderAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4aaa73f574deaa54187cb54aae571b24 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/ProgressBarAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class ProgressBarAttribute : DrawerAttribute 7 | { 8 | public string Name { get; private set; } 9 | public float MaxValue { get; set; } 10 | public string MaxValueName { get; private set; } 11 | public EColor Color { get; private set; } 12 | 13 | public ProgressBarAttribute(string name, float maxValue, EColor color = EColor.Blue) 14 | { 15 | Name = name; 16 | MaxValue = maxValue; 17 | Color = color; 18 | } 19 | 20 | public ProgressBarAttribute(string name, string maxValueName, EColor color = EColor.Blue) 21 | { 22 | Name = name; 23 | MaxValueName = maxValueName; 24 | Color = color; 25 | } 26 | 27 | public ProgressBarAttribute(float maxValue, EColor color = EColor.Blue) 28 | : this("", maxValue, color) 29 | { 30 | } 31 | 32 | public ProgressBarAttribute(string maxValueName, EColor color = EColor.Blue) 33 | : this("", maxValueName, color) 34 | { 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/ProgressBarAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e19e4db6f4d08f849aa8ea8155cd2760 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/ResizableTextAreaAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class ResizableTextAreaAttribute : DrawerAttribute 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/ResizableTextAreaAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 56d9a4b795ef4a94d86b94e55fb81240 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/SceneAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class SceneAttribute : DrawerAttribute 7 | { 8 | } 9 | } -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/SceneAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e054de18423364f4688b72a0f2a472b6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/ShowAssetPreviewAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class ShowAssetPreviewAttribute : DrawerAttribute 7 | { 8 | public const int DefaultWidth = 64; 9 | public const int DefaultHeight = 64; 10 | 11 | public int Width { get; private set; } 12 | public int Height { get; private set; } 13 | 14 | public ShowAssetPreviewAttribute(int width = DefaultWidth, int height = DefaultHeight) 15 | { 16 | Width = width; 17 | Height = height; 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/ShowAssetPreviewAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4b7dd9b44abc0054cb5cd68d74be2c1a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/SortingLayerAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class SortingLayerAttribute : DrawerAttribute 7 | { 8 | } 9 | } -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/SortingLayerAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7564ee02deb3974a85d8617eea098fb 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/TagAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class TagAttribute : DrawerAttribute 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes/TagAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8903399bbd7c9d745a7b9188ab6c8320 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes_SpecialCase.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5cf879ed72221e740a7aa02ef9c366a7 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes_SpecialCase/ButtonAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | public enum EButtonEnableMode 6 | { 7 | /// <summary> 8 | /// Button should be active always 9 | /// </summary> 10 | Always, 11 | /// <summary> 12 | /// Button should be active only in editor 13 | /// </summary> 14 | Editor, 15 | /// <summary> 16 | /// Button should be active only in playmode 17 | /// </summary> 18 | Playmode 19 | } 20 | 21 | [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)] 22 | public class ButtonAttribute : SpecialCaseDrawerAttribute 23 | { 24 | public string Text { get; private set; } 25 | public EButtonEnableMode SelectedEnableMode { get; private set; } 26 | 27 | public ButtonAttribute(string text = null, EButtonEnableMode enabledMode = EButtonEnableMode.Always) 28 | { 29 | this.Text = text; 30 | this.SelectedEnableMode = enabledMode; 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes_SpecialCase/ButtonAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e8fe363a25ec5e24a9dd510bb0b4a0d4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes_SpecialCase/ReorderableListAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class ReorderableListAttribute : SpecialCaseDrawerAttribute 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes_SpecialCase/ReorderableListAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6189b48f4055e6c47aa132632d898fa6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes_SpecialCase/ShowNativePropertyAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)] 6 | public class ShowNativePropertyAttribute : SpecialCaseDrawerAttribute 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes_SpecialCase/ShowNativePropertyAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a8e9b7b71c94a1f459336a24cfe04b1b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes_SpecialCase/ShowNonSerializedFieldAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class ShowNonSerializedFieldAttribute : SpecialCaseDrawerAttribute 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes_SpecialCase/ShowNonSerializedFieldAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8ea09f60df536734184a8920ff8bda6f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes_SpecialCase/SpecialCaseDrawerAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | public class SpecialCaseDrawerAttribute : Attribute, INaughtyAttribute 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/DrawerAttributes_SpecialCase/SpecialCaseDrawerAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 95a59093f8ed1af48a8be75fa3050a3c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/INaughtyAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | public interface INaughtyAttribute 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/INaughtyAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: edda855906d15e541b46efd812fd70f3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 64c95d02a2004854585e8d923d6680d0 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/BoxGroupAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class BoxGroupAttribute : MetaAttribute, IGroupAttribute 7 | { 8 | public string Name { get; private set; } 9 | 10 | public BoxGroupAttribute(string name = "") 11 | { 12 | Name = name; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/BoxGroupAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 07da8af1e3be52c4789678bf4138ae11 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/DisableIfAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Method, AllowMultiple = false, Inherited = true)] 6 | public class DisableIfAttribute : EnableIfAttributeBase 7 | { 8 | public DisableIfAttribute(string condition) 9 | : base(condition) 10 | { 11 | Inverted = true; 12 | } 13 | 14 | public DisableIfAttribute(EConditionOperator conditionOperator, params string[] conditions) 15 | : base(conditionOperator, conditions) 16 | { 17 | Inverted = true; 18 | } 19 | 20 | public DisableIfAttribute(string enumName, object enumValue) 21 | : base(enumName, enumValue as Enum) 22 | { 23 | Inverted = true; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/DisableIfAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 52a0d5c249ac8fd42a4fb4d61bc2f797 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/EnableIfAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Method, AllowMultiple = false, Inherited = true)] 6 | public class EnableIfAttribute : EnableIfAttributeBase 7 | { 8 | public EnableIfAttribute(string condition) 9 | : base(condition) 10 | { 11 | Inverted = false; 12 | } 13 | 14 | public EnableIfAttribute(EConditionOperator conditionOperator, params string[] conditions) 15 | : base(conditionOperator, conditions) 16 | { 17 | Inverted = false; 18 | } 19 | 20 | public EnableIfAttribute(string enumName, object enumValue) 21 | : base(enumName, enumValue as Enum) 22 | { 23 | Inverted = false; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/EnableIfAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a616ae826c8ebae45a89d6a8cb68a843 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/EnableIfAttributeBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | public abstract class EnableIfAttributeBase : MetaAttribute 6 | { 7 | public string[] Conditions { get; private set; } 8 | public EConditionOperator ConditionOperator { get; private set; } 9 | public bool Inverted { get; protected set; } 10 | 11 | /// <summary> 12 | /// If this not null, <see cref="Conditions"/>[0] is name of an enum variable. 13 | /// </summary> 14 | public Enum EnumValue { get; private set; } 15 | 16 | public EnableIfAttributeBase(string condition) 17 | { 18 | ConditionOperator = EConditionOperator.And; 19 | Conditions = new string[1] { condition }; 20 | } 21 | 22 | public EnableIfAttributeBase(EConditionOperator conditionOperator, params string[] conditions) 23 | { 24 | ConditionOperator = conditionOperator; 25 | Conditions = conditions; 26 | } 27 | 28 | public EnableIfAttributeBase(string enumName, Enum enumValue) 29 | : this(enumName) 30 | { 31 | if (enumValue == null) 32 | { 33 | throw new ArgumentNullException(nameof(enumValue), "This parameter must be an enum value."); 34 | } 35 | 36 | EnumValue = enumValue; 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/EnableIfAttributeBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8ba6385cd022e164b89ead1937173ddc 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/FoldoutAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class FoldoutAttribute : MetaAttribute, IGroupAttribute 7 | { 8 | public string Name { get; private set; } 9 | 10 | public FoldoutAttribute(string name) 11 | { 12 | Name = name; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/FoldoutAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 95f184555d5079243b2d25b35a641a74 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/HideIfAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Method, AllowMultiple = false, Inherited = true)] 6 | public class HideIfAttribute : ShowIfAttributeBase 7 | { 8 | public HideIfAttribute(string condition) 9 | : base(condition) 10 | { 11 | Inverted = true; 12 | } 13 | 14 | public HideIfAttribute(EConditionOperator conditionOperator, params string[] conditions) 15 | : base(conditionOperator, conditions) 16 | { 17 | Inverted = true; 18 | } 19 | 20 | public HideIfAttribute(string enumName, object enumValue) 21 | : base(enumName, enumValue as Enum) 22 | { 23 | Inverted = true; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/HideIfAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9ab2d0fcfb13a214ea6ef7629c96a761 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/IGroupAttribute.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | public interface IGroupAttribute 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/IGroupAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7c437b9ac50575347a7b12520f37f9a2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/LabelAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class LabelAttribute : MetaAttribute 7 | { 8 | public string Label { get; private set; } 9 | 10 | public LabelAttribute(string label) 11 | { 12 | Label = label; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/LabelAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 79e0e0c0a7c25ea4fbe8eecaa4d559a0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/MetaAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | public class MetaAttribute : Attribute, INaughtyAttribute 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/MetaAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a482b4e0fbf0f4547a5d522182a68d24 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/OnValueChangedAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = true, Inherited = true)] 6 | public class OnValueChangedAttribute : MetaAttribute 7 | { 8 | public string CallbackName { get; private set; } 9 | 10 | public OnValueChangedAttribute(string callbackName) 11 | { 12 | CallbackName = callbackName; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/OnValueChangedAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e16a27c5576022b4bbe997c7db9051f0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/ReadOnlyAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class ReadOnlyAttribute : MetaAttribute 7 | { 8 | 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/ReadOnlyAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e57264747ba93b94fbff12733de29499 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/ShowIfAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Method, AllowMultiple = false, Inherited = true)] 6 | public class ShowIfAttribute : ShowIfAttributeBase 7 | { 8 | public ShowIfAttribute(string condition) 9 | : base(condition) 10 | { 11 | Inverted = false; 12 | } 13 | 14 | public ShowIfAttribute(EConditionOperator conditionOperator, params string[] conditions) 15 | : base(conditionOperator, conditions) 16 | { 17 | Inverted = false; 18 | } 19 | 20 | public ShowIfAttribute(string enumName, object enumValue) 21 | : base(enumName, enumValue as Enum) 22 | { 23 | Inverted = false; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/ShowIfAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1ada427cfd2c9b04989d6d18dea27985 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/ShowIfAttributeBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | public class ShowIfAttributeBase : MetaAttribute 6 | { 7 | public string[] Conditions { get; private set; } 8 | public EConditionOperator ConditionOperator { get; private set; } 9 | public bool Inverted { get; protected set; } 10 | 11 | /// <summary> 12 | /// If this not null, <see cref="Conditions"/>[0] is name of an enum variable. 13 | /// </summary> 14 | public Enum EnumValue { get; private set; } 15 | 16 | public ShowIfAttributeBase(string condition) 17 | { 18 | ConditionOperator = EConditionOperator.And; 19 | Conditions = new string[1] { condition }; 20 | } 21 | 22 | public ShowIfAttributeBase(EConditionOperator conditionOperator, params string[] conditions) 23 | { 24 | ConditionOperator = conditionOperator; 25 | Conditions = conditions; 26 | } 27 | 28 | public ShowIfAttributeBase(string enumName, Enum enumValue) 29 | : this(enumName) 30 | { 31 | if (enumValue == null) 32 | { 33 | throw new ArgumentNullException(nameof(enumValue), "This parameter must be an enum value."); 34 | } 35 | 36 | EnumValue = enumValue; 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/MetaAttributes/ShowIfAttributeBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0532b1c4d8a9ccf4b9f98f0bbe4a6747 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/NaughtyAttributes.Core.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "NaughtyAttributes.Core", 3 | "references": [], 4 | "includePlatforms": [], 5 | "excludePlatforms": [], 6 | "allowUnsafeCode": false, 7 | "overrideReferences": false, 8 | "precompiledReferences": [], 9 | "autoReferenced": true, 10 | "defineConstraints": [], 11 | "versionDefines": [] 12 | } -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/NaughtyAttributes.Core.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 776d03a35f1b52c4a9aed9f56d7b4229 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/Utility.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6d61a3a977073c740ae13a3683ed22a1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/Utility/EColor.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | public enum EColor 6 | { 7 | Clear, 8 | White, 9 | Black, 10 | Gray, 11 | Red, 12 | Pink, 13 | Orange, 14 | Yellow, 15 | Green, 16 | Blue, 17 | Indigo, 18 | Violet 19 | } 20 | 21 | public static class EColorExtensions 22 | { 23 | public static Color GetColor(this EColor color) 24 | { 25 | switch (color) 26 | { 27 | case EColor.Clear: 28 | return new Color32(0, 0, 0, 0); 29 | case EColor.White: 30 | return new Color32(255, 255, 255, 255); 31 | case EColor.Black: 32 | return new Color32(0, 0, 0, 255); 33 | case EColor.Gray: 34 | return new Color32(128, 128, 128, 255); 35 | case EColor.Red: 36 | return new Color32(255, 0, 63, 255); 37 | case EColor.Pink: 38 | return new Color32(255, 152, 203, 255); 39 | case EColor.Orange: 40 | return new Color32(255, 128, 0, 255); 41 | case EColor.Yellow: 42 | return new Color32(255, 211, 0, 255); 43 | case EColor.Green: 44 | return new Color32(98, 200, 79, 255); 45 | case EColor.Blue: 46 | return new Color32(0, 135, 189, 255); 47 | case EColor.Indigo: 48 | return new Color32(75, 0, 130, 255); 49 | case EColor.Violet: 50 | return new Color32(128, 0, 255, 255); 51 | default: 52 | return new Color32(0, 0, 0, 255); 53 | } 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/Utility/EColor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 059f8674a8065924ea9c678298b5cd63 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/Utility/EConditionOperator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | public enum EConditionOperator 6 | { 7 | And, 8 | Or 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/Utility/EConditionOperator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3c227b6c19fc67b46ad294d95818f85a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/ValidatorAttributes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bf91d63e37bed3e4cbf75d576fc03a21 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/ValidatorAttributes/MaxValueAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class MaxValueAttribute : ValidatorAttribute 7 | { 8 | public float MaxValue { get; private set; } 9 | 10 | public MaxValueAttribute(float maxValue) 11 | { 12 | MaxValue = maxValue; 13 | } 14 | 15 | public MaxValueAttribute(int maxValue) 16 | { 17 | MaxValue = maxValue; 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/ValidatorAttributes/MaxValueAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a748250af5ccfd7499cfb444aafb8a03 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/ValidatorAttributes/MinValueAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class MinValueAttribute : ValidatorAttribute 7 | { 8 | public float MinValue { get; private set; } 9 | 10 | public MinValueAttribute(float minValue) 11 | { 12 | MinValue = minValue; 13 | } 14 | 15 | public MinValueAttribute(int minValue) 16 | { 17 | MinValue = minValue; 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/ValidatorAttributes/MinValueAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 40133bac7c8d42b4d837138430a503e0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/ValidatorAttributes/RequiredAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class RequiredAttribute : ValidatorAttribute 7 | { 8 | public string Message { get; private set; } 9 | 10 | public RequiredAttribute(string message = null) 11 | { 12 | Message = message; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/ValidatorAttributes/RequiredAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b0cdf49d1687849458b1a8d4786553d4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/ValidatorAttributes/ValidateInputAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] 6 | public class ValidateInputAttribute : ValidatorAttribute 7 | { 8 | public string CallbackName { get; private set; } 9 | public string Message { get; private set; } 10 | 11 | public ValidateInputAttribute(string callbackName, string message = null) 12 | { 13 | CallbackName = callbackName; 14 | Message = message; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/ValidatorAttributes/ValidateInputAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6c4171d68fb5bc0448d3ac298973e82c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/ValidatorAttributes/ValidatorAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NaughtyAttributes 4 | { 5 | public class ValidatorAttribute : Attribute, INaughtyAttribute 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Core/ValidatorAttributes/ValidatorAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0f3c43bed2dbc5249b6c6ec7859c2020 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b76068e69df25a94ab378b0b6829c4f0 3 | folderAsset: yes 4 | timeCreated: 1507995613 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/DecoratorDrawers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d3041a2296f3b1749b3ef18e695adee4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/DecoratorDrawers/HorizontalLineDecoratorDrawer.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | 4 | namespace NaughtyAttributes.Editor 5 | { 6 | [CustomPropertyDrawer(typeof(HorizontalLineAttribute))] 7 | public class HorizontalLineDecoratorDrawer : DecoratorDrawer 8 | { 9 | public override float GetHeight() 10 | { 11 | HorizontalLineAttribute lineAttr = (HorizontalLineAttribute)attribute; 12 | return EditorGUIUtility.singleLineHeight + lineAttr.Height; 13 | } 14 | 15 | public override void OnGUI(Rect position) 16 | { 17 | Rect rect = EditorGUI.IndentedRect(position); 18 | rect.y += EditorGUIUtility.singleLineHeight / 3.0f; 19 | HorizontalLineAttribute lineAttr = (HorizontalLineAttribute)attribute; 20 | NaughtyEditorGUI.HorizontalLine(rect, lineAttr.Height, lineAttr.Color.GetColor()); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/DecoratorDrawers/HorizontalLineDecoratorDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ec99f3a124f20e40b8f5edfeb1ecced 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/DecoratorDrawers/InfoBoxDecoratorDrawer.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | 4 | namespace NaughtyAttributes.Editor 5 | { 6 | [CustomPropertyDrawer(typeof(InfoBoxAttribute))] 7 | public class InfoBoxDecoratorDrawer : DecoratorDrawer 8 | { 9 | public override float GetHeight() 10 | { 11 | return GetHelpBoxHeight(); 12 | } 13 | 14 | public override void OnGUI(Rect rect) 15 | { 16 | InfoBoxAttribute infoBoxAttribute = (InfoBoxAttribute)attribute; 17 | 18 | float indentLength = NaughtyEditorGUI.GetIndentLength(rect); 19 | Rect infoBoxRect = new Rect( 20 | rect.x + indentLength, 21 | rect.y, 22 | rect.width - indentLength, 23 | GetHelpBoxHeight()); 24 | 25 | DrawInfoBox(infoBoxRect, infoBoxAttribute.Text, infoBoxAttribute.Type); 26 | } 27 | 28 | private float GetHelpBoxHeight() 29 | { 30 | InfoBoxAttribute infoBoxAttribute = (InfoBoxAttribute)attribute; 31 | float minHeight = EditorGUIUtility.singleLineHeight * 2.0f; 32 | float desiredHeight = GUI.skin.box.CalcHeight(new GUIContent(infoBoxAttribute.Text), EditorGUIUtility.currentViewWidth); 33 | float height = Mathf.Max(minHeight, desiredHeight); 34 | 35 | return height; 36 | } 37 | 38 | private void DrawInfoBox(Rect rect, string infoText, EInfoBoxType infoBoxType) 39 | { 40 | MessageType messageType = MessageType.None; 41 | switch (infoBoxType) 42 | { 43 | case EInfoBoxType.Normal: 44 | messageType = MessageType.Info; 45 | break; 46 | 47 | case EInfoBoxType.Warning: 48 | messageType = MessageType.Warning; 49 | break; 50 | 51 | case EInfoBoxType.Error: 52 | messageType = MessageType.Error; 53 | break; 54 | } 55 | 56 | NaughtyEditorGUI.HelpBox(rect, infoText, messageType); 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/DecoratorDrawers/InfoBoxDecoratorDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9c18b0e698717442b7631c5066d667f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/NaughtyAttributes.Editor.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "NaughtyAttributes.Editor", 3 | "references": [ 4 | "NaughtyAttributes.Core" 5 | ], 6 | "optionalUnityReferences": [], 7 | "includePlatforms": [ 8 | "Editor" 9 | ], 10 | "excludePlatforms": [], 11 | "allowUnsafeCode": false, 12 | "overrideReferences": false, 13 | "precompiledReferences": [], 14 | "autoReferenced": true, 15 | "defineConstraints": [] 16 | } -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/NaughtyAttributes.Editor.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f88fb04354076c646a4107a491394033 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/NaughtyInspector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b9b53879f7c93b42835c3ad9e0d0a66 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4327d74fca5deaa4c83c483fe468d274 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/AllowNestingPropertyDrawer.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | 4 | namespace NaughtyAttributes.Editor 5 | { 6 | [CustomPropertyDrawer(typeof(AllowNestingAttribute))] 7 | public class AllowNestingPropertyDrawer : PropertyDrawerBase 8 | { 9 | protected override void OnGUI_Internal(Rect rect, SerializedProperty property, GUIContent label) 10 | { 11 | EditorGUI.BeginProperty(rect, label, property); 12 | EditorGUI.PropertyField(rect, property, label, true); 13 | EditorGUI.EndProperty(); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/AllowNestingPropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a3175e7041b8f4348bd652485a78e7b1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/AnimatorParamPropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 98ff8cb1bcefae740a68d9a5c5ee3563 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/CurveRangePropertyDrawer.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | 4 | namespace NaughtyAttributes.Editor 5 | { 6 | [CustomPropertyDrawer(typeof(CurveRangeAttribute))] 7 | public class CurveRangePropertyDrawer : PropertyDrawerBase 8 | { 9 | protected override float GetPropertyHeight_Internal(SerializedProperty property, GUIContent label) 10 | { 11 | float propertyHeight = property.propertyType == SerializedPropertyType.AnimationCurve 12 | ? GetPropertyHeight(property) 13 | : GetPropertyHeight(property) + GetHelpBoxHeight(); 14 | 15 | return propertyHeight; 16 | } 17 | 18 | protected override void OnGUI_Internal(Rect rect, SerializedProperty property, GUIContent label) 19 | { 20 | EditorGUI.BeginProperty(rect, label, property); 21 | 22 | // Check user error 23 | if (property.propertyType != SerializedPropertyType.AnimationCurve) 24 | { 25 | string message = string.Format("Field {0} is not an AnimationCurve", property.name); 26 | DrawDefaultPropertyAndHelpBox(rect, property, message, MessageType.Warning); 27 | return; 28 | } 29 | 30 | var curveRangeAttribute = (CurveRangeAttribute)attribute; 31 | var curveRanges = new Rect( 32 | curveRangeAttribute.Min.x, 33 | curveRangeAttribute.Min.y, 34 | curveRangeAttribute.Max.x - curveRangeAttribute.Min.x, 35 | curveRangeAttribute.Max.y - curveRangeAttribute.Min.y); 36 | 37 | EditorGUI.CurveField( 38 | rect, 39 | property, 40 | curveRangeAttribute.Color == EColor.Clear ? Color.green : curveRangeAttribute.Color.GetColor(), 41 | curveRanges, 42 | label); 43 | 44 | EditorGUI.EndProperty(); 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/CurveRangePropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 798b8c99fbc072a4b83ee387e472a2bd 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/DropdownPropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd080b36769bcd94d909fc0431cf25e0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/EnumFlagsPropertyDrawer.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | using System; 4 | 5 | namespace NaughtyAttributes.Editor 6 | { 7 | [CustomPropertyDrawer(typeof(EnumFlagsAttribute))] 8 | public class EnumFlagsPropertyDrawer : PropertyDrawerBase 9 | { 10 | protected override float GetPropertyHeight_Internal(SerializedProperty property, GUIContent label) 11 | { 12 | Enum targetEnum = PropertyUtility.GetTargetObjectOfProperty(property) as Enum; 13 | 14 | return (targetEnum != null) 15 | ? GetPropertyHeight(property) 16 | : GetPropertyHeight(property) + GetHelpBoxHeight(); 17 | } 18 | 19 | protected override void OnGUI_Internal(Rect rect, SerializedProperty property, GUIContent label) 20 | { 21 | EditorGUI.BeginProperty(rect, label, property); 22 | 23 | Enum targetEnum = PropertyUtility.GetTargetObjectOfProperty(property) as Enum; 24 | if (targetEnum != null) 25 | { 26 | Enum enumNew = EditorGUI.EnumFlagsField(rect, label.text, targetEnum); 27 | property.intValue = (int)Convert.ChangeType(enumNew, targetEnum.GetType()); 28 | } 29 | else 30 | { 31 | string message = attribute.GetType().Name + " can be used only on enums"; 32 | DrawDefaultPropertyAndHelpBox(rect, property, message, MessageType.Warning); 33 | } 34 | 35 | EditorGUI.EndProperty(); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/EnumFlagsPropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b750e1461c1126d4399459b90b31e75e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/ExpandablePropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d1ddb7194615bdc4e8b2088c8d165d8b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/InputAxisPropertyDrawer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.IO; 3 | using System.Linq; 4 | using UnityEditor; 5 | using UnityEngine; 6 | 7 | namespace NaughtyAttributes.Editor 8 | { 9 | [CustomPropertyDrawer(typeof(InputAxisAttribute))] 10 | public class InputAxisPropertyDrawer : PropertyDrawerBase 11 | { 12 | private static readonly string AssetPath = Path.Combine("ProjectSettings", "InputManager.asset"); 13 | private const string AxesPropertyPath = "m_Axes"; 14 | private const string NamePropertyPath = "m_Name"; 15 | 16 | protected override float GetPropertyHeight_Internal(SerializedProperty property, GUIContent label) 17 | { 18 | return (property.propertyType == SerializedPropertyType.String) 19 | ? GetPropertyHeight(property) 20 | : GetPropertyHeight(property) + GetHelpBoxHeight(); 21 | } 22 | 23 | protected override void OnGUI_Internal(Rect rect, SerializedProperty property, GUIContent label) 24 | { 25 | EditorGUI.BeginProperty(rect, label, property); 26 | 27 | if (property.propertyType == SerializedPropertyType.String) 28 | { 29 | var inputManagerAsset = AssetDatabase.LoadAssetAtPath(AssetPath, typeof(object)); 30 | var inputManager = new SerializedObject(inputManagerAsset); 31 | 32 | var axesProperty = inputManager.FindProperty(AxesPropertyPath); 33 | var axesSet = new HashSet<string>(); 34 | axesSet.Add("(None)"); 35 | 36 | for (var i = 0; i < axesProperty.arraySize; i++) 37 | { 38 | var axis = axesProperty.GetArrayElementAtIndex(i).FindPropertyRelative(NamePropertyPath).stringValue; 39 | axesSet.Add(axis); 40 | } 41 | 42 | var axes = axesSet.ToArray(); 43 | 44 | string propertyString = property.stringValue; 45 | int index = 0; 46 | // check if there is an entry that matches the entry and get the index 47 | // we skip index 0 as that is a special custom case 48 | for (int i = 1; i < axes.Length; i++) 49 | { 50 | if (axes[i].Equals(propertyString, System.StringComparison.Ordinal)) 51 | { 52 | index = i; 53 | break; 54 | } 55 | } 56 | 57 | // Draw the popup box with the current selected index 58 | int newIndex = EditorGUI.Popup(rect, label.text, index, axes); 59 | 60 | // Adjust the actual string value of the property based on the selection 61 | string newValue = newIndex > 0 ? axes[newIndex] : string.Empty; 62 | 63 | if (!property.stringValue.Equals(newValue, System.StringComparison.Ordinal)) 64 | { 65 | property.stringValue = newValue; 66 | } 67 | } 68 | else 69 | { 70 | string message = string.Format("{0} supports only string fields", typeof(InputAxisAttribute).Name); 71 | DrawDefaultPropertyAndHelpBox(rect, property, message, MessageType.Warning); 72 | } 73 | 74 | EditorGUI.EndProperty(); 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/InputAxisPropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0de9d3dfe2d466a458be838edf361645 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/LayerPropertyDrawer.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | using System; 4 | 5 | namespace NaughtyAttributes.Editor 6 | { 7 | [CustomPropertyDrawer(typeof(LayerAttribute))] 8 | public class LayerPropertyDrawer : PropertyDrawerBase 9 | { 10 | private const string TypeWarningMessage = "{0} must be an int or a string"; 11 | 12 | protected override float GetPropertyHeight_Internal(SerializedProperty property, GUIContent label) 13 | { 14 | bool validPropertyType = property.propertyType == SerializedPropertyType.String || property.propertyType == SerializedPropertyType.Integer; 15 | 16 | return validPropertyType 17 | ? GetPropertyHeight(property) 18 | : GetPropertyHeight(property) + GetHelpBoxHeight(); 19 | } 20 | 21 | protected override void OnGUI_Internal(Rect rect, SerializedProperty property, GUIContent label) 22 | { 23 | EditorGUI.BeginProperty(rect, label, property); 24 | 25 | switch (property.propertyType) 26 | { 27 | case SerializedPropertyType.String: 28 | DrawPropertyForString(rect, property, label, GetLayers()); 29 | break; 30 | case SerializedPropertyType.Integer: 31 | DrawPropertyForInt(rect, property, label, GetLayers()); 32 | break; 33 | default: 34 | string message = string.Format(TypeWarningMessage, property.name); 35 | DrawDefaultPropertyAndHelpBox(rect, property, message, MessageType.Warning); 36 | break; 37 | } 38 | 39 | EditorGUI.EndProperty(); 40 | } 41 | 42 | private string[] GetLayers() 43 | { 44 | return UnityEditorInternal.InternalEditorUtility.layers; 45 | } 46 | 47 | private static void DrawPropertyForString(Rect rect, SerializedProperty property, GUIContent label, string[] layers) 48 | { 49 | int index = IndexOf(layers, property.stringValue); 50 | int newIndex = EditorGUI.Popup(rect, label.text, index, layers); 51 | string newLayer = layers[newIndex]; 52 | 53 | if (!property.stringValue.Equals(newLayer, StringComparison.Ordinal)) 54 | { 55 | property.stringValue = layers[newIndex]; 56 | } 57 | } 58 | 59 | private static void DrawPropertyForInt(Rect rect, SerializedProperty property, GUIContent label, string[] layers) 60 | { 61 | int index = 0; 62 | string layerName = LayerMask.LayerToName(property.intValue); 63 | for (int i = 0; i < layers.Length; i++) 64 | { 65 | if (layerName.Equals(layers[i], StringComparison.Ordinal)) 66 | { 67 | index = i; 68 | break; 69 | } 70 | } 71 | 72 | int newIndex = EditorGUI.Popup(rect, label.text, index, layers); 73 | string newLayerName = layers[newIndex]; 74 | int newLayerNumber = LayerMask.NameToLayer(newLayerName); 75 | 76 | if (property.intValue != newLayerNumber) 77 | { 78 | property.intValue = newLayerNumber; 79 | } 80 | } 81 | 82 | private static int IndexOf(string[] layers, string layer) 83 | { 84 | var index = Array.IndexOf(layers, layer); 85 | return Mathf.Clamp(index, 0, layers.Length - 1); 86 | } 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/LayerPropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7278ba0893ab7d940b5f944e5b1cf1a7 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/MinMaxSliderPropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 27011af81554b5b4489b155f09275475 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/ProgressBarPropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0bcbc424b10864b4eb6e3bcfb276cdf9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/PropertyDrawerBase.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | 4 | namespace NaughtyAttributes.Editor 5 | { 6 | public abstract class PropertyDrawerBase : PropertyDrawer 7 | { 8 | public sealed override void OnGUI(Rect rect, SerializedProperty property, GUIContent label) 9 | { 10 | // Check if visible 11 | bool visible = PropertyUtility.IsVisible(property); 12 | if (!visible) 13 | { 14 | return; 15 | } 16 | 17 | // Validate 18 | ValidatorAttribute[] validatorAttributes = PropertyUtility.GetAttributes<ValidatorAttribute>(property); 19 | foreach (var validatorAttribute in validatorAttributes) 20 | { 21 | validatorAttribute.GetValidator().ValidateProperty(property); 22 | } 23 | 24 | // Check if enabled and draw 25 | EditorGUI.BeginChangeCheck(); 26 | bool enabled = PropertyUtility.IsEnabled(property); 27 | 28 | using (new EditorGUI.DisabledScope(disabled: !enabled)) 29 | { 30 | OnGUI_Internal(rect, property, PropertyUtility.GetLabel(property)); 31 | } 32 | 33 | // Call OnValueChanged callbacks 34 | if (EditorGUI.EndChangeCheck()) 35 | { 36 | PropertyUtility.CallOnValueChangedCallbacks(property); 37 | } 38 | } 39 | 40 | protected abstract void OnGUI_Internal(Rect rect, SerializedProperty property, GUIContent label); 41 | 42 | sealed override public float GetPropertyHeight(SerializedProperty property, GUIContent label) 43 | { 44 | bool visible = PropertyUtility.IsVisible(property); 45 | if (!visible) 46 | { 47 | return 0.0f; 48 | } 49 | 50 | return GetPropertyHeight_Internal(property, label); 51 | } 52 | 53 | protected virtual float GetPropertyHeight_Internal(SerializedProperty property, GUIContent label) 54 | { 55 | return EditorGUI.GetPropertyHeight(property, includeChildren: true); 56 | } 57 | 58 | protected float GetPropertyHeight(SerializedProperty property) 59 | { 60 | SpecialCaseDrawerAttribute specialCaseAttribute = PropertyUtility.GetAttribute<SpecialCaseDrawerAttribute>(property); 61 | if (specialCaseAttribute != null) 62 | { 63 | return specialCaseAttribute.GetDrawer().GetPropertyHeight(property); 64 | } 65 | 66 | return EditorGUI.GetPropertyHeight(property, includeChildren: true); 67 | } 68 | 69 | public virtual float GetHelpBoxHeight() 70 | { 71 | return EditorGUIUtility.singleLineHeight * 2.0f; 72 | } 73 | 74 | public void DrawDefaultPropertyAndHelpBox(Rect rect, SerializedProperty property, string message, MessageType messageType) 75 | { 76 | float indentLength = NaughtyEditorGUI.GetIndentLength(rect); 77 | Rect helpBoxRect = new Rect( 78 | rect.x + indentLength, 79 | rect.y, 80 | rect.width - indentLength, 81 | GetHelpBoxHeight()); 82 | 83 | NaughtyEditorGUI.HelpBox(helpBoxRect, message, MessageType.Warning, context: property.serializedObject.targetObject); 84 | 85 | Rect propertyRect = new Rect( 86 | rect.x, 87 | rect.y + GetHelpBoxHeight(), 88 | rect.width, 89 | GetPropertyHeight(property)); 90 | 91 | EditorGUI.PropertyField(propertyRect, property, true); 92 | } 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/PropertyDrawerBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 574f5fa6033f26342816a8a5f39749e5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/ResizableTextAreaPropertyDrawer.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | using System.Text.RegularExpressions; 4 | using System; 5 | 6 | namespace NaughtyAttributes.Editor 7 | { 8 | [CustomPropertyDrawer(typeof(ResizableTextAreaAttribute))] 9 | public class ResizableTextAreaPropertyDrawer : PropertyDrawerBase 10 | { 11 | protected override float GetPropertyHeight_Internal(SerializedProperty property, GUIContent label) 12 | { 13 | if (property.propertyType == SerializedPropertyType.String) 14 | { 15 | float labelHeight = EditorGUIUtility.singleLineHeight; 16 | float textAreaHeight = GetTextAreaHeight(property.stringValue); 17 | return labelHeight + textAreaHeight; 18 | } 19 | else 20 | { 21 | return GetPropertyHeight(property) + GetHelpBoxHeight(); 22 | } 23 | } 24 | 25 | protected override void OnGUI_Internal(Rect rect, SerializedProperty property, GUIContent label) 26 | { 27 | EditorGUI.BeginProperty(rect, label, property); 28 | 29 | if (property.propertyType == SerializedPropertyType.String) 30 | { 31 | Rect labelRect = new Rect() 32 | { 33 | x = rect.x, 34 | y = rect.y, 35 | width = rect.width, 36 | height = EditorGUIUtility.singleLineHeight 37 | }; 38 | 39 | EditorGUI.LabelField(labelRect, label.text); 40 | 41 | EditorGUI.BeginChangeCheck(); 42 | 43 | Rect textAreaRect = new Rect() 44 | { 45 | x = labelRect.x, 46 | y = labelRect.y + EditorGUIUtility.singleLineHeight, 47 | width = labelRect.width, 48 | height = GetTextAreaHeight(property.stringValue) 49 | }; 50 | 51 | string textAreaValue = EditorGUI.TextArea(textAreaRect, property.stringValue); 52 | 53 | if (EditorGUI.EndChangeCheck()) 54 | { 55 | property.stringValue = textAreaValue; 56 | } 57 | } 58 | else 59 | { 60 | string message = typeof(ResizableTextAreaAttribute).Name + " can only be used on string fields"; 61 | DrawDefaultPropertyAndHelpBox(rect, property, message, MessageType.Warning); 62 | } 63 | 64 | EditorGUI.EndProperty(); 65 | } 66 | 67 | private int GetNumberOfLines(string text) 68 | { 69 | string content = Regex.Replace(text, @"\r\n|\n\r|\r|\n", Environment.NewLine); 70 | string[] lines = content.Split(new string[] { Environment.NewLine }, StringSplitOptions.None); 71 | return lines.Length; 72 | } 73 | 74 | private float GetTextAreaHeight(string text) 75 | { 76 | float height = (EditorGUIUtility.singleLineHeight - 3.0f) * GetNumberOfLines(text) + 3.0f; 77 | return height; 78 | } 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/ResizableTextAreaPropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6e27ffd9a96b58c46bb74cc93de3e06f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/ScenePropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7f5ed440d4f429e42a5da7bc5df48fd8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/ShowAssetPreviewPropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 24dee3fc91cfe94438de1e3c158f187f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/SortingLayerPropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b0ed20ed34d732246a98cde96351fccb 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/TagPropertyDrawer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEditor; 3 | using UnityEngine; 4 | 5 | namespace NaughtyAttributes.Editor 6 | { 7 | [CustomPropertyDrawer(typeof(TagAttribute))] 8 | public class TagPropertyDrawer : PropertyDrawerBase 9 | { 10 | protected override float GetPropertyHeight_Internal(SerializedProperty property, GUIContent label) 11 | { 12 | return (property.propertyType == SerializedPropertyType.String) 13 | ? GetPropertyHeight(property) 14 | : GetPropertyHeight(property) + GetHelpBoxHeight(); 15 | } 16 | 17 | protected override void OnGUI_Internal(Rect rect, SerializedProperty property, GUIContent label) 18 | { 19 | EditorGUI.BeginProperty(rect, label, property); 20 | 21 | if (property.propertyType == SerializedPropertyType.String) 22 | { 23 | // generate the taglist + custom tags 24 | List<string> tagList = new List<string>(); 25 | tagList.Add("(None)"); 26 | tagList.Add("Untagged"); 27 | tagList.AddRange(UnityEditorInternal.InternalEditorUtility.tags); 28 | 29 | string propertyString = property.stringValue; 30 | int index = 0; 31 | // check if there is an entry that matches the entry and get the index 32 | // we skip index 0 as that is a special custom case 33 | for (int i = 1; i < tagList.Count; i++) 34 | { 35 | if (tagList[i].Equals(propertyString, System.StringComparison.Ordinal)) 36 | { 37 | index = i; 38 | break; 39 | } 40 | } 41 | 42 | // Draw the popup box with the current selected index 43 | int newIndex = EditorGUI.Popup(rect, label.text, index, tagList.ToArray()); 44 | 45 | // Adjust the actual string value of the property based on the selection 46 | string newValue = newIndex > 0 ? tagList[newIndex] : string.Empty; 47 | 48 | if (!property.stringValue.Equals(newValue, System.StringComparison.Ordinal)) 49 | { 50 | property.stringValue = newValue; 51 | } 52 | } 53 | else 54 | { 55 | string message = string.Format("{0} supports only string fields", typeof(TagAttribute).Name); 56 | DrawDefaultPropertyAndHelpBox(rect, property, message, MessageType.Warning); 57 | } 58 | 59 | EditorGUI.EndProperty(); 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers/TagPropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3df4c068c970ab6498df7a60efbde311 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers_SpecialCase.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 750a102004a7e4f46a2046a3d74cae19 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers_SpecialCase/ReorderableListPropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bf36691a6d456564db2fcbfa8726b3f3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers_SpecialCase/SpecialCasePropertyDrawerBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using UnityEditor; 4 | using UnityEngine; 5 | 6 | namespace NaughtyAttributes.Editor 7 | { 8 | public abstract class SpecialCasePropertyDrawerBase 9 | { 10 | public void OnGUI(Rect rect, SerializedProperty property) 11 | { 12 | // Check if visible 13 | bool visible = PropertyUtility.IsVisible(property); 14 | if (!visible) 15 | { 16 | return; 17 | } 18 | 19 | // Validate 20 | ValidatorAttribute[] validatorAttributes = PropertyUtility.GetAttributes<ValidatorAttribute>(property); 21 | foreach (var validatorAttribute in validatorAttributes) 22 | { 23 | validatorAttribute.GetValidator().ValidateProperty(property); 24 | } 25 | 26 | // Check if enabled and draw 27 | EditorGUI.BeginChangeCheck(); 28 | bool enabled = PropertyUtility.IsEnabled(property); 29 | 30 | using (new EditorGUI.DisabledScope(disabled: !enabled)) 31 | { 32 | OnGUI_Internal(rect, property, PropertyUtility.GetLabel(property)); 33 | } 34 | 35 | // Call OnValueChanged callbacks 36 | if (EditorGUI.EndChangeCheck()) 37 | { 38 | PropertyUtility.CallOnValueChangedCallbacks(property); 39 | } 40 | } 41 | 42 | public float GetPropertyHeight(SerializedProperty property) 43 | { 44 | return GetPropertyHeight_Internal(property); 45 | } 46 | 47 | protected abstract void OnGUI_Internal(Rect rect, SerializedProperty property, GUIContent label); 48 | protected abstract float GetPropertyHeight_Internal(SerializedProperty property); 49 | } 50 | 51 | public static class SpecialCaseDrawerAttributeExtensions 52 | { 53 | private static Dictionary<Type, SpecialCasePropertyDrawerBase> _drawersByAttributeType; 54 | 55 | static SpecialCaseDrawerAttributeExtensions() 56 | { 57 | _drawersByAttributeType = new Dictionary<Type, SpecialCasePropertyDrawerBase>(); 58 | _drawersByAttributeType[typeof(ReorderableListAttribute)] = ReorderableListPropertyDrawer.Instance; 59 | } 60 | 61 | public static SpecialCasePropertyDrawerBase GetDrawer(this SpecialCaseDrawerAttribute attr) 62 | { 63 | SpecialCasePropertyDrawerBase drawer; 64 | if (_drawersByAttributeType.TryGetValue(attr.GetType(), out drawer)) 65 | { 66 | return drawer; 67 | } 68 | else 69 | { 70 | return null; 71 | } 72 | } 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyDrawers_SpecialCase/SpecialCasePropertyDrawerBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 771776453ad34b045a41dea54856fa12 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyValidators.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 41caedece93df91439d624dc9d124424 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyValidators/MaxValuePropertyValidator.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | 4 | namespace NaughtyAttributes.Editor 5 | { 6 | public class MaxValuePropertyValidator : PropertyValidatorBase 7 | { 8 | public override void ValidateProperty(SerializedProperty property) 9 | { 10 | MaxValueAttribute maxValueAttribute = PropertyUtility.GetAttribute<MaxValueAttribute>(property); 11 | 12 | if (property.propertyType == SerializedPropertyType.Integer) 13 | { 14 | if (property.intValue > maxValueAttribute.MaxValue) 15 | { 16 | property.intValue = (int)maxValueAttribute.MaxValue; 17 | } 18 | } 19 | else if (property.propertyType == SerializedPropertyType.Float) 20 | { 21 | if (property.floatValue > maxValueAttribute.MaxValue) 22 | { 23 | property.floatValue = maxValueAttribute.MaxValue; 24 | } 25 | } 26 | else if (property.propertyType == SerializedPropertyType.Vector2) 27 | { 28 | property.vector2Value = Vector2.Min(property.vector2Value, new Vector2(maxValueAttribute.MaxValue, maxValueAttribute.MaxValue)); 29 | } 30 | else if (property.propertyType == SerializedPropertyType.Vector3) 31 | { 32 | property.vector3Value = Vector3.Min(property.vector3Value, new Vector3(maxValueAttribute.MaxValue, maxValueAttribute.MaxValue, maxValueAttribute.MaxValue)); 33 | } 34 | else if (property.propertyType == SerializedPropertyType.Vector4) 35 | { 36 | property.vector4Value = Vector4.Min(property.vector4Value, new Vector4(maxValueAttribute.MaxValue, maxValueAttribute.MaxValue, maxValueAttribute.MaxValue, maxValueAttribute.MaxValue)); 37 | } 38 | else if (property.propertyType == SerializedPropertyType.Vector2Int) 39 | { 40 | property.vector2IntValue = Vector2Int.Min(property.vector2IntValue, new Vector2Int((int)maxValueAttribute.MaxValue, (int)maxValueAttribute.MaxValue)); 41 | } 42 | else if (property.propertyType == SerializedPropertyType.Vector3Int) 43 | { 44 | property.vector3IntValue = Vector3Int.Min(property.vector3IntValue, new Vector3Int((int)maxValueAttribute.MaxValue, (int)maxValueAttribute.MaxValue, (int)maxValueAttribute.MaxValue)); 45 | } 46 | else 47 | { 48 | string warning = maxValueAttribute.GetType().Name + " can be used only on int, float, Vector or VectorInt fields"; 49 | Debug.LogWarning(warning, property.serializedObject.targetObject); 50 | } 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyValidators/MaxValuePropertyValidator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 627b8e9e7bda6fa408c6f47fb8285665 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyValidators/MinValuePropertyValidator.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | 4 | namespace NaughtyAttributes.Editor 5 | { 6 | public class MinValuePropertyValidator : PropertyValidatorBase 7 | { 8 | public override void ValidateProperty(SerializedProperty property) 9 | { 10 | MinValueAttribute minValueAttribute = PropertyUtility.GetAttribute<MinValueAttribute>(property); 11 | 12 | if (property.propertyType == SerializedPropertyType.Integer) 13 | { 14 | if (property.intValue < minValueAttribute.MinValue) 15 | { 16 | property.intValue = (int)minValueAttribute.MinValue; 17 | } 18 | } 19 | else if (property.propertyType == SerializedPropertyType.Float) 20 | { 21 | if (property.floatValue < minValueAttribute.MinValue) 22 | { 23 | property.floatValue = minValueAttribute.MinValue; 24 | } 25 | } 26 | else if (property.propertyType == SerializedPropertyType.Vector2) 27 | { 28 | property.vector2Value = Vector2.Max(property.vector2Value, new Vector2(minValueAttribute.MinValue, minValueAttribute.MinValue)); 29 | } 30 | else if (property.propertyType == SerializedPropertyType.Vector3) 31 | { 32 | property.vector3Value = Vector3.Max(property.vector3Value, new Vector3(minValueAttribute.MinValue, minValueAttribute.MinValue, minValueAttribute.MinValue)); 33 | } 34 | else if (property.propertyType == SerializedPropertyType.Vector4) 35 | { 36 | property.vector4Value = Vector4.Max(property.vector4Value, new Vector4(minValueAttribute.MinValue, minValueAttribute.MinValue, minValueAttribute.MinValue, minValueAttribute.MinValue)); 37 | } 38 | else if (property.propertyType == SerializedPropertyType.Vector2Int) 39 | { 40 | property.vector2IntValue = Vector2Int.Max(property.vector2IntValue, new Vector2Int((int)minValueAttribute.MinValue, (int)minValueAttribute.MinValue)); 41 | } 42 | else if (property.propertyType == SerializedPropertyType.Vector3Int) 43 | { 44 | property.vector3IntValue = Vector3Int.Max(property.vector3IntValue, new Vector3Int((int)minValueAttribute.MinValue, (int)minValueAttribute.MinValue, (int)minValueAttribute.MinValue)); 45 | } 46 | else 47 | { 48 | string warning = minValueAttribute.GetType().Name + " can be used only on int, float, Vector or VectorInt fields"; 49 | Debug.LogWarning(warning, property.serializedObject.targetObject); 50 | } 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyValidators/MinValuePropertyValidator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 03dd23f6c0598074fb1b721dcd8fe023 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyValidators/PropertyValidatorBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using UnityEditor; 4 | 5 | namespace NaughtyAttributes.Editor 6 | { 7 | public abstract class PropertyValidatorBase 8 | { 9 | public abstract void ValidateProperty(SerializedProperty property); 10 | } 11 | 12 | public static class ValidatorAttributeExtensions 13 | { 14 | private static Dictionary<Type, PropertyValidatorBase> _validatorsByAttributeType; 15 | 16 | static ValidatorAttributeExtensions() 17 | { 18 | _validatorsByAttributeType = new Dictionary<Type, PropertyValidatorBase>(); 19 | _validatorsByAttributeType[typeof(MinValueAttribute)] = new MinValuePropertyValidator(); 20 | _validatorsByAttributeType[typeof(MaxValueAttribute)] = new MaxValuePropertyValidator(); 21 | _validatorsByAttributeType[typeof(RequiredAttribute)] = new RequiredPropertyValidator(); 22 | _validatorsByAttributeType[typeof(ValidateInputAttribute)] = new ValidateInputPropertyValidator(); 23 | } 24 | 25 | public static PropertyValidatorBase GetValidator(this ValidatorAttribute attr) 26 | { 27 | PropertyValidatorBase validator; 28 | if (_validatorsByAttributeType.TryGetValue(attr.GetType(), out validator)) 29 | { 30 | return validator; 31 | } 32 | else 33 | { 34 | return null; 35 | } 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyValidators/PropertyValidatorBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f332c8e1c3627d742aa9158af7b02ccc 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyValidators/RequiredPropertyValidator.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | 3 | namespace NaughtyAttributes.Editor 4 | { 5 | public class RequiredPropertyValidator : PropertyValidatorBase 6 | { 7 | public override void ValidateProperty(SerializedProperty property) 8 | { 9 | RequiredAttribute requiredAttribute = PropertyUtility.GetAttribute<RequiredAttribute>(property); 10 | 11 | if (property.propertyType == SerializedPropertyType.ObjectReference) 12 | { 13 | if (property.objectReferenceValue == null) 14 | { 15 | string errorMessage = property.name + " is required"; 16 | if (!string.IsNullOrEmpty(requiredAttribute.Message)) 17 | { 18 | errorMessage = requiredAttribute.Message; 19 | } 20 | 21 | NaughtyEditorGUI.HelpBox_Layout(errorMessage, MessageType.Error, context: property.serializedObject.targetObject); 22 | } 23 | } 24 | else 25 | { 26 | string warning = requiredAttribute.GetType().Name + " works only on reference types"; 27 | NaughtyEditorGUI.HelpBox_Layout(warning, MessageType.Warning, context: property.serializedObject.targetObject); 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyValidators/RequiredPropertyValidator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3a7e657ea45f6414682b5f41be9541b4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/PropertyValidators/ValidateInputPropertyValidator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5f6adf84ed53a7840a456e8b4dce38d9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/Utility.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: acb4475c71a3fe947a81ced84ab89c6d 3 | folderAsset: yes 4 | timeCreated: 1508062761 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/Utility/ButtonUtility.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Reflection; 3 | using System.Collections.Generic; 4 | 5 | namespace NaughtyAttributes.Editor 6 | { 7 | public static class ButtonUtility 8 | { 9 | public static bool IsEnabled(Object target, MethodInfo method) 10 | { 11 | EnableIfAttributeBase enableIfAttribute = method.GetCustomAttribute<EnableIfAttributeBase>(); 12 | if (enableIfAttribute == null) 13 | { 14 | return true; 15 | } 16 | 17 | List<bool> conditionValues = PropertyUtility.GetConditionValues(target, enableIfAttribute.Conditions); 18 | if (conditionValues.Count > 0) 19 | { 20 | bool enabled = PropertyUtility.GetConditionsFlag(conditionValues, enableIfAttribute.ConditionOperator, enableIfAttribute.Inverted); 21 | return enabled; 22 | } 23 | else 24 | { 25 | string message = enableIfAttribute.GetType().Name + " needs a valid boolean condition field, property or method name to work"; 26 | Debug.LogWarning(message, target); 27 | 28 | return false; 29 | } 30 | } 31 | 32 | public static bool IsVisible(Object target, MethodInfo method) 33 | { 34 | ShowIfAttributeBase showIfAttribute = method.GetCustomAttribute<ShowIfAttributeBase>(); 35 | if (showIfAttribute == null) 36 | { 37 | return true; 38 | } 39 | 40 | List<bool> conditionValues = PropertyUtility.GetConditionValues(target, showIfAttribute.Conditions); 41 | if (conditionValues.Count > 0) 42 | { 43 | bool enabled = PropertyUtility.GetConditionsFlag(conditionValues, showIfAttribute.ConditionOperator, showIfAttribute.Inverted); 44 | return enabled; 45 | } 46 | else 47 | { 48 | string message = showIfAttribute.GetType().Name + " needs a valid boolean condition field, property or method name to work"; 49 | Debug.LogWarning(message, target); 50 | 51 | return false; 52 | } 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/Utility/ButtonUtility.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a273f81125ec52d4cb5dec2228afda0e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/Utility/NaughtyEditorGUI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ff27ff7705d6064e935bb2159a1b453 3 | timeCreated: 1510926159 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/Utility/PropertyUtility.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 312eedcb79c7a5542b87c0b848e3e2fa 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/Utility/ReflectionUtility.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1d86c581f02a55f458e36bf7e81e3084 3 | timeCreated: 1520258793 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/Utility/SavedBool.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | 3 | namespace NaughtyAttributes.Editor 4 | { 5 | internal class SavedBool 6 | { 7 | private bool _value; 8 | private string _name; 9 | 10 | public bool Value 11 | { 12 | get 13 | { 14 | return _value; 15 | } 16 | set 17 | { 18 | if (_value == value) 19 | { 20 | return; 21 | } 22 | 23 | _value = value; 24 | EditorPrefs.SetBool(_name, value); 25 | } 26 | } 27 | 28 | public SavedBool(string name, bool value) 29 | { 30 | _name = name; 31 | _value = EditorPrefs.GetBool(name, value); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Editor/Utility/SavedBool.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 18613afe66b0c0344a2be5f430bf965a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ce2bd76b5676a434bb8a84254f67f1dc 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/AnimatorParamTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class AnimatorParamTest : MonoBehaviour 6 | { 7 | public Animator animator0; 8 | 9 | [AnimatorParam("animator0")] 10 | public int hash0; 11 | 12 | [AnimatorParam("animator0")] 13 | public string name0; 14 | 15 | public AnimatorParamNest1 nest1; 16 | 17 | [Button("Log 'hash0' and 'name0'")] 18 | private void TestLog() 19 | { 20 | Debug.Log(quot;hash0 = {hash0}"); 21 | Debug.Log(quot;name0 = {name0}"); 22 | Debug.Log(quot;Animator.StringToHash(name0) = {Animator.StringToHash(name0)}"); 23 | } 24 | } 25 | 26 | [System.Serializable] 27 | public class AnimatorParamNest1 28 | { 29 | public Animator animator1; 30 | private Animator Animator1 => animator1; 31 | 32 | [AnimatorParam("Animator1", AnimatorControllerParameterType.Bool)] 33 | public int hash1; 34 | 35 | [AnimatorParam("Animator1", AnimatorControllerParameterType.Float)] 36 | public string name1; 37 | 38 | public AnimatorParamNest2 nest2; 39 | } 40 | 41 | [System.Serializable] 42 | public class AnimatorParamNest2 43 | { 44 | public Animator animator2; 45 | private Animator GetAnimator2() => animator2; 46 | 47 | [AnimatorParam("GetAnimator2", AnimatorControllerParameterType.Int)] 48 | public int hash1; 49 | 50 | [AnimatorParam("GetAnimator2", AnimatorControllerParameterType.Trigger)] 51 | public string name1; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/AnimatorParamTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9bff20ccdde00fc49a62bad6a4ef9982 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/BoxGroupTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class BoxGroupTest : MonoBehaviour 6 | { 7 | [BoxGroup("Integers")] 8 | public int int0; 9 | [BoxGroup("Integers")] 10 | public int int1; 11 | 12 | [BoxGroup("Floats")] 13 | public float float0; 14 | [BoxGroup("Floats")] 15 | public float float1; 16 | 17 | [BoxGroup("Sliders")] 18 | [MinMaxSlider(0, 1)] 19 | public Vector2 slider0; 20 | [BoxGroup("Sliders")] 21 | [MinMaxSlider(0, 1)] 22 | public Vector2 slider1; 23 | 24 | public string str0; 25 | public string str1; 26 | 27 | [BoxGroup] 28 | public Transform trans0; 29 | [BoxGroup] 30 | public Transform trans1; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/BoxGroupTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3920f5ea384951b4990e4d9e8032d12e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ButtonTest.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using UnityEngine; 3 | 4 | namespace NaughtyAttributes.Test 5 | { 6 | public class ButtonTest : MonoBehaviour 7 | { 8 | public int myInt; 9 | 10 | [Button(enabledMode: EButtonEnableMode.Always)] 11 | private void IncrementMyInt() 12 | { 13 | myInt++; 14 | } 15 | 16 | [Button("Decrement My Int", EButtonEnableMode.Editor)] 17 | private void DecrementMyInt() 18 | { 19 | myInt--; 20 | } 21 | 22 | [Button(enabledMode: EButtonEnableMode.Playmode)] 23 | private void LogMyInt(string prefix = "MyInt = ") 24 | { 25 | Debug.Log(prefix + myInt); 26 | } 27 | 28 | [Button("StartCoroutine")] 29 | private IEnumerator IncrementMyIntCoroutine() 30 | { 31 | int seconds = 5; 32 | for (int i = 0; i < seconds; i++) 33 | { 34 | myInt++; 35 | yield return new WaitForSeconds(1.0f); 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ButtonTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b592f12a9f69ac3408f6f870762232c7 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/CurveRangeTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class CurveRangeTest : MonoBehaviour 6 | { 7 | [CurveRange(0f, 0f, 1f, 1f, EColor.Yellow)] 8 | public AnimationCurve[] curves; 9 | 10 | [CurveRange(-1, -1, 1, 1, EColor.Red)] 11 | public AnimationCurve curve; 12 | 13 | [CurveRange(EColor.Orange)] 14 | public AnimationCurve curve1; 15 | 16 | [CurveRange(0, 0, 10, 10)] 17 | public AnimationCurve curve2; 18 | 19 | public CurveRangeNest1 nest1; 20 | 21 | [System.Serializable] 22 | public class CurveRangeNest1 23 | { 24 | [CurveRange(0, 0, 1, 1, EColor.Green)] 25 | public AnimationCurve curve; 26 | 27 | public CurveRangeNest2 nest2; 28 | } 29 | 30 | [System.Serializable] 31 | public class CurveRangeNest2 32 | { 33 | [CurveRange(0, 0, 5, 5, EColor.Blue)] 34 | public AnimationCurve curve; 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/CurveRangeTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6587b100d001e7e46b9aaae7f1180b40 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/DisableIfTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0e48a088cb96287448c3be58932bfcb7 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/DropdownTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections.Generic; 3 | 4 | namespace NaughtyAttributes.Test 5 | { 6 | public class DropdownTest : MonoBehaviour 7 | { 8 | [Dropdown("intValues")] 9 | public int intValue; 10 | 11 | #pragma warning disable 414 12 | private int[] intValues = new int[] { 1, 2, 3 }; 13 | #pragma warning restore 414 14 | 15 | public DropdownNest1 nest1; 16 | } 17 | 18 | [System.Serializable] 19 | public class DropdownNest1 20 | { 21 | [Dropdown("StringValues")] 22 | public string stringValue; 23 | 24 | private List<string> StringValues { get { return new List<string>() { "A", "B", "C" }; } } 25 | 26 | public DropdownNest2 nest2; 27 | } 28 | 29 | [System.Serializable] 30 | public class DropdownNest2 31 | { 32 | [Dropdown("GetVectorValues")] 33 | public Vector3 vectorValue; 34 | 35 | private DropdownList<Vector3> GetVectorValues() 36 | { 37 | return new DropdownList<Vector3>() 38 | { 39 | { "Right", Vector3.right }, 40 | { "Up", Vector3.up }, 41 | { "Forward", Vector3.forward } 42 | }; 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/DropdownTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3855e37cd6b01194e8166573c7c4b37d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/EnableIfTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bed506d8be3a10f45bec4bf2237bec87 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/EnumFlagsTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public enum TestEnum 6 | { 7 | None = 0, 8 | B = 1 << 0, 9 | C = 1 << 1, 10 | D = 1 << 2, 11 | E = 1 << 3, 12 | F = 1 << 4, 13 | All = ~0 14 | } 15 | 16 | public class EnumFlagsTest : MonoBehaviour 17 | { 18 | [EnumFlags] 19 | public TestEnum flags0; 20 | 21 | public EnumFlagsNest1 nest1; 22 | } 23 | 24 | [System.Serializable] 25 | public class EnumFlagsNest1 26 | { 27 | [EnumFlags] 28 | public TestEnum flags1; 29 | 30 | public EnumFlagsNest2 nest2; 31 | } 32 | 33 | [System.Serializable] 34 | public class EnumFlagsNest2 35 | { 36 | [EnumFlags] 37 | public TestEnum flags2; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/EnumFlagsTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7b7f6b84ce0d7674d8a386fde729279c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ExpandableTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class ExpandableTest : MonoBehaviour 6 | { 7 | // See #294 8 | public int precedingField = 5; 9 | 10 | [Expandable] 11 | public ScriptableObject obj0; 12 | 13 | public ExpandableScriptableObjectNest1 nest1; 14 | } 15 | 16 | [System.Serializable] 17 | public class ExpandableScriptableObjectNest1 18 | { 19 | [Expandable] 20 | public ScriptableObject obj1; 21 | 22 | public ExpandableScriptableObjectNest2 nest2; 23 | } 24 | 25 | [System.Serializable] 26 | public class ExpandableScriptableObjectNest2 27 | { 28 | [Expandable] 29 | public ScriptableObject obj2; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ExpandableTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 64c4c9aee2b494d44be9bb0b7f12ed7c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/FoldoutTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class FoldoutTest : MonoBehaviour 6 | { 7 | [Foldout("Integers")] 8 | public int int0; 9 | [Foldout("Integers")] 10 | public int int1; 11 | 12 | [Foldout("Floats")] 13 | public float float0; 14 | [Foldout("Floats")] 15 | public float float1; 16 | 17 | [Foldout("Sliders")] 18 | [MinMaxSlider(0, 1)] 19 | public Vector2 slider0; 20 | [Foldout("Sliders")] 21 | [MinMaxSlider(0, 1)] 22 | public Vector2 slider1; 23 | 24 | public string str0; 25 | public string str1; 26 | 27 | [Foldout("Transforms")] 28 | public Transform trans0; 29 | [Foldout("Transforms")] 30 | public Transform trans1; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/FoldoutTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3b437215d92efa74ea85ff726ca0dd09 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/HideIfTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3cf166cb519e666419bb79b0c50c5ee1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/HorizontalLineTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class HorizontalLineTest : MonoBehaviour 6 | { 7 | [HorizontalLine(color: EColor.Black)] 8 | [Header("Black")] 9 | [HorizontalLine(color: EColor.Blue)] 10 | [Header("Blue")] 11 | [HorizontalLine(color: EColor.Gray)] 12 | [Header("Gray")] 13 | [HorizontalLine(color: EColor.Green)] 14 | [Header("Green")] 15 | [HorizontalLine(color: EColor.Indigo)] 16 | [Header("Indigo")] 17 | [HorizontalLine(color: EColor.Orange)] 18 | [Header("Orange")] 19 | [HorizontalLine(color: EColor.Pink)] 20 | [Header("Pink")] 21 | [HorizontalLine(color: EColor.Red)] 22 | [Header("Red")] 23 | [HorizontalLine(color: EColor.Violet)] 24 | [Header("Violet")] 25 | [HorizontalLine(color: EColor.White)] 26 | [Header("White")] 27 | [HorizontalLine(color: EColor.Yellow)] 28 | [Header("Yellow")] 29 | [HorizontalLine(10.0f)] 30 | [Header("Thick")] 31 | public int line0; 32 | 33 | public HorizontalLineNest1 nest1; 34 | } 35 | 36 | [System.Serializable] 37 | public class HorizontalLineNest1 38 | { 39 | [HorizontalLine] 40 | public int line1; 41 | 42 | public HorizontalLineNest2 nest2; 43 | } 44 | 45 | [System.Serializable] 46 | public class HorizontalLineNest2 47 | { 48 | [HorizontalLine] 49 | public int line2; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/HorizontalLineTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5cc6d3f8d4a53374887b3d620a6972e3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/InfoBoxTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class InfoBoxTest : MonoBehaviour 6 | { 7 | [InfoBox("Normal", EInfoBoxType.Normal)] 8 | public int normal; 9 | 10 | public InfoBoxNest1 nest1; 11 | } 12 | 13 | [System.Serializable] 14 | public class InfoBoxNest1 15 | { 16 | [InfoBox("Warning", EInfoBoxType.Warning)] 17 | public int warning; 18 | 19 | public InfoBoxNest2 nest2; 20 | } 21 | 22 | [System.Serializable] 23 | public class InfoBoxNest2 24 | { 25 | [InfoBox("Error", EInfoBoxType.Error)] 26 | public int error; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/InfoBoxTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0dcb08e489c17644e9eacaa1ec5fe781 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/InputAxisTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class InputAxisTest : MonoBehaviour 6 | { 7 | [InputAxis] 8 | public string inputAxis0; 9 | 10 | public InputAxisNest1 nest1; 11 | 12 | [Button] 13 | private void LogInputAxis0() 14 | { 15 | Debug.Log(inputAxis0); 16 | } 17 | } 18 | 19 | [System.Serializable] 20 | public class InputAxisNest1 21 | { 22 | [InputAxis] 23 | public string inputAxis1; 24 | 25 | public InputAxisNest2 nest2; 26 | } 27 | 28 | [System.Serializable] 29 | public struct InputAxisNest2 30 | { 31 | [InputAxis] 32 | public string inputAxis2; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/InputAxisTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e0cc8a31c22090847b75538c0ed2d2fc 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/LabelTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class LabelTest : MonoBehaviour 6 | { 7 | [Label("Label 0")] 8 | public int int0; 9 | 10 | public LabelNest1 nest1; 11 | } 12 | 13 | [System.Serializable] 14 | public class LabelNest1 15 | { 16 | [Label("Label 1")] 17 | [AllowNesting] // Because it's nested we need to explicitly allow nesting 18 | public int int1; 19 | 20 | public LabelNest2 nest2; 21 | } 22 | 23 | [System.Serializable] 24 | public class LabelNest2 25 | { 26 | [Label("Label 2")] 27 | [MinMaxSlider(0.0f, 1.0f)] // AllowNesting attribute is not needed, because the field is already marked with a custom naughty property drawer 28 | public Vector2 vector2; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/LabelTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7488af014527ebf42af5c4fc4d5f4f5b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/LayerTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class LayerTest : MonoBehaviour 6 | { 7 | [Layer] 8 | public int layerNumber0; 9 | 10 | [Layer] 11 | public string layerName0; 12 | 13 | public LayerNest1 nest1; 14 | 15 | [Button] 16 | public void DebugLog() 17 | { 18 | Debug.LogFormat("{0} = {1}", nameof(layerNumber0), layerNumber0); 19 | Debug.LogFormat("{0} = {1}", nameof(layerName0), layerName0); 20 | Debug.LogFormat("LayerToName({0}) = {1}", layerNumber0, LayerMask.LayerToName(layerNumber0)); 21 | Debug.LogFormat("NameToLayer({0}) = {1}", layerName0, LayerMask.NameToLayer(layerName0)); 22 | } 23 | } 24 | 25 | [System.Serializable] 26 | public class LayerNest1 27 | { 28 | [Layer] 29 | public int layerNumber1; 30 | 31 | [Layer] 32 | public string layerName1; 33 | 34 | public LayerNest2 nest2; 35 | } 36 | 37 | [System.Serializable] 38 | public struct LayerNest2 39 | { 40 | [Layer] 41 | public int layerNumber2; 42 | 43 | [Layer] 44 | public string layerName2; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/LayerTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 460459d6ac76acd4d872f94cf444e6fa 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/MinMaxSliderTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class MinMaxSliderTest : MonoBehaviour 6 | { 7 | [MinMaxSlider(0.0f, 1.0f)] 8 | public Vector2 minMaxSlider0 = new Vector2(0.25f, 0.75f); 9 | 10 | public MinMaxSliderNest1 nest1; 11 | } 12 | 13 | [System.Serializable] 14 | public class MinMaxSliderNest1 15 | { 16 | [MinMaxSlider(0.0f, 1.0f)] 17 | public Vector2 minMaxSlider1 = new Vector2(0.25f, 0.75f); 18 | 19 | public MinMaxSliderNest2 nest2; 20 | } 21 | 22 | [System.Serializable] 23 | public class MinMaxSliderNest2 24 | { 25 | [MinMaxSlider(1, 11)] 26 | public Vector2Int minMaxSlider2 = new Vector2Int(6, 11); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/MinMaxSliderTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fd67fbde6acdd6a44944f12e507067c5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/MinMaxValueTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 450a05787c54e6b4fa88ffe223bcee87 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/NaughtyAttributes.Test.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "NaughtyAttributes.Test", 3 | "references": [ 4 | "NaughtyAttributes.Core" 5 | ], 6 | "optionalUnityReferences": [], 7 | "includePlatforms": [], 8 | "excludePlatforms": [], 9 | "allowUnsafeCode": false, 10 | "overrideReferences": false, 11 | "precompiledReferences": [], 12 | "autoReferenced": true, 13 | "defineConstraints": [] 14 | } -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/NaughtyAttributes.Test.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: df1dea26b8503004d92d621e88aa9421 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/OnValueChangedTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class OnValueChangedTest : MonoBehaviour 6 | { 7 | [OnValueChanged("OnValueChangedMethod1")] 8 | [OnValueChanged("OnValueChangedMethod2")] 9 | public int int0; 10 | 11 | private void OnValueChangedMethod1() 12 | { 13 | Debug.LogFormat("int0: {0}", int0); 14 | } 15 | 16 | private void OnValueChangedMethod2() 17 | { 18 | Debug.LogFormat("int0: {0}", int0); 19 | } 20 | 21 | public OnValueChangedNest1 nest1; 22 | } 23 | 24 | [System.Serializable] 25 | public class OnValueChangedNest1 26 | { 27 | [OnValueChanged("OnValueChangedMethod")] 28 | [AllowNesting] 29 | public int int1; 30 | 31 | private void OnValueChangedMethod() 32 | { 33 | Debug.LogFormat("int1: {0}", int1); 34 | } 35 | 36 | public OnValueChangedNest2 nest2; 37 | } 38 | 39 | [System.Serializable] 40 | public class OnValueChangedNest2 41 | { 42 | [OnValueChanged("OnValueChangedMethod")] 43 | [AllowNesting] 44 | public int int2; 45 | 46 | private void OnValueChangedMethod() 47 | { 48 | Debug.LogFormat("int2: {0}", int2); 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/OnValueChangedTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ff1df679e5b32f64bb106752c63933fa 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ProgressBarTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class ProgressBarTest : MonoBehaviour 6 | { 7 | [Header("Constant ProgressBar")] 8 | [ProgressBar("Health", 100, EColor.Red)] 9 | public float health = 50.0f; 10 | 11 | [Header("Nested ProgressBar")] 12 | public ProgressBarNest1 nest1; 13 | 14 | [Header("Dynamic ProgressBar")] 15 | [ProgressBar("Elixir", "maxElixir", color: EColor.Violet)] 16 | public int elixir = 50; 17 | public int maxElixir = 100; 18 | } 19 | 20 | [System.Serializable] 21 | public class ProgressBarNest1 22 | { 23 | [ProgressBar("Mana", 100, EColor.Blue)] 24 | public float mana = 25.0f; 25 | 26 | public ProgressBarNest2 nest2; 27 | } 28 | 29 | [System.Serializable] 30 | public class ProgressBarNest2 31 | { 32 | [ProgressBar("Stamina", 100, EColor.Green)] 33 | public float stamina = 75.0f; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ProgressBarTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 96ca4c27fc649764b9d1625f1740cb9e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ReadOnlyTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class ReadOnlyTest : MonoBehaviour 6 | { 7 | [ReadOnly] 8 | public int readOnlyInt = 5; 9 | 10 | public ReadOnlyNest1 nest1; 11 | } 12 | 13 | [System.Serializable] 14 | public class ReadOnlyNest1 15 | { 16 | [ReadOnly] 17 | [AllowNesting] 18 | public float readOnlyFloat = 3.14f; 19 | 20 | public ReadOnlyNest2 nest2; 21 | } 22 | 23 | [System.Serializable] 24 | public struct ReadOnlyNest2 25 | { 26 | [ReadOnly] 27 | [AllowNesting] 28 | public string readOnlyString; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ReadOnlyTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5443d37a05e188846bda9b05b067184e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ReorderableListTest.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace NaughtyAttributes.Test 5 | { 6 | public class ReorderableListTest : MonoBehaviour 7 | { 8 | [ReorderableList] 9 | public int[] intArray; 10 | 11 | [ReorderableList] 12 | public List<Vector3> vectorList; 13 | 14 | [ReorderableList] 15 | public List<SomeStruct> structList; 16 | 17 | [ReorderableList] 18 | public GameObject[] gameObjectsList; 19 | 20 | [ReorderableList] 21 | public List<Transform> transformsList; 22 | 23 | [ReorderableList] 24 | public List<MonoBehaviour> monoBehavioursList; 25 | } 26 | 27 | [System.Serializable] 28 | public struct SomeStruct 29 | { 30 | public int Int; 31 | public float Float; 32 | public Vector3 Vector; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ReorderableListTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c93fde7cd79390148ac576c3a159a77b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/RequiredTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class RequiredTest : MonoBehaviour 6 | { 7 | [Required] 8 | public Transform trans0; 9 | 10 | public RequiredNest1 nest1; 11 | } 12 | 13 | [System.Serializable] 14 | public class RequiredNest1 15 | { 16 | [Required] 17 | [AllowNesting] // Because it's nested we need to explicitly allow nesting 18 | public Transform trans1; 19 | 20 | public RequiredNest2 nest2; 21 | } 22 | 23 | [System.Serializable] 24 | public class RequiredNest2 25 | { 26 | [Required("trans2 is invalid custom message - hohoho")] 27 | [AllowNesting] // Because it's nested we need to explicitly allow nesting 28 | public Transform trans2; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/RequiredTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9c8c10b2234650d42b2a8efad6b413db 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ResizableTextAreaTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class ResizableTextAreaTest : MonoBehaviour 6 | { 7 | [ResizableTextArea] 8 | public string text0; 9 | 10 | public ResizableTextAreaNest1 nest1; 11 | } 12 | 13 | [System.Serializable] 14 | public class ResizableTextAreaNest1 15 | { 16 | [ResizableTextArea] 17 | public string text1; 18 | 19 | public ResizableTextAreaNest2 nest2; 20 | } 21 | 22 | [System.Serializable] 23 | public class ResizableTextAreaNest2 24 | { 25 | [ResizableTextArea] 26 | public string text2; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ResizableTextAreaTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fb4f4bb2e3e063340a24f4bb24528bb5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/SceneTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class SceneTest : MonoBehaviour 6 | { 7 | [Scene] 8 | public string scene0; 9 | 10 | public SceneNest1 nest1; 11 | } 12 | 13 | [System.Serializable] 14 | public class SceneNest1 15 | { 16 | [Scene] 17 | public string scene1; 18 | 19 | public SceneNest2 nest2; 20 | } 21 | 22 | [System.Serializable] 23 | public struct SceneNest2 24 | { 25 | [Scene] 26 | public int scene2; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/SceneTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 281a85803caf74a459439020a0840fa4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ShowAssetPreviewTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class ShowAssetPreviewTest : MonoBehaviour 6 | { 7 | [ShowAssetPreview] 8 | public Sprite sprite0; 9 | 10 | [ShowAssetPreview(96, 96)] 11 | public GameObject prefab0; 12 | 13 | public ShowAssetPreviewNest1 nest1; 14 | } 15 | 16 | [System.Serializable] 17 | public class ShowAssetPreviewNest1 18 | { 19 | [ShowAssetPreview] 20 | public Sprite sprite1; 21 | 22 | [ShowAssetPreview(96, 96)] 23 | public GameObject prefab1; 24 | 25 | public ShowAssetPreviewNest2 nest2; 26 | } 27 | 28 | [System.Serializable] 29 | public class ShowAssetPreviewNest2 30 | { 31 | [ShowAssetPreview] 32 | public Sprite sprite2; 33 | 34 | [ShowAssetPreview(96, 96)] 35 | public GameObject prefab2; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ShowAssetPreviewTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 705c14aa9ecaa274289972381f471367 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ShowIfTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4fdbfcfbf5b056a4bac491fe21569572 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ShowNativePropertyTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class ShowNativePropertyTest : MonoBehaviour 6 | { 7 | [ShowNativeProperty] 8 | private Transform Transform 9 | { 10 | get 11 | { 12 | return transform; 13 | } 14 | } 15 | 16 | [ShowNativeProperty] 17 | private Transform ParentTransform 18 | { 19 | get 20 | { 21 | return transform.parent; 22 | } 23 | } 24 | 25 | [ShowNativeProperty] 26 | private ushort MyUShort 27 | { 28 | get 29 | { 30 | return ushort.MaxValue; 31 | } 32 | } 33 | 34 | [ShowNativeProperty] 35 | private short MyShort 36 | { 37 | get 38 | { 39 | return short.MaxValue; 40 | } 41 | } 42 | 43 | [ShowNativeProperty] 44 | private ulong MyULong 45 | { 46 | get 47 | { 48 | return ulong.MaxValue; 49 | } 50 | } 51 | 52 | [ShowNativeProperty] 53 | private long MyLong 54 | { 55 | get 56 | { 57 | return long.MaxValue; 58 | } 59 | } 60 | 61 | [ShowNativeProperty] 62 | private uint MyUInt 63 | { 64 | get 65 | { 66 | return uint.MaxValue; 67 | } 68 | } 69 | 70 | [ShowNativeProperty] 71 | private int MyInt 72 | { 73 | get 74 | { 75 | return int.MaxValue; 76 | } 77 | } 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ShowNativePropertyTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b5a73795d25dd334e90a5a347c6079d9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ShowNonSerializedFieldTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class ShowNonSerializedFieldTest : MonoBehaviour 6 | { 7 | #pragma warning disable 414 8 | [ShowNonSerializedField] 9 | private ushort myUShort = ushort.MaxValue; 10 | 11 | [ShowNonSerializedField] 12 | private short myShort = short.MaxValue; 13 | 14 | [ShowNonSerializedField] 15 | private uint myUInt = uint.MaxValue; 16 | 17 | [ShowNonSerializedField] 18 | private int myInt = 10; 19 | 20 | [ShowNonSerializedField] 21 | private ulong myULong = ulong.MaxValue; 22 | 23 | [ShowNonSerializedField] 24 | private long myLong = long.MaxValue; 25 | 26 | [ShowNonSerializedField] 27 | private const float PI = 3.14159f; 28 | 29 | [ShowNonSerializedField] 30 | private static readonly Vector3 CONST_VECTOR = Vector3.one; 31 | #pragma warning restore 414 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ShowNonSerializedFieldTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 913d67a695253f744bdc776625b9b948 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/SortingLayerTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class SortingLayerTest : MonoBehaviour 6 | { 7 | [SortingLayer] 8 | public int layerNumber0; 9 | 10 | [SortingLayer] 11 | public string layerName0; 12 | 13 | public SortingLayerNest1 nest1; 14 | 15 | [Button] 16 | public void DebugLog() 17 | { 18 | Debug.LogFormat("{0} = {1}", nameof(layerNumber0), layerNumber0); 19 | Debug.LogFormat("{0} = {1}", nameof(layerName0), layerName0); 20 | Debug.LogFormat("LayerToName({0}) = {1}", layerNumber0, SortingLayer.IDToName(layerNumber0)); 21 | Debug.LogFormat("NameToLayer({0}) = {1}", layerName0, SortingLayer.NameToID(layerName0)); 22 | } 23 | } 24 | 25 | [System.Serializable] 26 | public class SortingLayerNest1 27 | { 28 | [SortingLayer] 29 | public int layerNumber1; 30 | 31 | [SortingLayer] 32 | public string layerName1; 33 | 34 | public SortingLayerNest2 nest2; 35 | } 36 | 37 | [System.Serializable] 38 | public struct SortingLayerNest2 39 | { 40 | [SortingLayer] 41 | public int layerNumber2; 42 | 43 | [SortingLayer] 44 | public string layerName2; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/SortingLayerTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8ed73e666d447964d93c4840f05423dc 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/TagTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class TagTest : MonoBehaviour 6 | { 7 | [Tag] 8 | public string tag0; 9 | 10 | public TagNest1 nest1; 11 | 12 | [Button] 13 | private void LogTag0() 14 | { 15 | Debug.Log(tag0); 16 | } 17 | } 18 | 19 | [System.Serializable] 20 | public class TagNest1 21 | { 22 | [Tag] 23 | public string tag1; 24 | 25 | public TagNest2 nest2; 26 | } 27 | 28 | [System.Serializable] 29 | public struct TagNest2 30 | { 31 | [Tag] 32 | public string tag2; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/TagTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8bcc0d5613b48fb43bd36c9d37e99900 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ValidateInputTest.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace NaughtyAttributes.Test 4 | { 5 | public class ValidateInputTest : MonoBehaviour 6 | { 7 | [ValidateInput("NotZero0", "int0 must not be zero")] 8 | public int int0; 9 | 10 | private bool NotZero0(int value) 11 | { 12 | return value != 0; 13 | } 14 | 15 | public ValidateInputNest1 nest1; 16 | 17 | public ValidateInputInheritedNest inheritedNest; 18 | } 19 | 20 | [System.Serializable] 21 | public class ValidateInputNest1 22 | { 23 | [ValidateInput("NotZero1")] 24 | [AllowNesting] // Because it's nested we need to explicitly allow nesting 25 | public int int1; 26 | 27 | private bool NotZero1(int value) 28 | { 29 | return value != 0; 30 | } 31 | 32 | public ValidateInputNest2 nest2; 33 | } 34 | 35 | [System.Serializable] 36 | public class ValidateInputNest2 37 | { 38 | [ValidateInput("NotZero2")] 39 | [AllowNesting] // Because it's nested we need to explicitly allow nesting 40 | public int int2; 41 | 42 | private bool NotZero2(int value) 43 | { 44 | return value != 0; 45 | } 46 | } 47 | 48 | [System.Serializable] 49 | public class ValidateInputInheritedNest : ValidateInputNest1 50 | { 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/ValidateInputTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 94adafcfe59aa344c9b5596b2cc6ecd0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/_NaughtyComponent.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace NaughtyAttributes.Test 5 | { 6 | public class _NaughtyComponent : MonoBehaviour 7 | { 8 | } 9 | 10 | [System.Serializable] 11 | public class MyClass 12 | { 13 | } 14 | 15 | [System.Serializable] 16 | public struct MyStruct 17 | { 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/_NaughtyComponent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9c928ea15ae74a44089beb2e534c1a35 3 | timeCreated: 1507996629 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/_NaughtyScriptableObject.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace NaughtyAttributes.Test 5 | { 6 | //[CreateAssetMenu(fileName = "NaughtyScriptableObject", menuName = "NaughtyAttributes/_NaughtyScriptableObject")] 7 | public class _NaughtyScriptableObject : ScriptableObject 8 | { 9 | [Expandable] 10 | public List<_TestScriptableObjectA> listA; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/_NaughtyScriptableObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 753bdb918c6038142acddbd7aae6958f 3 | timeCreated: 1518639587 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/_TestScriptableObjectA.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections.Generic; 3 | 4 | namespace NaughtyAttributes.Test 5 | { 6 | //[CreateAssetMenu(fileName = "TestScriptableObjectA", menuName = "NaughtyAttributes/TestScriptableObjectA")] 7 | public class _TestScriptableObjectA : ScriptableObject 8 | { 9 | [Expandable] 10 | public List<_TestScriptableObjectB> listB; 11 | } 12 | } -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/_TestScriptableObjectA.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 19472ac11eae27a4b804f354ca7d9c00 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/_TestScriptableObjectB.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections.Generic; 3 | 4 | namespace NaughtyAttributes.Test 5 | { 6 | //[CreateAssetMenu(fileName = "TestScriptableObjectB", menuName = "NaughtyAttributes/TestScriptableObjectB")] 7 | public class _TestScriptableObjectB : ScriptableObject 8 | { 9 | [MinMaxSlider(0, 10)] 10 | public Vector2Int slider; 11 | } 12 | } -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/Scripts/Test/_TestScriptableObjectB.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c2b396aeebc9d984da298eee313896bc 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "com.dbrizov.naughtyattributes", 3 | "displayName": "NaughtyAttributes", 4 | "version": "2.1.4", 5 | "unity": "2018.4", 6 | "description": "NaughtyAttributes is an extension for the Unity Inspector.", 7 | "keywords": [ "attribute", "inspector", "editor" ], 8 | "category": "editor extensions", 9 | "dependencies": {}, 10 | "samples": [ 11 | { 12 | "displayName": "Demo Scene", 13 | "description": "Demo Scene", 14 | "path": "Samples/DemoScene" 15 | } 16 | ], 17 | "author": { 18 | "name": "Denis Rizov", 19 | "url": "https://github.com/dbrizov" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Assets/NaughtyAttributes/package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: db9a5ca20403b0344ae64015de8f8c86 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Denis Rizov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.2d.sprite": "1.0.0", 4 | "com.unity.2d.tilemap": "1.0.0", 5 | "com.unity.ide.visualstudio": "2.0.14", 6 | "com.unity.textmeshpro": "3.0.6", 7 | "com.unity.ugui": "1.0.0", 8 | "com.unity.modules.ai": "1.0.0", 9 | "com.unity.modules.androidjni": "1.0.0", 10 | "com.unity.modules.animation": "1.0.0", 11 | "com.unity.modules.assetbundle": "1.0.0", 12 | "com.unity.modules.audio": "1.0.0", 13 | "com.unity.modules.cloth": "1.0.0", 14 | "com.unity.modules.director": "1.0.0", 15 | "com.unity.modules.imageconversion": "1.0.0", 16 | "com.unity.modules.imgui": "1.0.0", 17 | "com.unity.modules.jsonserialize": "1.0.0", 18 | "com.unity.modules.particlesystem": "1.0.0", 19 | "com.unity.modules.physics": "1.0.0", 20 | "com.unity.modules.physics2d": "1.0.0", 21 | "com.unity.modules.screencapture": "1.0.0", 22 | "com.unity.modules.terrain": "1.0.0", 23 | "com.unity.modules.terrainphysics": "1.0.0", 24 | "com.unity.modules.tilemap": "1.0.0", 25 | "com.unity.modules.ui": "1.0.0", 26 | "com.unity.modules.uielements": "1.0.0", 27 | "com.unity.modules.umbra": "1.0.0", 28 | "com.unity.modules.unityanalytics": "1.0.0", 29 | "com.unity.modules.unitywebrequest": "1.0.0", 30 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 31 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 32 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 33 | "com.unity.modules.unitywebrequestwww": "1.0.0", 34 | "com.unity.modules.vehicles": "1.0.0", 35 | "com.unity.modules.video": "1.0.0", 36 | "com.unity.modules.vr": "1.0.0", 37 | "com.unity.modules.wind": "1.0.0", 38 | "com.unity.modules.xr": "1.0.0" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 0 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_EnablePCM: 1 18 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 19 | m_AutoSimulation: 1 20 | m_AutoSyncTransforms: 1 21 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/NaughtyAttributes/Samples/DemoScene/DemoScene.unity 10 | guid: 07845a5477be2b149a6f1cb32b5a3a5b 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 9 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 1 10 | m_DefaultBehaviorMode: 0 11 | m_PrefabRegularEnvironment: {fileID: 0} 12 | m_PrefabUIEnvironment: {fileID: 0} 13 | m_SpritePackerMode: 0 14 | m_SpritePackerPaddingPower: 1 15 | m_EtcTextureCompressorBehavior: 1 16 | m_EtcTextureFastCompressor: 1 17 | m_EtcTextureNormalCompressor: 2 18 | m_EtcTextureBestCompressor: 4 19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmref;asmdef 20 | m_ProjectGenerationRootNamespace: 21 | m_CollabEditorSettings: 22 | inProgressEnabled: 1 23 | m_EnableTextureStreamingInEditMode: 1 24 | m_EnableTextureStreamingInPlayMode: 1 25 | m_AsyncShaderCompilation: 1 26 | m_EnterPlayModeOptionsEnabled: 0 27 | m_EnterPlayModeOptions: 3 28 | m_ShowLightmapResolutionOverlay: 1 29 | m_UseLegacyProbeSampleCount: 1 30 | m_AssetPipelineMode: 1 31 | m_CacheServerMode: 0 32 | m_CacheServerEndpoint: 33 | m_CacheServerNamespacePrefix: default 34 | m_CacheServerEnableDownload: 1 35 | m_CacheServerEnableUpload: 1 36 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 12 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | m_PreloadedShaders: [] 39 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 40 | type: 0} 41 | m_CustomRenderPipeline: {fileID: 0} 42 | m_TransparencySortMode: 0 43 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 44 | m_DefaultRenderingPath: 1 45 | m_DefaultMobileRenderingPath: 1 46 | m_TierSettings: [] 47 | m_LightmapStripping: 0 48 | m_FogStripping: 0 49 | m_InstancingStripping: 0 50 | m_LightmapKeepPlain: 1 51 | m_LightmapKeepDirCombined: 1 52 | m_LightmapKeepDynamicPlain: 1 53 | m_LightmapKeepDynamicDirCombined: 1 54 | m_LightmapKeepShadowMask: 1 55 | m_LightmapKeepSubtractive: 1 56 | m_FogKeepLinear: 1 57 | m_FogKeepExp: 1 58 | m_FogKeepExp2: 1 59 | m_AlbedoSwatchInfos: [] 60 | m_LightsUseLinearIntensity: 0 61 | m_LightsUseColorTemperature: 0 62 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_EnablePreviewPackages: 0 16 | m_EnablePackageDependencies: 0 17 | m_AdvancedSettingsExpanded: 1 18 | m_ScopedRegistriesSettingsExpanded: 1 19 | oneTimeWarningShown: 0 20 | m_Registries: 21 | - m_Id: main 22 | m_Name: 23 | m_Url: https://packages.unity.com 24 | m_Scopes: [] 25 | m_IsDefault: 1 26 | m_Capabilities: 7 27 | m_UserSelectedRegistryName: 28 | m_UserAddingNewScopedRegistry: 0 29 | m_RegistryInfoDraft: 30 | m_ErrorMessage: 31 | m_Original: 32 | m_Id: 33 | m_Name: 34 | m_Url: 35 | m_Scopes: [] 36 | m_IsDefault: 0 37 | m_Capabilities: 0 38 | m_Modified: 0 39 | m_Name: 40 | m_Url: 41 | m_Scopes: 42 | - 43 | m_SelectedScopeIndex: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_AutoSimulation: 1 23 | m_QueriesHitTriggers: 1 24 | m_QueriesStartInColliders: 1 25 | m_ChangeStopsCallbacks: 0 26 | m_CallbacksOnDisable: 1 27 | m_AutoSyncTransforms: 1 28 | m_AlwaysShowColliders: 0 29 | m_ShowColliderSleep: 1 30 | m_ShowColliderContacts: 0 31 | m_ShowColliderAABB: 0 32 | m_ContactArrowScale: 0.2 33 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 34 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 35 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 36 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 37 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 38 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2020.3.26f1 2 | m_EditorVersionWithRevision: 2020.3.26f1 (7298b473bc1a) 3 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | - name: SortingLayer0 45 | uniqueID: 146379811 46 | locked: 0 47 | - name: SortingLayer1 48 | uniqueID: 2158083597 49 | locked: 0 50 | - name: SortingLayer2 51 | uniqueID: 1583436447 52 | locked: 0 53 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | m_Enabled: 0 7 | m_TestMode: 0 8 | m_TestEventUrl: 9 | m_TestConfigUrl: 10 | m_TestInitMode: 0 11 | CrashReportingSettings: 12 | m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes 13 | m_NativeEventUrl: https://perf-events.cloud.unity3d.com/symbolicate 14 | m_Enabled: 0 15 | m_CaptureEditorExceptions: 1 16 | UnityPurchasingSettings: 17 | m_Enabled: 0 18 | m_TestMode: 0 19 | UnityAnalyticsSettings: 20 | m_Enabled: 0 21 | m_InitializeOnStartup: 1 22 | m_TestMode: 0 23 | m_TestEventUrl: 24 | m_TestConfigUrl: 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | -------------------------------------------------------------------------------- /ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } --------------------------------------------------------------------------------