com.wallstop-studios.unity-helpers 2.0.0-rc27 → 2.0.0-rc30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitattributes +63 -63
- package/.github/workflows/npm-publish.yml +60 -0
- package/.github/workflows/unity-package.yml +87 -0
- package/Editor/AnimationCopier.cs +158 -158
- package/Editor/AnimationCopier.cs.meta +2 -2
- package/Editor/AnimationCreator.cs +262 -262
- package/Editor/AnimationCreator.cs.meta +11 -11
- package/Editor/AnimationEventEditor.cs +887 -887
- package/Editor/AnimatorControllerCopier.cs +162 -162
- package/Editor/AnimatorControllerCopier.cs.meta +2 -2
- package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs +34 -34
- package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs.meta +2 -2
- package/Editor/CustomEditors.meta +2 -2
- package/Editor/EnsureTextureSizeWizard.cs +110 -110
- package/Editor/EnsureTextureSizeWizard.cs.meta +2 -2
- package/Editor/PrefabCheckWizard.cs +165 -165
- package/Editor/PrefabCheckWizard.cs.meta +11 -11
- package/Editor/SpriteSettingsApplier.cs +168 -168
- package/Editor/SpriteSettingsApplier.cs.meta +2 -2
- package/Editor/StringInListeDrawer.cs +56 -56
- package/Editor/TextureResizerWizard.cs +181 -181
- package/Editor/TextureResizerWizard.cs.meta +2 -2
- package/Editor/TextureSettingsApplier.cs +171 -171
- package/Editor/TextureSettingsApplier.cs.meta +2 -2
- package/Editor/Utils/EditorUtilities.cs +22 -22
- package/Editor/Utils/EditorUtilities.cs.meta +11 -11
- package/Editor/Utils/ReadOnlyPropertyDrawer.cs +26 -26
- package/Editor/Utils/ReadOnlyPropertyDrawer.cs.meta +11 -11
- package/Editor/Utils.meta +8 -8
- package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef +17 -17
- package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef.meta +7 -7
- package/LICENSE +21 -21
- package/LICENSE.md +6 -6
- package/LICENSE.meta +7 -7
- package/README.md +117 -117
- package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll.meta +33 -33
- package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml +223 -223
- package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml.meta +7 -7
- package/Runtime/Binaries/System.Text.Encodings.Web.dll.meta +33 -33
- package/Runtime/Binaries/System.Text.Encodings.Web.xml +935 -935
- package/Runtime/Binaries/System.Text.Encodings.Web.xml.meta +7 -7
- package/Runtime/Binaries/System.Text.Json.dll.meta +33 -33
- package/Runtime/Binaries/System.Text.Json.xml +4829 -4829
- package/Runtime/Binaries/System.Text.Json.xml.meta +7 -7
- package/Runtime/Binaries.meta +8 -8
- package/Runtime/Core/Attributes/AnimationEventAttribute.cs +131 -131
- package/Runtime/Core/Attributes/ChildComponentAttribute.cs +189 -189
- package/Runtime/Core/Attributes/KSerializableAttribute.cs +19 -19
- package/Runtime/Core/Attributes/NotNullAttribute.cs +32 -32
- package/Runtime/Core/Attributes/ParentComponent.cs +184 -184
- package/Runtime/Core/Attributes/ReadOnlyAttribute.cs +6 -6
- package/Runtime/Core/Attributes/RelationalComponentExtensions.cs +14 -14
- package/Runtime/Core/Attributes/SiblingComponentAttribute.cs +119 -119
- package/Runtime/Core/Attributes/SiblingComponentAttribute.cs.meta +11 -11
- package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs +101 -101
- package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs.meta +11 -11
- package/Runtime/Core/Attributes.meta +8 -8
- package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs +92 -92
- package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs +185 -185
- package/Runtime/Core/DataStructure/Adapters/KGuid.cs +305 -305
- package/Runtime/Core/DataStructure/Adapters/KVector2.cs +80 -80
- package/Runtime/Core/DataStructure/Circle.cs +50 -50
- package/Runtime/Core/DataStructure/CyclicBuffer.cs +155 -155
- package/Runtime/Core/DataStructure/ISpatialTree.cs +60 -60
- package/Runtime/Core/DataStructure/ISpatialTree.cs.meta +11 -11
- package/Runtime/Core/DataStructure/KDTree.cs +290 -290
- package/Runtime/Core/DataStructure/KDTree.cs.meta +11 -11
- package/Runtime/Core/DataStructure/QuadTree.cs +279 -279
- package/Runtime/Core/DataStructure/RTree.cs +336 -336
- package/Runtime/Core/DataStructure/RTree.cs.meta +11 -11
- package/Runtime/Core/DataStructure/StringWrapper.cs +91 -91
- package/Runtime/Core/DataStructure/TimedCache.cs +51 -51
- package/Runtime/Core/Extension/AnimatorExtensions.cs +25 -25
- package/Runtime/Core/Extension/CircleExtensions.cs +25 -25
- package/Runtime/Core/Extension/ColorExtensions.cs +338 -338
- package/Runtime/Core/Extension/DictionaryExtensions.cs +251 -251
- package/Runtime/Core/Extension/DirectionExtensions.cs +213 -213
- package/Runtime/Core/Extension/HashSetExtensions.cs +12 -12
- package/Runtime/Core/Extension/IEnumerableExtensions.cs +122 -122
- package/Runtime/Core/Extension/IListExtensions.cs +89 -89
- package/Runtime/Core/Extension/LoggingExtensions.cs +258 -258
- package/Runtime/Core/Extension/RandomExtensions.cs +109 -109
- package/Runtime/Core/Extension/StringExtensions.cs +151 -151
- package/Runtime/Core/Extension/UnityExtensions.cs +1607 -1607
- package/Runtime/Core/Helper/ArrayConverter.cs +39 -39
- package/Runtime/Core/Helper/ArrayConverter.cs.meta +2 -2
- package/Runtime/Core/Helper/AssignUtilities.cs +14 -14
- package/Runtime/Core/Helper/AssignUtilities.cs.meta +11 -11
- package/Runtime/Core/Helper/Enumerables.cs +17 -17
- package/Runtime/Core/Helper/Geometry.cs +43 -43
- package/Runtime/Core/Helper/Helpers.cs +722 -722
- package/Runtime/Core/Helper/Helpers.cs.meta +11 -11
- package/Runtime/Core/Helper/IterationHelpers.cs +32 -32
- package/Runtime/Core/Helper/IterationHelpers.cs.meta +11 -11
- package/Runtime/Core/Helper/LifetimeHelpers.cs +13 -13
- package/Runtime/Core/Helper/Objects.cs +767 -767
- package/Runtime/Core/Helper/Partials/LogHelpers.cs +13 -13
- package/Runtime/Core/Helper/Partials/LogHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials/MathHelpers.cs +30 -30
- package/Runtime/Core/Helper/Partials/MathHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials/ObjectHelpers.cs +388 -388
- package/Runtime/Core/Helper/Partials/ObjectHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials/TransformHelpers.cs +167 -167
- package/Runtime/Core/Helper/Partials/TransformHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials.meta +2 -2
- package/Runtime/Core/Helper/ReflectionHelpers.cs +152 -152
- package/Runtime/Core/Helper/ReflectionHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/SpriteHelpers.cs +86 -86
- package/Runtime/Core/Helper/SpriteHelpers.cs.meta +11 -11
- package/Runtime/Core/Helper/StringInList.cs +31 -31
- package/Runtime/Core/Helper/StringInList.cs.meta +11 -11
- package/Runtime/Core/Helper/WallMath.cs +166 -166
- package/Runtime/Core/Math/Line.cs +55 -55
- package/Runtime/Core/Math/Parabola.cs +47 -47
- package/Runtime/Core/Math/PointPolygonCheck.cs +36 -36
- package/Runtime/Core/Math/PointPolygonCheck.cs.meta +11 -11
- package/Runtime/Core/Math/Range.cs +92 -92
- package/Runtime/Core/Math/XXHash.cs +310 -310
- package/Runtime/Core/Math/XXHash.cs.meta +11 -11
- package/Runtime/Core/Model/Direction.cs +43 -43
- package/Runtime/Core/OneOf/FastOneOf.cs +152 -152
- package/Runtime/Core/OneOf/None.cs +4 -4
- package/Runtime/Core/Random/AbstractRandom.cs +561 -561
- package/Runtime/Core/Random/DotNetRandom.cs +52 -52
- package/Runtime/Core/Random/DotNetRandom.cs.meta +2 -2
- package/Runtime/Core/Random/IRandom.cs +160 -160
- package/Runtime/Core/Random/NativePcgRandom.cs +97 -97
- package/Runtime/Core/Random/PRNG.cs +7 -7
- package/Runtime/Core/Random/PRNG.cs.meta +2 -2
- package/Runtime/Core/Random/PcgRandom.cs +149 -149
- package/Runtime/Core/Random/PerlinNoise.cs +369 -369
- package/Runtime/Core/Random/PerlinNoise.cs.meta +2 -2
- package/Runtime/Core/Random/RandomState.cs +131 -131
- package/Runtime/Core/Random/RandomUtilities.cs +26 -26
- package/Runtime/Core/Random/RandomUtilities.cs.meta +11 -11
- package/Runtime/Core/Random/RomuDuo.cs +116 -116
- package/Runtime/Core/Random/RomuDuo.cs.meta +2 -2
- package/Runtime/Core/Random/SplitMix64.cs +94 -94
- package/Runtime/Core/Random/SplitMix64.cs.meta +2 -2
- package/Runtime/Core/Random/SquirrelRandom.cs +84 -84
- package/Runtime/Core/Random/SystemRandom.cs +162 -162
- package/Runtime/Core/Random/ThreadLocalRandom.cs +12 -12
- package/Runtime/Core/Random/UnityRandom.cs +57 -57
- package/Runtime/Core/Random/UnityRandom.cs.meta +11 -11
- package/Runtime/Core/Random/WyRandom.cs +121 -121
- package/Runtime/Core/Random/WyRandom.cs.meta +2 -2
- package/Runtime/Core/Random/XorShiftRandom.cs +47 -47
- package/Runtime/Core/Random/XorShiftRandom.cs.meta +11 -11
- package/Runtime/Core/Random/XorShiroRandom.cs +117 -117
- package/Runtime/Core/Random/XorShiroRandom.cs.meta +2 -2
- package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs +74 -74
- package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs +81 -81
- package/Runtime/Core/Serialization/Serializer.cs +184 -184
- package/Runtime/Core/Threading/SingleThreadedThreadPool.cs +107 -107
- package/Runtime/Protobuf-Net/System.Buffers.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Collections.Immutable.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Collections.Immutable.xml +5379 -5379
- package/Runtime/Protobuf-Net/System.Collections.Immutable.xml.meta +7 -7
- package/Runtime/Protobuf-Net/System.Numerics.Vectors.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.xml +290 -290
- package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.xml.meta +7 -7
- package/Runtime/Protobuf-Net/protobuf-net.Core.dll.meta +33 -33
- package/Runtime/Protobuf-Net/protobuf-net.dll.meta +33 -33
- package/Runtime/UI/LayeredImage.cs +364 -364
- package/Runtime/UI/LayeredImage.cs.meta +2 -2
- package/Runtime/UI.meta +2 -2
- package/Runtime/Utils/AnimationEventEqualityComparer.cs +161 -161
- package/Runtime/Utils/AnimatorEnumStateMachine.cs +88 -88
- package/Runtime/Utils/Buffers.cs +32 -32
- package/Runtime/Utils/CenterPointOffset.cs +30 -30
- package/Runtime/Utils/CenterPointOffset.cs.meta +2 -2
- package/Runtime/Utils/CircleLineRenderer.cs +134 -134
- package/Runtime/Utils/CoroutineHandler.cs +4 -4
- package/Runtime/Utils/CoroutineHandler.cs.meta +2 -2
- package/Runtime/Utils/MatchColliderToSprite.cs +94 -94
- package/Runtime/Utils/MatchColliderToSprite.cs.meta +2 -2
- package/Runtime/Utils/Oscillator.cs +27 -27
- package/Runtime/Utils/RuntimeSingleton.cs +57 -57
- package/Runtime/Utils/RuntimeSingleton.cs.meta +11 -11
- package/Runtime/Utils/SetTextureImportData.cs +69 -69
- package/Runtime/Utils/SpriteRendererMetadata.cs +312 -312
- package/Runtime/Utils/SpriteRendererMetadata.cs.meta +2 -2
- package/Runtime/Utils/SpriteRendererSyncer.cs +100 -100
- package/Runtime/Utils/SpriteRendererSyncer.cs.meta +2 -2
- package/Runtime/Utils/TextureScale.cs +179 -179
- package/Runtime/Utils/TextureScale.cs.meta +2 -2
- package/Runtime/WallstopStudios.UnityHelpers.asmdef +13 -13
- package/Tests/Runtime/Attributes/ChildComponentTests.cs +81 -81
- package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs +28 -28
- package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs +28 -28
- package/Tests/Runtime/Attributes/ParentComponentTests.cs +68 -68
- package/Tests/Runtime/Components/RelationalComponentTester.cs +34 -34
- package/Tests/Runtime/Components/RelationalComponentTester.cs.meta +2 -2
- package/Tests/Runtime/Components.meta +2 -2
- package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs +14 -14
- package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures/CyclicBufferTests.cs +324 -324
- package/Tests/Runtime/DataStructures/QuadTreeTests.cs +14 -14
- package/Tests/Runtime/DataStructures/QuadTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures/SpatialTreeTests.cs +130 -130
- package/Tests/Runtime/DataStructures/SpatialTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs +14 -14
- package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures.meta +8 -8
- package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs +439 -439
- package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/IListExtensionTests.cs +76 -76
- package/Tests/Runtime/Extensions/RandomExtensionTests.cs +27 -27
- package/Tests/Runtime/Extensions/RandomExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/StringExtensionTests.cs +31 -31
- package/Tests/Runtime/Extensions/StringExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions.meta +2 -2
- package/Tests/Runtime/Helper/ArrayConverterTests.cs +19 -19
- package/Tests/Runtime/Helper/ArrayConverterTests.cs.meta +2 -2
- package/Tests/Runtime/Helper/ObjectHelperTests.cs +402 -402
- package/Tests/Runtime/Helper/ObjectHelperTests.cs.meta +2 -2
- package/Tests/Runtime/Helper/WallMathTests.cs +233 -233
- package/Tests/Runtime/Helper/WallMathTests.cs.meta +2 -2
- package/Tests/Runtime/Helper.meta +2 -2
- package/Tests/Runtime/Performance/KDTreePerformanceTests.cs +14 -14
- package/Tests/Runtime/Performance/KDTreePerformanceTests.cs.meta +11 -11
- package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs +14 -14
- package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs.meta +11 -11
- package/Tests/Runtime/Performance/RandomPerformanceTests.cs +139 -139
- package/Tests/Runtime/Performance/RandomPerformanceTests.cs.meta +11 -11
- package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs +37 -37
- package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs.meta +2 -2
- package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs +154 -154
- package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs.meta +11 -11
- package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs +14 -14
- package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs.meta +11 -11
- package/Tests/Runtime/Performance.meta +8 -8
- package/Tests/Runtime/Random/DotNetRandomTests.cs +9 -9
- package/Tests/Runtime/Random/DotNetRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/PcgRandomTests.cs +9 -9
- package/Tests/Runtime/Random/PcgRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/RandomTestBase.cs +787 -787
- package/Tests/Runtime/Random/RandomTestBase.cs.meta +11 -11
- package/Tests/Runtime/Random/RomuDuoRandomTests.cs +9 -9
- package/Tests/Runtime/Random/RomuDuoRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/SplitMix64RandomTests.cs +9 -9
- package/Tests/Runtime/Random/SplitMix64RandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/SquirrelRandomTests.cs +14 -14
- package/Tests/Runtime/Random/SquirrelRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/SystemRandomTests.cs +10 -10
- package/Tests/Runtime/Random/SystemRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/UnityRandomTests.cs +9 -9
- package/Tests/Runtime/Random/UnityRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/WyRandomTests.cs +9 -9
- package/Tests/Runtime/Random/WyRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/XorShiftRandomTests.cs +9 -9
- package/Tests/Runtime/Random/XorShiftRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/XorShiroRandomTests.cs +9 -9
- package/Tests/Runtime/Random/XorShiroRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random.meta +8 -8
- package/Tests/Runtime/Serialization/JsonSerializationTest.cs +84 -84
- package/Tests/Runtime/Serialization/JsonSerializationTest.cs.meta +2 -2
- package/Tests/Runtime/Serialization.meta +2 -2
- package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs +399 -399
- package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs.meta +2 -2
- package/Tests/Runtime/Utils.meta +2 -2
- package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef +22 -22
- package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef.meta +7 -7
- package/Tests/Runtime.meta +8 -8
- package/package.json +38 -38
|
@@ -1,162 +1,162 @@
|
|
|
1
|
-
namespace UnityHelpers.Editor
|
|
2
|
-
{
|
|
3
|
-
#if UNITY_EDITOR
|
|
4
|
-
using System;
|
|
5
|
-
using System.IO;
|
|
6
|
-
using Core.Attributes;
|
|
7
|
-
using Core.Extension;
|
|
8
|
-
using UnityEditor;
|
|
9
|
-
using UnityEngine;
|
|
10
|
-
using Utils;
|
|
11
|
-
|
|
12
|
-
public sealed class AnimatorControllerCopier : ScriptableWizard
|
|
13
|
-
{
|
|
14
|
-
private string _fullSourcePath;
|
|
15
|
-
private string _fullDestinationPath;
|
|
16
|
-
|
|
17
|
-
[ReadOnly]
|
|
18
|
-
public string controllerSourcePath;
|
|
19
|
-
|
|
20
|
-
[ReadOnly]
|
|
21
|
-
public string controllerDestinationpath;
|
|
22
|
-
|
|
23
|
-
[MenuItem("Tools/Unity Helpers/Animator Controller Copier")]
|
|
24
|
-
public static void CopyAnimations()
|
|
25
|
-
{
|
|
26
|
-
_ = DisplayWizard<AnimatorControllerCopier>("Animator Controller Copier", "Copy");
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
protected override bool DrawWizardGUI()
|
|
30
|
-
{
|
|
31
|
-
bool returnValue = base.DrawWizardGUI();
|
|
32
|
-
|
|
33
|
-
if (GUILayout.Button("Set Animator Controller Source Path"))
|
|
34
|
-
{
|
|
35
|
-
string sourcePath = EditorUtility.OpenFolderPanel(
|
|
36
|
-
"Select Animator Controller Source Path",
|
|
37
|
-
EditorUtilities.GetCurrentPathOfProjectWindow(),
|
|
38
|
-
string.Empty
|
|
39
|
-
);
|
|
40
|
-
int assetIndex = sourcePath?.IndexOf("Assets", StringComparison.Ordinal) ?? -1;
|
|
41
|
-
if (assetIndex < 0)
|
|
42
|
-
{
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
_fullSourcePath = controllerSourcePath = sourcePath ?? string.Empty;
|
|
47
|
-
controllerSourcePath = controllerSourcePath.Substring(assetIndex);
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
if (GUILayout.Button("Set Animator Controller Destination Path"))
|
|
52
|
-
{
|
|
53
|
-
string sourcePath = EditorUtility.OpenFolderPanel(
|
|
54
|
-
"Select Animator Controller Destination Path",
|
|
55
|
-
EditorUtilities.GetCurrentPathOfProjectWindow(),
|
|
56
|
-
string.Empty
|
|
57
|
-
);
|
|
58
|
-
int assetIndex = sourcePath?.IndexOf("Assets", StringComparison.Ordinal) ?? -1;
|
|
59
|
-
if (assetIndex < 0)
|
|
60
|
-
{
|
|
61
|
-
return false;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
_fullDestinationPath = controllerDestinationpath = sourcePath ?? string.Empty;
|
|
65
|
-
controllerDestinationpath = controllerDestinationpath.Substring(assetIndex);
|
|
66
|
-
return true;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return returnValue;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
private void OnWizardCreate()
|
|
73
|
-
{
|
|
74
|
-
if (string.IsNullOrEmpty(_fullSourcePath) || string.IsNullOrEmpty(_fullDestinationPath))
|
|
75
|
-
{
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
if (
|
|
80
|
-
string.IsNullOrEmpty(controllerSourcePath)
|
|
81
|
-
|| string.IsNullOrEmpty(controllerDestinationpath)
|
|
82
|
-
)
|
|
83
|
-
{
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
int processed = 0;
|
|
88
|
-
foreach (
|
|
89
|
-
string assetGuid in AssetDatabase.FindAssets(
|
|
90
|
-
"t:AnimatorController",
|
|
91
|
-
new[] { controllerSourcePath }
|
|
92
|
-
)
|
|
93
|
-
)
|
|
94
|
-
{
|
|
95
|
-
string path = AssetDatabase.GUIDToAssetPath(assetGuid);
|
|
96
|
-
|
|
97
|
-
RuntimeAnimatorController animatorController =
|
|
98
|
-
AssetDatabase.LoadAssetAtPath<RuntimeAnimatorController>(path);
|
|
99
|
-
if (animatorController == null)
|
|
100
|
-
{
|
|
101
|
-
this.LogError(
|
|
102
|
-
"Invalid Animator Controller (null) found at path '{0}', skipping.",
|
|
103
|
-
path
|
|
104
|
-
);
|
|
105
|
-
continue;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
string prefix = animatorController.name;
|
|
109
|
-
string relativePath = path.Substring(controllerSourcePath.Length);
|
|
110
|
-
int prefixIndex = relativePath.LastIndexOf(
|
|
111
|
-
prefix,
|
|
112
|
-
StringComparison.OrdinalIgnoreCase
|
|
113
|
-
);
|
|
114
|
-
if (prefixIndex < 0)
|
|
115
|
-
{
|
|
116
|
-
this.LogWarn(
|
|
117
|
-
"Unsupported AnimatorController at '{0}', expected to be prefixed by '{1}'.",
|
|
118
|
-
path,
|
|
119
|
-
prefix
|
|
120
|
-
);
|
|
121
|
-
continue;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
string partialPath = relativePath.Substring(0, prefixIndex);
|
|
125
|
-
string outputPath = _fullDestinationPath + partialPath;
|
|
126
|
-
|
|
127
|
-
if (!Directory.Exists(outputPath))
|
|
128
|
-
{
|
|
129
|
-
_ = Directory.CreateDirectory(outputPath);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
string destination =
|
|
133
|
-
controllerDestinationpath + partialPath + relativePath.Substring(prefixIndex);
|
|
134
|
-
bool copySuccessful = AssetDatabase.CopyAsset(path, destination);
|
|
135
|
-
if (copySuccessful)
|
|
136
|
-
{
|
|
137
|
-
bool deleteSuccessful = AssetDatabase.DeleteAsset(path);
|
|
138
|
-
if (!deleteSuccessful)
|
|
139
|
-
{
|
|
140
|
-
this.LogError(
|
|
141
|
-
"Failed to delete Animator Controller asset at path '{0}'.",
|
|
142
|
-
path
|
|
143
|
-
);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
++processed;
|
|
147
|
-
}
|
|
148
|
-
else
|
|
149
|
-
{
|
|
150
|
-
this.LogError(
|
|
151
|
-
"Failed to copy Animator Controller from '{0}' to '{1}'.",
|
|
152
|
-
path,
|
|
153
|
-
destination
|
|
154
|
-
);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
this.Log($"Processed {processed} Animator Controllers.");
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
#endif
|
|
162
|
-
}
|
|
1
|
+
namespace UnityHelpers.Editor
|
|
2
|
+
{
|
|
3
|
+
#if UNITY_EDITOR
|
|
4
|
+
using System;
|
|
5
|
+
using System.IO;
|
|
6
|
+
using Core.Attributes;
|
|
7
|
+
using Core.Extension;
|
|
8
|
+
using UnityEditor;
|
|
9
|
+
using UnityEngine;
|
|
10
|
+
using Utils;
|
|
11
|
+
|
|
12
|
+
public sealed class AnimatorControllerCopier : ScriptableWizard
|
|
13
|
+
{
|
|
14
|
+
private string _fullSourcePath;
|
|
15
|
+
private string _fullDestinationPath;
|
|
16
|
+
|
|
17
|
+
[ReadOnly]
|
|
18
|
+
public string controllerSourcePath;
|
|
19
|
+
|
|
20
|
+
[ReadOnly]
|
|
21
|
+
public string controllerDestinationpath;
|
|
22
|
+
|
|
23
|
+
[MenuItem("Tools/Unity Helpers/Animator Controller Copier")]
|
|
24
|
+
public static void CopyAnimations()
|
|
25
|
+
{
|
|
26
|
+
_ = DisplayWizard<AnimatorControllerCopier>("Animator Controller Copier", "Copy");
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
protected override bool DrawWizardGUI()
|
|
30
|
+
{
|
|
31
|
+
bool returnValue = base.DrawWizardGUI();
|
|
32
|
+
|
|
33
|
+
if (GUILayout.Button("Set Animator Controller Source Path"))
|
|
34
|
+
{
|
|
35
|
+
string sourcePath = EditorUtility.OpenFolderPanel(
|
|
36
|
+
"Select Animator Controller Source Path",
|
|
37
|
+
EditorUtilities.GetCurrentPathOfProjectWindow(),
|
|
38
|
+
string.Empty
|
|
39
|
+
);
|
|
40
|
+
int assetIndex = sourcePath?.IndexOf("Assets", StringComparison.Ordinal) ?? -1;
|
|
41
|
+
if (assetIndex < 0)
|
|
42
|
+
{
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
_fullSourcePath = controllerSourcePath = sourcePath ?? string.Empty;
|
|
47
|
+
controllerSourcePath = controllerSourcePath.Substring(assetIndex);
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (GUILayout.Button("Set Animator Controller Destination Path"))
|
|
52
|
+
{
|
|
53
|
+
string sourcePath = EditorUtility.OpenFolderPanel(
|
|
54
|
+
"Select Animator Controller Destination Path",
|
|
55
|
+
EditorUtilities.GetCurrentPathOfProjectWindow(),
|
|
56
|
+
string.Empty
|
|
57
|
+
);
|
|
58
|
+
int assetIndex = sourcePath?.IndexOf("Assets", StringComparison.Ordinal) ?? -1;
|
|
59
|
+
if (assetIndex < 0)
|
|
60
|
+
{
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
_fullDestinationPath = controllerDestinationpath = sourcePath ?? string.Empty;
|
|
65
|
+
controllerDestinationpath = controllerDestinationpath.Substring(assetIndex);
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return returnValue;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
private void OnWizardCreate()
|
|
73
|
+
{
|
|
74
|
+
if (string.IsNullOrEmpty(_fullSourcePath) || string.IsNullOrEmpty(_fullDestinationPath))
|
|
75
|
+
{
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if (
|
|
80
|
+
string.IsNullOrEmpty(controllerSourcePath)
|
|
81
|
+
|| string.IsNullOrEmpty(controllerDestinationpath)
|
|
82
|
+
)
|
|
83
|
+
{
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
int processed = 0;
|
|
88
|
+
foreach (
|
|
89
|
+
string assetGuid in AssetDatabase.FindAssets(
|
|
90
|
+
"t:AnimatorController",
|
|
91
|
+
new[] { controllerSourcePath }
|
|
92
|
+
)
|
|
93
|
+
)
|
|
94
|
+
{
|
|
95
|
+
string path = AssetDatabase.GUIDToAssetPath(assetGuid);
|
|
96
|
+
|
|
97
|
+
RuntimeAnimatorController animatorController =
|
|
98
|
+
AssetDatabase.LoadAssetAtPath<RuntimeAnimatorController>(path);
|
|
99
|
+
if (animatorController == null)
|
|
100
|
+
{
|
|
101
|
+
this.LogError(
|
|
102
|
+
"Invalid Animator Controller (null) found at path '{0}', skipping.",
|
|
103
|
+
path
|
|
104
|
+
);
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
string prefix = animatorController.name;
|
|
109
|
+
string relativePath = path.Substring(controllerSourcePath.Length);
|
|
110
|
+
int prefixIndex = relativePath.LastIndexOf(
|
|
111
|
+
prefix,
|
|
112
|
+
StringComparison.OrdinalIgnoreCase
|
|
113
|
+
);
|
|
114
|
+
if (prefixIndex < 0)
|
|
115
|
+
{
|
|
116
|
+
this.LogWarn(
|
|
117
|
+
"Unsupported AnimatorController at '{0}', expected to be prefixed by '{1}'.",
|
|
118
|
+
path,
|
|
119
|
+
prefix
|
|
120
|
+
);
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
string partialPath = relativePath.Substring(0, prefixIndex);
|
|
125
|
+
string outputPath = _fullDestinationPath + partialPath;
|
|
126
|
+
|
|
127
|
+
if (!Directory.Exists(outputPath))
|
|
128
|
+
{
|
|
129
|
+
_ = Directory.CreateDirectory(outputPath);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
string destination =
|
|
133
|
+
controllerDestinationpath + partialPath + relativePath.Substring(prefixIndex);
|
|
134
|
+
bool copySuccessful = AssetDatabase.CopyAsset(path, destination);
|
|
135
|
+
if (copySuccessful)
|
|
136
|
+
{
|
|
137
|
+
bool deleteSuccessful = AssetDatabase.DeleteAsset(path);
|
|
138
|
+
if (!deleteSuccessful)
|
|
139
|
+
{
|
|
140
|
+
this.LogError(
|
|
141
|
+
"Failed to delete Animator Controller asset at path '{0}'.",
|
|
142
|
+
path
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
++processed;
|
|
147
|
+
}
|
|
148
|
+
else
|
|
149
|
+
{
|
|
150
|
+
this.LogError(
|
|
151
|
+
"Failed to copy Animator Controller from '{0}' to '{1}'.",
|
|
152
|
+
path,
|
|
153
|
+
destination
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
this.Log($"Processed {processed} Animator Controllers.");
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
#endif
|
|
162
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: f0d39dce94454b8d9cb3fa0599ae02cc
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: f0d39dce94454b8d9cb3fa0599ae02cc
|
|
3
3
|
timeCreated: 1720824927
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
namespace UnityHelpers.Editor.CustomEditors
|
|
2
|
-
{
|
|
3
|
-
#if UNITY_EDITOR
|
|
4
|
-
using Core.Extension;
|
|
5
|
-
using UnityEditor;
|
|
6
|
-
using UnityEngine;
|
|
7
|
-
using UnityHelpers.Utils;
|
|
8
|
-
|
|
9
|
-
[CustomEditor(typeof(MatchColliderToSprite))]
|
|
10
|
-
public sealed class MatchColliderToSpriteEditor : Editor
|
|
11
|
-
{
|
|
12
|
-
public override void OnInspectorGUI()
|
|
13
|
-
{
|
|
14
|
-
base.OnInspectorGUI();
|
|
15
|
-
|
|
16
|
-
MatchColliderToSprite matchColliderToSprite = target as MatchColliderToSprite;
|
|
17
|
-
if (matchColliderToSprite == null)
|
|
18
|
-
{
|
|
19
|
-
this.LogError(
|
|
20
|
-
"Target was of type {0}, expected {1}.",
|
|
21
|
-
target?.GetType(),
|
|
22
|
-
typeof(MatchColliderToSprite)
|
|
23
|
-
);
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
if (GUILayout.Button("MatchColliderToSprite"))
|
|
28
|
-
{
|
|
29
|
-
matchColliderToSprite.OnValidate();
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
#endif
|
|
34
|
-
}
|
|
1
|
+
namespace UnityHelpers.Editor.CustomEditors
|
|
2
|
+
{
|
|
3
|
+
#if UNITY_EDITOR
|
|
4
|
+
using Core.Extension;
|
|
5
|
+
using UnityEditor;
|
|
6
|
+
using UnityEngine;
|
|
7
|
+
using UnityHelpers.Utils;
|
|
8
|
+
|
|
9
|
+
[CustomEditor(typeof(MatchColliderToSprite))]
|
|
10
|
+
public sealed class MatchColliderToSpriteEditor : Editor
|
|
11
|
+
{
|
|
12
|
+
public override void OnInspectorGUI()
|
|
13
|
+
{
|
|
14
|
+
base.OnInspectorGUI();
|
|
15
|
+
|
|
16
|
+
MatchColliderToSprite matchColliderToSprite = target as MatchColliderToSprite;
|
|
17
|
+
if (matchColliderToSprite == null)
|
|
18
|
+
{
|
|
19
|
+
this.LogError(
|
|
20
|
+
"Target was of type {0}, expected {1}.",
|
|
21
|
+
target?.GetType(),
|
|
22
|
+
typeof(MatchColliderToSprite)
|
|
23
|
+
);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (GUILayout.Button("MatchColliderToSprite"))
|
|
28
|
+
{
|
|
29
|
+
matchColliderToSprite.OnValidate();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
#endif
|
|
34
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 47c2b6576aee42869685c6b9c1d565bd
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 47c2b6576aee42869685c6b9c1d565bd
|
|
3
3
|
timeCreated: 1720738619
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 2edcc08721b94e54b6d2795c2000eee6
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 2edcc08721b94e54b6d2795c2000eee6
|
|
3
3
|
timeCreated: 1720738611
|
|
@@ -1,110 +1,110 @@
|
|
|
1
|
-
namespace UnityHelpers.Editor
|
|
2
|
-
{
|
|
3
|
-
using System.Collections.Generic;
|
|
4
|
-
using System.Linq;
|
|
5
|
-
using Core.Extension;
|
|
6
|
-
using UnityEditor;
|
|
7
|
-
using UnityEngine;
|
|
8
|
-
|
|
9
|
-
public sealed class EnsureTextureSizeWizard : ScriptableWizard
|
|
10
|
-
{
|
|
11
|
-
public List<Texture2D> textures = new();
|
|
12
|
-
|
|
13
|
-
public List<Object> textureSourcePaths = new();
|
|
14
|
-
|
|
15
|
-
[MenuItem("Tools/Unity Helpers/Ensure Texture Size")]
|
|
16
|
-
public static void EnsureSizes()
|
|
17
|
-
{
|
|
18
|
-
_ = DisplayWizard<EnsureTextureSizeWizard>("Ensure Texture Size", "Run");
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
private void OnWizardCreate()
|
|
22
|
-
{
|
|
23
|
-
textures ??= new List<Texture2D>();
|
|
24
|
-
textureSourcePaths ??= new List<Object>();
|
|
25
|
-
HashSet<string> texturePath = new();
|
|
26
|
-
foreach (Object textureSource in textureSourcePaths)
|
|
27
|
-
{
|
|
28
|
-
string assetPath = AssetDatabase.GetAssetPath(textureSource);
|
|
29
|
-
if (!string.IsNullOrWhiteSpace(assetPath))
|
|
30
|
-
{
|
|
31
|
-
_ = texturePath.Add(assetPath);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
if (texturePath.Any())
|
|
36
|
-
{
|
|
37
|
-
foreach (
|
|
38
|
-
string assetGuid in AssetDatabase.FindAssets(
|
|
39
|
-
"t:texture2D",
|
|
40
|
-
texturePath.ToArray()
|
|
41
|
-
)
|
|
42
|
-
)
|
|
43
|
-
{
|
|
44
|
-
string path = AssetDatabase.GUIDToAssetPath(assetGuid);
|
|
45
|
-
if (string.IsNullOrWhiteSpace(path))
|
|
46
|
-
{
|
|
47
|
-
continue;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
Texture2D texture = AssetDatabase.LoadAssetAtPath<Texture2D>(path);
|
|
51
|
-
if (texture != null)
|
|
52
|
-
{
|
|
53
|
-
textures.Add(texture);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
textures = textures.Distinct().OrderBy(texture => texture.name).ToList();
|
|
59
|
-
if (textures.Count <= 0)
|
|
60
|
-
{
|
|
61
|
-
this.Log("Failed to find any texture paths.");
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
int changedCount = 0;
|
|
66
|
-
foreach (Texture2D inputTexture in textures)
|
|
67
|
-
{
|
|
68
|
-
Texture2D texture = inputTexture;
|
|
69
|
-
string assetPath = AssetDatabase.GetAssetPath(texture);
|
|
70
|
-
if (string.IsNullOrWhiteSpace(assetPath))
|
|
71
|
-
{
|
|
72
|
-
continue;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
TextureImporter tImporter = AssetImporter.GetAtPath(assetPath) as TextureImporter;
|
|
76
|
-
if (tImporter == null)
|
|
77
|
-
{
|
|
78
|
-
continue;
|
|
79
|
-
}
|
|
80
|
-
tImporter.GetSourceTextureWidthAndHeight(out int width, out int height);
|
|
81
|
-
|
|
82
|
-
float size = Mathf.Max(width, height);
|
|
83
|
-
int textureSize = tImporter.maxTextureSize;
|
|
84
|
-
bool changed = false;
|
|
85
|
-
while (textureSize < size)
|
|
86
|
-
{
|
|
87
|
-
changed = true;
|
|
88
|
-
textureSize <<= 1;
|
|
89
|
-
}
|
|
90
|
-
tImporter.maxTextureSize = textureSize;
|
|
91
|
-
|
|
92
|
-
if (changed)
|
|
93
|
-
{
|
|
94
|
-
changedCount++;
|
|
95
|
-
tImporter.SaveAndReimport();
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
if (changedCount != 0)
|
|
100
|
-
{
|
|
101
|
-
this.Log($"Updated {changedCount} textures.");
|
|
102
|
-
AssetDatabase.Refresh();
|
|
103
|
-
}
|
|
104
|
-
else
|
|
105
|
-
{
|
|
106
|
-
this.Log("No textures updated.");
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
1
|
+
namespace UnityHelpers.Editor
|
|
2
|
+
{
|
|
3
|
+
using System.Collections.Generic;
|
|
4
|
+
using System.Linq;
|
|
5
|
+
using Core.Extension;
|
|
6
|
+
using UnityEditor;
|
|
7
|
+
using UnityEngine;
|
|
8
|
+
|
|
9
|
+
public sealed class EnsureTextureSizeWizard : ScriptableWizard
|
|
10
|
+
{
|
|
11
|
+
public List<Texture2D> textures = new();
|
|
12
|
+
|
|
13
|
+
public List<Object> textureSourcePaths = new();
|
|
14
|
+
|
|
15
|
+
[MenuItem("Tools/Unity Helpers/Ensure Texture Size")]
|
|
16
|
+
public static void EnsureSizes()
|
|
17
|
+
{
|
|
18
|
+
_ = DisplayWizard<EnsureTextureSizeWizard>("Ensure Texture Size", "Run");
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
private void OnWizardCreate()
|
|
22
|
+
{
|
|
23
|
+
textures ??= new List<Texture2D>();
|
|
24
|
+
textureSourcePaths ??= new List<Object>();
|
|
25
|
+
HashSet<string> texturePath = new();
|
|
26
|
+
foreach (Object textureSource in textureSourcePaths)
|
|
27
|
+
{
|
|
28
|
+
string assetPath = AssetDatabase.GetAssetPath(textureSource);
|
|
29
|
+
if (!string.IsNullOrWhiteSpace(assetPath))
|
|
30
|
+
{
|
|
31
|
+
_ = texturePath.Add(assetPath);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (texturePath.Any())
|
|
36
|
+
{
|
|
37
|
+
foreach (
|
|
38
|
+
string assetGuid in AssetDatabase.FindAssets(
|
|
39
|
+
"t:texture2D",
|
|
40
|
+
texturePath.ToArray()
|
|
41
|
+
)
|
|
42
|
+
)
|
|
43
|
+
{
|
|
44
|
+
string path = AssetDatabase.GUIDToAssetPath(assetGuid);
|
|
45
|
+
if (string.IsNullOrWhiteSpace(path))
|
|
46
|
+
{
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
Texture2D texture = AssetDatabase.LoadAssetAtPath<Texture2D>(path);
|
|
51
|
+
if (texture != null)
|
|
52
|
+
{
|
|
53
|
+
textures.Add(texture);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
textures = textures.Distinct().OrderBy(texture => texture.name).ToList();
|
|
59
|
+
if (textures.Count <= 0)
|
|
60
|
+
{
|
|
61
|
+
this.Log("Failed to find any texture paths.");
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
int changedCount = 0;
|
|
66
|
+
foreach (Texture2D inputTexture in textures)
|
|
67
|
+
{
|
|
68
|
+
Texture2D texture = inputTexture;
|
|
69
|
+
string assetPath = AssetDatabase.GetAssetPath(texture);
|
|
70
|
+
if (string.IsNullOrWhiteSpace(assetPath))
|
|
71
|
+
{
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
TextureImporter tImporter = AssetImporter.GetAtPath(assetPath) as TextureImporter;
|
|
76
|
+
if (tImporter == null)
|
|
77
|
+
{
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
tImporter.GetSourceTextureWidthAndHeight(out int width, out int height);
|
|
81
|
+
|
|
82
|
+
float size = Mathf.Max(width, height);
|
|
83
|
+
int textureSize = tImporter.maxTextureSize;
|
|
84
|
+
bool changed = false;
|
|
85
|
+
while (textureSize < size)
|
|
86
|
+
{
|
|
87
|
+
changed = true;
|
|
88
|
+
textureSize <<= 1;
|
|
89
|
+
}
|
|
90
|
+
tImporter.maxTextureSize = textureSize;
|
|
91
|
+
|
|
92
|
+
if (changed)
|
|
93
|
+
{
|
|
94
|
+
changedCount++;
|
|
95
|
+
tImporter.SaveAndReimport();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (changedCount != 0)
|
|
100
|
+
{
|
|
101
|
+
this.Log($"Updated {changedCount} textures.");
|
|
102
|
+
AssetDatabase.Refresh();
|
|
103
|
+
}
|
|
104
|
+
else
|
|
105
|
+
{
|
|
106
|
+
this.Log("No textures updated.");
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 8e55e0cc59d640b3affc8f4d9f865c50
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 8e55e0cc59d640b3affc8f4d9f865c50
|
|
3
3
|
timeCreated: 1735605040
|