├── .gitignore
├── Assets
├── Tools.meta
└── Tools
│ ├── AudioFactory.meta
│ ├── AudioFactory
│ ├── Captures~
│ │ ├── AudioClipper.gif
│ │ └── AudioVolumeUnify.jpg
│ ├── Documentation.meta
│ ├── Documentation
│ │ ├── AudioFactory.md
│ │ └── AudioFactory.md.meta
│ ├── Editor.meta
│ ├── Editor
│ │ ├── AudioClipWriter.cs
│ │ ├── AudioClipWriter.cs.meta
│ │ ├── AudioClipper.cs
│ │ ├── AudioClipper.cs.meta
│ │ ├── AudioVolumeUnify.cs
│ │ ├── AudioVolumeUnify.cs.meta
│ │ ├── Lame.meta
│ │ ├── Lame
│ │ │ ├── LibMp3Lame.cs
│ │ │ ├── LibMp3Lame.cs.meta
│ │ │ ├── MP3FileWriter.cs
│ │ │ ├── MP3FileWriter.cs.meta
│ │ │ ├── NAudio.meta
│ │ │ └── NAudio
│ │ │ │ ├── AdpcmWaveFormat.cs
│ │ │ │ ├── AdpcmWaveFormat.cs.meta
│ │ │ │ ├── AudioMediaSubtypes.cs
│ │ │ │ ├── AudioMediaSubtypes.cs.meta
│ │ │ │ ├── Gsm610WaveFormat.cs
│ │ │ │ ├── Gsm610WaveFormat.cs.meta
│ │ │ │ ├── IWaveProvider.cs
│ │ │ │ ├── IWaveProvider.cs.meta
│ │ │ │ ├── RiffChunk.cs
│ │ │ │ ├── RiffChunk.cs.meta
│ │ │ │ ├── WaveFileReader.cs
│ │ │ │ ├── WaveFileReader.cs.meta
│ │ │ │ ├── WaveFormat.cs
│ │ │ │ ├── WaveFormat.cs.meta
│ │ │ │ ├── WaveFormatEncoding.cs
│ │ │ │ ├── WaveFormatEncoding.cs.meta
│ │ │ │ ├── WaveFormatExtensible.cs
│ │ │ │ ├── WaveFormatExtensible.cs.meta
│ │ │ │ ├── WaveFormatExtraData.cs
│ │ │ │ ├── WaveFormatExtraData.cs.meta
│ │ │ │ ├── WaveStream.cs
│ │ │ │ └── WaveStream.cs.meta
│ │ ├── PopupContent.cs
│ │ ├── PopupContent.cs.meta
│ │ ├── VorbisPlugin.meta
│ │ ├── VorbisPlugin
│ │ │ ├── Impl.meta
│ │ │ ├── Impl
│ │ │ │ ├── VorbisPluginImpl.asmdef
│ │ │ │ ├── VorbisPluginImpl.asmdef.meta
│ │ │ │ ├── src.meta
│ │ │ │ └── src
│ │ │ │ │ ├── NativeBridge.cs
│ │ │ │ │ ├── NativeBridge.cs.meta
│ │ │ │ │ ├── NativeErrorCode.cs
│ │ │ │ │ ├── NativeErrorCode.cs.meta
│ │ │ │ │ ├── NativeErrorException.cs
│ │ │ │ │ ├── NativeErrorException.cs.meta
│ │ │ │ │ ├── VorbisPlugin.cs
│ │ │ │ │ └── VorbisPlugin.cs.meta
│ │ │ ├── Plugins.meta
│ │ │ └── Plugins
│ │ │ │ ├── OSX.meta
│ │ │ │ ├── OSX
│ │ │ │ ├── libVorbisPlugin.dylib
│ │ │ │ └── libVorbisPlugin.dylib.meta
│ │ │ │ ├── Windows.meta
│ │ │ │ └── Windows
│ │ │ │ ├── x86.meta
│ │ │ │ ├── x86
│ │ │ │ ├── VorbisPlugin.dll
│ │ │ │ └── VorbisPlugin.dll.meta
│ │ │ │ ├── x86_64.meta
│ │ │ │ └── x86_64
│ │ │ │ ├── VorbisPlugin.dll
│ │ │ │ └── VorbisPlugin.dll.meta
│ │ ├── WYTools.AudioFactory.Editor.asmdef
│ │ └── WYTools.AudioFactory.Editor.asmdef.meta
│ ├── README.md
│ ├── README.md.meta
│ ├── package.json
│ └── package.json.meta
│ ├── BatchRename.meta
│ ├── BatchRename
│ ├── Captures~
│ │ └── BatchRename.gif
│ ├── Documentation.meta
│ ├── Documentation
│ │ ├── BatchRename.md
│ │ └── BatchRename.md.meta
│ ├── Editor.meta
│ ├── Editor
│ │ ├── BatchRename.cs
│ │ ├── BatchRename.cs.meta
│ │ ├── WYTools.BatchRename.Editor.asmdef
│ │ └── WYTools.BatchRename.Editor.asmdef.meta
│ ├── README.md
│ ├── README.md.meta
│ ├── package.json
│ └── package.json.meta
│ ├── EasySplinePath2D.meta
│ ├── EasySplinePath2D
│ ├── Demo.meta
│ ├── Demo
│ │ ├── DemoScene.unity
│ │ ├── DemoScene.unity.meta
│ │ ├── DynamicPath.cs
│ │ ├── DynamicPath.cs.meta
│ │ ├── EasyRoad.cs
│ │ ├── EasyRoad.cs.meta
│ │ ├── Editor.meta
│ │ ├── Editor
│ │ │ ├── EasyRoadEditor.cs
│ │ │ └── EasyRoadEditor.cs.meta
│ │ ├── FollowPath.cs
│ │ ├── FollowPath.cs.meta
│ │ ├── Materials.meta
│ │ ├── Materials
│ │ │ ├── FloorMat.mat
│ │ │ ├── FloorMat.mat.meta
│ │ │ ├── RoadMat.mat
│ │ │ └── RoadMat.mat.meta
│ │ ├── Sprites.meta
│ │ └── Sprites
│ │ │ ├── Blue_Car.png
│ │ │ ├── Blue_Car.png.meta
│ │ │ ├── FloorTile_S.jpg
│ │ │ ├── FloorTile_S.jpg.meta
│ │ │ ├── Materials.meta
│ │ │ ├── Materials
│ │ │ ├── Zeppelin.mat
│ │ │ └── Zeppelin.mat.meta
│ │ │ ├── Zeppelin.png
│ │ │ ├── Zeppelin.png.meta
│ │ │ ├── track.png
│ │ │ └── track.png.meta
│ ├── Documentation.meta
│ ├── Documentation
│ │ ├── EasySplinePath2D_Documentation.pdf
│ │ ├── EasySplinePath2D_Documentation.pdf.meta
│ │ ├── EasySplinePath2D_ScriptingAPI.pdf
│ │ └── EasySplinePath2D_ScriptingAPI.pdf.meta
│ ├── EasySplinePath2D.prefab
│ ├── EasySplinePath2D.prefab.meta
│ ├── Scripts.meta
│ └── Scripts
│ │ ├── Bezier.cs
│ │ ├── Bezier.cs.meta
│ │ ├── EasySplinePath2D.cs
│ │ ├── EasySplinePath2D.cs.meta
│ │ ├── Editor.meta
│ │ ├── Editor
│ │ ├── EasySplinePath2DEditor.cs
│ │ ├── EasySplinePath2DEditor.cs.meta
│ │ ├── Resources.meta
│ │ └── Resources
│ │ │ ├── EasySplinePath2D.meta
│ │ │ └── EasySplinePath2D
│ │ │ ├── add.png
│ │ │ ├── add.png.meta
│ │ │ ├── boton_recto.png
│ │ │ ├── boton_recto.png.meta
│ │ │ ├── boton_recto_u.png
│ │ │ ├── boton_recto_u.png.meta
│ │ │ ├── control.png
│ │ │ ├── control.png.meta
│ │ │ ├── curve.png
│ │ │ ├── curve.png.meta
│ │ │ ├── mode_auto.png
│ │ │ ├── mode_auto.png.meta
│ │ │ ├── mode_auto_u.png
│ │ │ ├── mode_auto_u.png.meta
│ │ │ ├── mode_free.png
│ │ │ ├── mode_free.png.meta
│ │ │ ├── mode_free_u.png
│ │ │ ├── mode_free_u.png.meta
│ │ │ ├── mode_lock.png
│ │ │ ├── mode_lock.png.meta
│ │ │ ├── mode_lock_u.png
│ │ │ ├── mode_lock_u.png.meta
│ │ │ ├── node.png
│ │ │ ├── node.png.meta
│ │ │ ├── node_delete.png
│ │ │ ├── node_delete.png.meta
│ │ │ ├── node_selected.png
│ │ │ ├── node_selected.png.meta
│ │ │ ├── nodo_auto.png
│ │ │ ├── nodo_auto.png.meta
│ │ │ ├── nodo_control.png
│ │ │ ├── nodo_control.png.meta
│ │ │ ├── nodo_control_free.png
│ │ │ ├── nodo_control_free.png.meta
│ │ │ ├── rect.png
│ │ │ └── rect.png.meta
│ │ ├── SplinePath2D.cs
│ │ ├── SplinePath2D.cs.meta
│ │ ├── SplinePrinter.cs
│ │ └── SplinePrinter.cs.meta
│ ├── EasySplinePath2DPlus.meta
│ ├── EasySplinePath2DPlus
│ ├── Captures~
│ │ └── EasySplinePath2DPlus.gif
│ ├── Demo.meta
│ ├── Demo
│ │ ├── DemoScene.unity
│ │ ├── DemoScene.unity.meta
│ │ ├── EasyRoadPlus.cs
│ │ ├── EasyRoadPlus.cs.meta
│ │ ├── Editor.meta
│ │ ├── Editor
│ │ │ ├── EasyRoadPlusEditor.cs
│ │ │ └── EasyRoadPlusEditor.cs.meta
│ │ ├── FollowPathPlus.cs
│ │ └── FollowPathPlus.cs.meta
│ ├── Scripts.meta
│ └── Scripts
│ │ ├── EasySplinePath2DPlus.cs
│ │ ├── EasySplinePath2DPlus.cs.meta
│ │ ├── Editor.meta
│ │ └── Editor
│ │ ├── EasySplinePath2DPlusEditor.cs
│ │ ├── EasySplinePath2DPlusEditor.cs.meta
│ │ ├── Resources.meta
│ │ └── Resources
│ │ ├── EasySplinePath2D.meta
│ │ └── EasySplinePath2D
│ │ ├── add.png
│ │ ├── add.png.meta
│ │ ├── boton_recto.png
│ │ ├── boton_recto.png.meta
│ │ ├── boton_recto_u.png
│ │ ├── boton_recto_u.png.meta
│ │ ├── control.png
│ │ ├── control.png.meta
│ │ ├── curve.png
│ │ ├── curve.png.meta
│ │ ├── mode_auto.png
│ │ ├── mode_auto.png.meta
│ │ ├── mode_auto_u.png
│ │ ├── mode_auto_u.png.meta
│ │ ├── mode_free.png
│ │ ├── mode_free.png.meta
│ │ ├── mode_free_u.png
│ │ ├── mode_free_u.png.meta
│ │ ├── mode_lock.png
│ │ ├── mode_lock.png.meta
│ │ ├── mode_lock_u.png
│ │ ├── mode_lock_u.png.meta
│ │ ├── node.png
│ │ ├── node.png.meta
│ │ ├── node_delete.png
│ │ ├── node_delete.png.meta
│ │ ├── node_selected.png
│ │ ├── node_selected.png.meta
│ │ ├── nodo_auto.png
│ │ ├── nodo_auto.png.meta
│ │ ├── nodo_control.png
│ │ ├── nodo_control.png.meta
│ │ ├── nodo_control_free.png
│ │ ├── nodo_control_free.png.meta
│ │ ├── rect.png
│ │ └── rect.png.meta
│ ├── ImageCropping.meta
│ ├── ImageCropping
│ ├── Captures~
│ │ └── ImageCropping.gif
│ ├── Documentation.meta
│ ├── Documentation
│ │ ├── ImageCropping.md
│ │ └── ImageCropping.md.meta
│ ├── Editor.meta
│ ├── Editor
│ │ ├── ImageCropping - Unlit.shader
│ │ ├── ImageCropping - Unlit.shader.meta
│ │ ├── ImageCropping.cs
│ │ ├── ImageCropping.cs.meta
│ │ ├── PopupContent.cs
│ │ ├── PopupContent.cs.meta
│ │ ├── WYTools.ImageCropping.Editor.asmdef
│ │ └── WYTools.ImageCropping.Editor.asmdef.meta
│ ├── README.md
│ ├── README.md.meta
│ ├── package.json
│ └── package.json.meta
│ ├── ReferenceReplace.meta
│ ├── ReferenceReplace
│ ├── Captures~
│ │ ├── AssetsDeepCloner.gif
│ │ └── ReferenceReplace.gif
│ ├── Documentation.meta
│ ├── Documentation
│ │ ├── AssetsDeepCloner.md
│ │ ├── AssetsDeepCloner.md.meta
│ │ ├── ReferenceReplace.md
│ │ └── ReferenceReplace.md.meta
│ ├── Editor.meta
│ ├── Editor
│ │ ├── AssetsDeepCloner.cs
│ │ ├── AssetsDeepCloner.cs.meta
│ │ ├── ReferenceReplace.cs
│ │ ├── ReferenceReplace.cs.meta
│ │ ├── Utility.cs
│ │ ├── Utility.cs.meta
│ │ ├── WYTools.ReferenceReplace.Editor.asmdef
│ │ └── WYTools.ReferenceReplace.Editor.asmdef.meta
│ ├── README.md
│ ├── README.md.meta
│ ├── package.json
│ └── package.json.meta
│ ├── SpriteAtlasInspector.meta
│ ├── SpriteAtlasInspector
│ ├── Captures~
│ │ └── SpriteAtlasInspector.png
│ ├── Editor.meta
│ ├── Editor
│ │ ├── SpriteAtlasImporterInspector.cs
│ │ ├── SpriteAtlasImporterInspector.cs.meta
│ │ ├── SpriteAtlasInspector.cs
│ │ ├── SpriteAtlasInspector.cs.meta
│ │ ├── WYTools.SpriteAtlasInspector.Editor.asmdef
│ │ └── WYTools.SpriteAtlasInspector.Editor.asmdef.meta
│ ├── README.md
│ ├── README.md.meta
│ ├── package.json
│ └── package.json.meta
│ ├── TransformInspector.meta
│ ├── TransformInspector
│ ├── Captures~
│ │ ├── RectTransformInspector.gif
│ │ └── TransformInspector.gif
│ ├── Editor.meta
│ ├── Editor
│ │ ├── RectTransformInspector.cs
│ │ ├── RectTransformInspector.cs.meta
│ │ ├── TransformInspector.cs
│ │ ├── TransformInspector.cs.meta
│ │ ├── WYTools.TransformInspector.Editor.asmdef
│ │ └── WYTools.TransformInspector.Editor.asmdef.meta
│ ├── README.md
│ ├── README.md.meta
│ ├── package.json
│ └── package.json.meta
│ ├── TransformSearch.meta
│ ├── TransformSearch
│ ├── Captures~
│ │ ├── SearchComponent.gif
│ │ └── SearchReferenceInScene.gif
│ ├── Documentation.meta
│ ├── Documentation
│ │ ├── TransformSearch.md
│ │ └── TransformSearch.md.meta
│ ├── Editor.meta
│ ├── Editor
│ │ ├── BaseSearch.cs
│ │ ├── BaseSearch.cs.meta
│ │ ├── SearchComponent.cs
│ │ ├── SearchComponent.cs.meta
│ │ ├── SearchLayer.cs
│ │ ├── SearchLayer.cs.meta
│ │ ├── SearchReferenceInScene.cs
│ │ ├── SearchReferenceInScene.cs.meta
│ │ ├── SearchReferenceInSceneBySO.cs
│ │ └── SearchReferenceInSceneBySO.cs.meta
│ ├── README.md
│ ├── README.md.meta
│ ├── Samples~
│ │ └── ExtensionForLuaBehaviour
│ │ │ ├── .sample.json
│ │ │ └── Editor
│ │ │ ├── SearchLuaBehaviour.cs
│ │ │ └── SearchLuaBehaviour.cs.meta
│ ├── WYTools.TransformSearch.Editor.asmdef
│ ├── WYTools.TransformSearch.Editor.asmdef.meta
│ ├── package.json
│ └── package.json.meta
│ ├── UGUIExt.meta
│ ├── UGUIExt
│ ├── README.md
│ ├── README.md.meta
│ ├── Runtime.meta
│ ├── Runtime
│ │ ├── ContentSizeFitterExt.cs
│ │ ├── ContentSizeFitterExt.cs.meta
│ │ ├── ImageAnimation.cs
│ │ ├── ImageAnimation.cs.meta
│ │ ├── OutlineMellow.cs
│ │ ├── OutlineMellow.cs.meta
│ │ ├── RawImageAnimation.cs
│ │ ├── RawImageAnimation.cs.meta
│ │ ├── TemplateText.cs
│ │ ├── TemplateText.cs.meta
│ │ ├── TemplateTextBase.cs
│ │ ├── TemplateTextBase.cs.meta
│ │ ├── TemplateText_TMP.cs
│ │ ├── TemplateText_TMP.cs.meta
│ │ ├── WYTools.UGUIExt.asmdef
│ │ └── WYTools.UGUIExt.asmdef.meta
│ ├── package.json
│ └── package.json.meta
│ ├── UITools.meta
│ └── UITools
│ ├── Captures~
│ ├── UITools.png
│ ├── UIToolsIn2019.png
│ └── UIToolsIn2021.png
│ ├── Editor.meta
│ ├── Editor
│ ├── Res.meta
│ ├── Res
│ │ ├── align_bottom.png
│ │ ├── align_bottom.png.meta
│ │ ├── align_center.png
│ │ ├── align_center.png.meta
│ │ ├── align_left.png
│ │ ├── align_left.png.meta
│ │ ├── align_middle.png
│ │ ├── align_middle.png.meta
│ │ ├── align_right.png
│ │ ├── align_right.png.meta
│ │ ├── align_top.png
│ │ ├── align_top.png.meta
│ │ ├── average_gap_h.png
│ │ ├── average_gap_h.png.meta
│ │ ├── average_gap_v.png
│ │ ├── average_gap_v.png.meta
│ │ ├── fit_height.png
│ │ ├── fit_height.png.meta
│ │ ├── fit_width.png
│ │ ├── fit_width.png.meta
│ │ ├── group_pack.png
│ │ ├── group_pack.png.meta
│ │ ├── group_unpack.png
│ │ ├── group_unpack.png.meta
│ │ ├── reserved1.png
│ │ ├── reserved1.png.meta
│ │ ├── reserved2.png
│ │ ├── reserved2.png.meta
│ │ ├── reserved3.png
│ │ ├── reserved3.png.meta
│ │ ├── reserved4.png
│ │ ├── reserved4.png.meta
│ │ ├── reserved5.png
│ │ ├── reserved5.png.meta
│ │ ├── reserved6.png
│ │ ├── reserved6.png.meta
│ │ ├── reserved7.png
│ │ ├── reserved7.png.meta
│ │ ├── reserved8.png
│ │ ├── reserved8.png.meta
│ │ ├── same_height.png
│ │ ├── same_height.png.meta
│ │ ├── same_width.png
│ │ └── same_width.png.meta
│ ├── UITools.cs
│ ├── UITools.cs.meta
│ ├── Utility.cs
│ ├── Utility.cs.meta
│ ├── WYTools.UITools.Editor.asmdef
│ └── WYTools.UITools.Editor.asmdef.meta
│ ├── README.md
│ ├── README.md.meta
│ ├── package.json
│ └── package.json.meta
├── Captures~
└── UPMSupport.png
├── LICENSE.txt
├── Packages
└── manifest.json
├── ProjectSettings
├── AudioManager.asset
├── AutoStreamingSettings.asset
├── ClusterInputManager.asset
├── DynamicsManager.asset
├── EditorBuildSettings.asset
├── EditorSettings.asset
├── GraphicsSettings.asset
├── InputManager.asset
├── MemorySettings.asset
├── NavMeshAreas.asset
├── PackageManagerSettings.asset
├── Packages
│ └── com.unity.testtools.codecoverage
│ │ └── Settings.json
├── Physics2DSettings.asset
├── PresetManager.asset
├── ProjectSettings.asset
├── ProjectVersion.txt
├── QualitySettings.asset
├── TagManager.asset
├── TimeManager.asset
├── UnityConnectSettings.asset
├── VFXManager.asset
├── VersionControlSettings.asset
├── XRSettings.asset
└── boot.config
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | [Ll]ibrary/
2 | [Tt]emp/
3 | [Oo]bj/
4 | [Bb]uild/
5 | [Bb]uilds/
6 | [Ll]ogs/
7 | [Uu]serSettings/
8 | [Aa]ssets/AssetStoreTools*
9 |
10 | # Visual Studio cache directory
11 | .vs/
12 |
13 | # Visual Studio Code cache directory
14 | .vscode/
15 |
16 | .VSCodeCounter/
17 |
18 | # Jet Brains cache directory
19 | .idea/
20 |
21 | # Autogenerated VS/MD/Consulo solution and project files
22 | ExportedObj/
23 | .consulo/
24 | *.csproj
25 | *.unityproj
26 | *.sln
27 | *.suo
28 | *.tmp
29 | *.user
30 | *.userprefs
31 | *.pidb
32 | *.booproj
33 | *.svd
34 | *.pdb
35 | *.opendb
36 | *.DotSettings
37 | *.iml
38 |
39 | # Unity3D generated meta files
40 | *.pidb.meta
41 | *.pdb.meta
42 |
43 | # Unity3D Generated File On Crash Reports
44 | sysinfo.txt
45 |
46 | # Builds
47 | *.apk
48 |
49 | # --------------------------
--------------------------------------------------------------------------------
/Assets/Tools.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f0c29d71622eeb74287e314bb04fd7f8
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 24585df533a4aec4b9ba8fa1aeb822e2
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Captures~/AudioClipper.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/AudioFactory/Captures~/AudioClipper.gif
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Captures~/AudioVolumeUnify.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/AudioFactory/Captures~/AudioVolumeUnify.jpg
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Documentation.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 52e30dc04f8b44e38f50fe37d0feaf33
3 | timeCreated: 1719846424
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Documentation/AudioFactory.md:
--------------------------------------------------------------------------------
1 | ## AudioClipper
2 | * 拖动左「边界线」可调整开始时间,拖动右「边界线」可调整结束时间。
3 | * 拖动中间「高亮区域」可整体调整选中时间段。
4 | * 拖动时按住「Ctrl键」可屏蔽吸附效果。
5 | * 滚动鼠标「滚轮」可缩放波形图。
6 | * 调整后的音量可保存至文件。
7 |
8 | ## AudioVolumeUnify
9 | * 点击「基准」按钮,将该音频设置为统一音量。
10 | * 点击「试听」按钮,以统一音量试听该音频。
11 | * 输出音频文件格式与原音频文件格式相同。
12 | * Mp3格式由于编码原因,每次写入音量会发生细微变化,并且首尾会多出零点零几秒的空白。
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Documentation/AudioFactory.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c632d95b03304bc4b37a2ff165e8f3c3
3 | timeCreated: 1719853636
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: db77e25d9e0ed8e44adad1e0bba254af
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/AudioClipWriter.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7115bc67a0384d1ea1464db232107916
3 | timeCreated: 1719033589
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/AudioClipper.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 84d1933b5db24c28b6916cfc11232f8d
3 | timeCreated: 1718956942
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/AudioVolumeUnify.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6506ddeb81e4457a9687674e55e8c656
3 | timeCreated: 1719670869
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3c50e02b0bbd99240bcdd496b6af62c4
3 | folderAsset: yes
4 | timeCreated: 1493112996
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame/LibMp3Lame.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d66ded0e78d16b9488dfb0e9247211e7
3 | timeCreated: 1493208137
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame/MP3FileWriter.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fb5c882d3dd15214491ac8aaf1f5b608
3 | timeCreated: 1493208137
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame/NAudio.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 23b199320e3e7df47a5ebee61346c2b0
3 | folderAsset: yes
4 | timeCreated: 1493208131
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame/NAudio/AdpcmWaveFormat.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 60f6eb670e8f81f4382cc6d1e8ac13fa
3 | timeCreated: 1493208131
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame/NAudio/AudioMediaSubtypes.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0ee08990d14d50946a1ad3ad9c69e4d3
3 | timeCreated: 1493208131
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame/NAudio/Gsm610WaveFormat.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Runtime.InteropServices;
5 | using System.IO;
6 |
7 | namespace NAudio.Wave.WZT
8 | {
9 | ///
10 | /// GSM 610
11 | ///
12 | [StructLayout(LayoutKind.Sequential, Pack = 2)]
13 | public class Gsm610WaveFormat : WaveFormat
14 | {
15 | private short samplesPerBlock;
16 |
17 | ///
18 | /// Creates a GSM 610 WaveFormat
19 | /// For now hardcoded to 13kbps
20 | ///
21 | public Gsm610WaveFormat()
22 | {
23 | this.waveFormatTag = WaveFormatEncoding.Gsm610;
24 | this.channels = 1;
25 | this.averageBytesPerSecond = 1625;
26 | this.bitsPerSample = 0; // must be zero
27 | this.blockAlign = 65;
28 | this.sampleRate = 8000;
29 |
30 | this.extraSize = 2;
31 | this.samplesPerBlock = 320;
32 | }
33 |
34 | ///
35 | /// Samples per block
36 | ///
37 | public short SamplesPerBlock { get { return this.samplesPerBlock; } }
38 |
39 | ///
40 | /// Writes this structure to a BinaryWriter
41 | ///
42 | public override void Serialize(BinaryWriter writer)
43 | {
44 | base.Serialize(writer);
45 | writer.Write(samplesPerBlock);
46 | }
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame/NAudio/Gsm610WaveFormat.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c029ee315c0c6834e90f04f619338b3b
3 | timeCreated: 1493208131
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame/NAudio/IWaveProvider.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using NAudio.Lame;
3 |
4 | namespace NAudio.Wave.WZT
5 | {
6 | ///
7 | /// Generic interface for all WaveProviders.
8 | ///
9 | public interface IWaveProvider
10 | {
11 | ///
12 | /// Gets the WaveFormat of this WaveProvider.
13 | ///
14 | /// The wave format.
15 | WaveFormat WaveFormat { get; }
16 |
17 | ///
18 | /// Fill the specified buffer with wave data.
19 | ///
20 | /// The buffer to fill of wave data.
21 | /// Offset into buffer
22 | /// The number of bytes to read
23 | /// the number of bytes written to the buffer.
24 | int Read(byte[] buffer, int offset, int count);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame/NAudio/IWaveProvider.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fbfb88f187675b0448dcf66ca372dc8f
3 | timeCreated: 1493208131
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame/NAudio/RiffChunk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace NAudio.Wave.WZT
6 | {
7 | ///
8 | /// Holds information about a RIFF file chunk
9 | ///
10 | public class RiffChunk
11 | {
12 | int identifier;
13 | int length;
14 | long streamPosition;
15 |
16 | ///
17 | /// Creates a RiffChunk object
18 | ///
19 | public RiffChunk(int identifier, int length, long streamPosition)
20 | {
21 | this.identifier = identifier;
22 | this.length = length;
23 | this.streamPosition = streamPosition;
24 | }
25 |
26 | ///
27 | /// The chunk identifier
28 | ///
29 | public int Identifier
30 | {
31 | get
32 | {
33 | return identifier;
34 | }
35 | }
36 |
37 | ///
38 | /// The chunk identifier converted to a string
39 | ///
40 | public string IdentifierAsString
41 | {
42 | get
43 | {
44 | return ASCIIEncoding.ASCII.GetString(BitConverter.GetBytes(identifier));
45 | }
46 | }
47 |
48 | ///
49 | /// The chunk length
50 | ///
51 | public int Length
52 | {
53 | get
54 | {
55 | return length;
56 | }
57 | }
58 |
59 | ///
60 | /// The stream position this chunk is located at
61 | ///
62 | public long StreamPosition
63 | {
64 | get
65 | {
66 | return streamPosition;
67 | }
68 | }
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame/NAudio/RiffChunk.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fe306abf31fdbe64481deb697a77ba52
3 | timeCreated: 1493208131
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame/NAudio/WaveFileReader.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b8920394775cdb6438bd7656c5c68841
3 | timeCreated: 1493208131
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame/NAudio/WaveFormat.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f709c5c91c6ee1347bbdbfb71e25563d
3 | timeCreated: 1493208131
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame/NAudio/WaveFormatEncoding.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 07c489cad6787a04eadcc0f7b39dfc3e
3 | timeCreated: 1493208131
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame/NAudio/WaveFormatExtensible.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Runtime.InteropServices;
5 | using NAudio.Dmo.WZT;
6 |
7 | namespace NAudio.Wave.WZT
8 | {
9 | ///
10 | /// WaveFormatExtensible
11 | /// http://www.microsoft.com/whdc/device/audio/multichaud.mspx
12 | ///
13 | [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 2)]
14 | public class WaveFormatExtensible : WaveFormat
15 | {
16 | short wValidBitsPerSample; // bits of precision, or is wSamplesPerBlock if wBitsPerSample==0
17 | int dwChannelMask; // which channels are present in stream
18 | Guid subFormat;
19 |
20 | ///
21 | /// Parameterless constructor for marshalling
22 | ///
23 | WaveFormatExtensible()
24 | {
25 | }
26 |
27 | ///
28 | /// Creates a new WaveFormatExtensible for PCM or IEEE
29 | ///
30 | public WaveFormatExtensible(int rate, int bits, int channels)
31 | : base(rate, bits, channels)
32 | {
33 | waveFormatTag = WaveFormatEncoding.Extensible;
34 | extraSize = 22;
35 | wValidBitsPerSample = (short) bits;
36 | for (int n = 0; n < channels; n++)
37 | {
38 | dwChannelMask |= (1 << n);
39 | }
40 | if (bits == 32)
41 | {
42 | // KSDATAFORMAT_SUBTYPE_IEEE_FLOAT
43 | subFormat = AudioMediaSubtypes.MEDIASUBTYPE_IEEE_FLOAT; // new Guid("00000003-0000-0010-8000-00aa00389b71");
44 | }
45 | else
46 | {
47 | // KSDATAFORMAT_SUBTYPE_PCM
48 | subFormat = AudioMediaSubtypes.MEDIASUBTYPE_PCM; // new Guid("00000001-0000-0010-8000-00aa00389b71");
49 | }
50 |
51 | }
52 |
53 | ///
54 | /// SubFormat (may be one of AudioMediaSubtypes)
55 | ///
56 | public Guid SubFormat { get { return subFormat; } }
57 |
58 | ///
59 | /// Serialize
60 | ///
61 | ///
62 | public override void Serialize(System.IO.BinaryWriter writer)
63 | {
64 | base.Serialize(writer);
65 | writer.Write(wValidBitsPerSample);
66 | writer.Write(dwChannelMask);
67 | byte[] guid = subFormat.ToByteArray();
68 | writer.Write(guid, 0, guid.Length);
69 | }
70 |
71 | ///
72 | /// String representation
73 | ///
74 | public override string ToString()
75 | {
76 | return String.Format("{0} wBitsPerSample:{1} dwChannelMask:{2} subFormat:{3} extraSize:{4}",
77 | base.ToString(),
78 | wValidBitsPerSample,
79 | dwChannelMask,
80 | subFormat,
81 | extraSize);
82 | }
83 | }
84 | }
85 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame/NAudio/WaveFormatExtensible.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5d0e3542e85464541a0022c04d0da8b6
3 | timeCreated: 1493208131
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame/NAudio/WaveFormatExtraData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Runtime.InteropServices;
5 | using System.IO;
6 |
7 | namespace NAudio.Wave.WZT
8 | {
9 | ///
10 | /// This class used for marshalling from unmanaged code
11 | ///
12 | [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 2)]
13 | public class WaveFormatExtraData : WaveFormat
14 | {
15 | // try with 100 bytes for now, increase if necessary
16 | [MarshalAs(UnmanagedType.ByValArray, SizeConst = 100)]
17 | private byte[] extraData = new byte[100];
18 |
19 | ///
20 | /// Allows the extra data to be read
21 | ///
22 | public byte[] ExtraData { get { return extraData; } }
23 |
24 | ///
25 | /// parameterless constructor for marshalling
26 | ///
27 | internal WaveFormatExtraData()
28 | {
29 | }
30 |
31 | ///
32 | /// Reads this structure from a BinaryReader
33 | ///
34 | public WaveFormatExtraData(BinaryReader reader)
35 | : base(reader)
36 | {
37 | ReadExtraData(reader);
38 | }
39 |
40 | internal void ReadExtraData(BinaryReader reader)
41 | {
42 | if (this.extraSize > 0)
43 | {
44 | reader.Read(extraData, 0, extraSize);
45 | }
46 | }
47 |
48 | ///
49 | /// Writes this structure to a BinaryWriter
50 | ///
51 | public override void Serialize(BinaryWriter writer)
52 | {
53 | base.Serialize(writer);
54 | if (extraSize > 0)
55 | {
56 | writer.Write(extraData, 0, extraSize);
57 | }
58 | }
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame/NAudio/WaveFormatExtraData.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fad90a98c9bb79f4e86bf7f8e56d85b9
3 | timeCreated: 1493208131
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/Lame/NAudio/WaveStream.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1e3938bcd2820f546a28486ea4b7ba5d
3 | timeCreated: 1493208131
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/PopupContent.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: wangyun
3 | * @CreateTime: 2024-08-08 21:44:43 731
4 | * @LastEditor: wangyun
5 | * @EditTime: 2024-08-08 21:44:43 735
6 | */
7 |
8 | using System;
9 | using UnityEditor;
10 | using UnityEngine;
11 |
12 | namespace WYTools.AudioFactory {
13 | public class PopupContent : PopupWindowContent {
14 | public float Width { get; }
15 | public float Height { get; }
16 | public Action OnGUIAction { get; }
17 | public Action OnOpenAction { get; set; }
18 | public Action OnCloseAction { get; set; }
19 |
20 | public PopupContent(float width, float height, Action onGUIAction) {
21 | Width = width;
22 | Height = height;
23 | OnGUIAction = onGUIAction;
24 | }
25 |
26 | public override Vector2 GetWindowSize() => new Vector2(Width, Height);
27 |
28 | public override void OnGUI(Rect rect) => OnGUIAction?.Invoke(rect);
29 |
30 | public override void OnOpen() => OnOpenAction?.Invoke();
31 |
32 | public override void OnClose() => OnCloseAction?.Invoke();
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/PopupContent.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fe6cc800b9fe40eba38877aa69c54e76
3 | timeCreated: 1723381810
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 94a532e936b434bbe853ffa15a046c91
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Impl.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 22e9fa4365f17a149a980b4997eaee40
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Impl/VorbisPluginImpl.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "VorbisPluginImpl",
3 | "rootNamespace": "OggVorbis",
4 | "references": [],
5 | "includePlatforms": [],
6 | "excludePlatforms": [],
7 | "allowUnsafeCode": false,
8 | "overrideReferences": true,
9 | "precompiledReferences": [],
10 | "autoReferenced": true,
11 | "defineConstraints": [],
12 | "versionDefines": [],
13 | "noEngineReferences": false
14 | }
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Impl/VorbisPluginImpl.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6369f65a3f137eb448c3456fdbf498ff
3 | AssemblyDefinitionImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Impl/src.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ce6e87ce76d38cf499f4721cfcff2012
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Impl/src/NativeBridge.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7a62e42f4d5890e429df61d6f0af2e0d
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Impl/src/NativeErrorCode.cs:
--------------------------------------------------------------------------------
1 | namespace OggVorbis
2 | {
3 | public enum NativeErrorCode
4 | {
5 | ERROR_INVALID_FILEPATH_PARAMETER = -1,
6 | ERROR_CANNOT_OPEN_FILE_FOR_WRITE = -2,
7 | ERROR_CANNOT_OPEN_FILE_FOR_READ = -3,
8 | ERROR_INPUT_FILESTREAM_IS_NOT_OGG_STREAM = -4,
9 | ERROR_READING_OGG_STREAM = -5,
10 |
11 | ERROR_INVALID_SAMPLES_PARAMETER = -10,
12 | ERROR_INVALID_SAMPLESLENGTH_PARAMETER = -11,
13 | ERROR_INVALID_CHANNELS_PARAMETER = -12,
14 | ERROR_INVALID_FREQUENCY_PARAMETER = -13,
15 | ERROR_INVALID_BASE_QUALITY_PARAMETER = -14,
16 | ERROR_MALLOC_RETURNED_NULL = -15,
17 | ERROR_BYTES_MEMORY_ARRAY_NULL = -16,
18 | ERROR_INVALID_WRITE_CALLBACK_PARAMETER = -17,
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Impl/src/NativeErrorCode.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a0842d9e22713d5498e69792dfc7dd7c
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Impl/src/NativeErrorException.cs:
--------------------------------------------------------------------------------
1 | namespace OggVorbis
2 | {
3 | public class NativeErrorException : System.Exception
4 | {
5 | public NativeErrorCode NativeErrorCode { get; }
6 |
7 | private NativeErrorException(NativeErrorCode nativeErrorCode)
8 | : base($"Error code: {nativeErrorCode}")
9 | {
10 | NativeErrorCode = nativeErrorCode;
11 | }
12 |
13 | public override string ToString()
14 | {
15 | return $"{nameof(NativeErrorException)} {Message}";
16 | }
17 |
18 | internal static void ThrowExceptionIfNecessary(int returnValue)
19 | {
20 | if (returnValue == 0)
21 | {
22 | return;
23 | }
24 | throw new NativeErrorException((NativeErrorCode)returnValue);
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Impl/src/NativeErrorException.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 43b9e4fd60d7b1b42babf0b567adc798
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Impl/src/VorbisPlugin.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 02000528ede72eb4e9fa9627185e0ac6
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Plugins.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4432b532ac5884e10af081654d1e89f7
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Plugins/OSX.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b17ebb086ab3a40e38b962354571591c
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Plugins/OSX/libVorbisPlugin.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Plugins/OSX/libVorbisPlugin.dylib
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Plugins/OSX/libVorbisPlugin.dylib.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3dd18ede30e7e4dcbaae02cd851ffd1c
3 | PluginImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | iconMap: {}
7 | executionOrder: {}
8 | defineConstraints: []
9 | isPreloaded: 0
10 | isOverridable: 0
11 | isExplicitlyReferenced: 0
12 | validateReferences: 1
13 | platformData:
14 | - first:
15 | : Any
16 | second:
17 | enabled: 0
18 | settings:
19 | Exclude Android: 1
20 | Exclude Editor: 0
21 | Exclude Linux64: 1
22 | Exclude OSXUniversal: 0
23 | Exclude Win: 1
24 | Exclude Win64: 1
25 | Exclude iOS: 1
26 | - first:
27 | Android: Android
28 | second:
29 | enabled: 0
30 | settings:
31 | CPU: ARMv7
32 | - first:
33 | Any:
34 | second:
35 | enabled: 0
36 | settings: {}
37 | - first:
38 | Editor: Editor
39 | second:
40 | enabled: 1
41 | settings:
42 | CPU: AnyCPU
43 | DefaultValueInitialized: true
44 | OS: OSX
45 | - first:
46 | Standalone: Linux64
47 | second:
48 | enabled: 0
49 | settings:
50 | CPU: None
51 | - first:
52 | Standalone: OSXUniversal
53 | second:
54 | enabled: 1
55 | settings:
56 | CPU: AnyCPU
57 | - first:
58 | Standalone: Win
59 | second:
60 | enabled: 0
61 | settings:
62 | CPU: x86
63 | - first:
64 | Standalone: Win64
65 | second:
66 | enabled: 0
67 | settings:
68 | CPU: x86_64
69 | - first:
70 | iPhone: iOS
71 | second:
72 | enabled: 0
73 | settings:
74 | AddToEmbeddedBinaries: false
75 | CPU: AnyCPU
76 | CompileFlags:
77 | FrameworkDependencies:
78 | userData:
79 | assetBundleName:
80 | assetBundleVariant:
81 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Plugins/Windows.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7f766c141793afa4cb9995b7ec9dad90
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Plugins/Windows/x86.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 945159874f3e2da4c87b384d5ce9f88a
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Plugins/Windows/x86/VorbisPlugin.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Plugins/Windows/x86/VorbisPlugin.dll
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Plugins/Windows/x86/VorbisPlugin.dll.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c604fbaeb4366014db10d1915bf4533d
3 | PluginImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | iconMap: {}
7 | executionOrder: {}
8 | defineConstraints: []
9 | isPreloaded: 0
10 | isOverridable: 0
11 | isExplicitlyReferenced: 0
12 | validateReferences: 1
13 | platformData:
14 | - first:
15 | : Any
16 | second:
17 | enabled: 0
18 | settings:
19 | Exclude Android: 1
20 | Exclude Editor: 0
21 | Exclude Linux64: 0
22 | Exclude OSXUniversal: 0
23 | Exclude Win: 0
24 | Exclude Win64: 0
25 | - first:
26 | Android: Android
27 | second:
28 | enabled: 0
29 | settings:
30 | CPU: ARMv7
31 | - first:
32 | Any:
33 | second:
34 | enabled: 0
35 | settings: {}
36 | - first:
37 | Editor: Editor
38 | second:
39 | enabled: 1
40 | settings:
41 | CPU: x86
42 | DefaultValueInitialized: true
43 | OS: Windows
44 | - first:
45 | Facebook: Win
46 | second:
47 | enabled: 0
48 | settings:
49 | CPU: AnyCPU
50 | - first:
51 | Facebook: Win64
52 | second:
53 | enabled: 0
54 | settings:
55 | CPU: None
56 | - first:
57 | Standalone: Linux64
58 | second:
59 | enabled: 1
60 | settings:
61 | CPU: AnyCPU
62 | - first:
63 | Standalone: OSXUniversal
64 | second:
65 | enabled: 1
66 | settings:
67 | CPU: AnyCPU
68 | - first:
69 | Standalone: Win
70 | second:
71 | enabled: 1
72 | settings:
73 | CPU: AnyCPU
74 | - first:
75 | Standalone: Win64
76 | second:
77 | enabled: 1
78 | settings:
79 | CPU: None
80 | userData:
81 | assetBundleName:
82 | assetBundleVariant:
83 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Plugins/Windows/x86_64.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a9188e20df95d204a82ed104bc95e446
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Plugins/Windows/x86_64/VorbisPlugin.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Plugins/Windows/x86_64/VorbisPlugin.dll
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/VorbisPlugin/Plugins/Windows/x86_64/VorbisPlugin.dll.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8366486b20439f44ca3c6f11acb29fee
3 | PluginImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | iconMap: {}
7 | executionOrder: {}
8 | defineConstraints: []
9 | isPreloaded: 0
10 | isOverridable: 0
11 | isExplicitlyReferenced: 0
12 | validateReferences: 1
13 | platformData:
14 | - first:
15 | : Any
16 | second:
17 | enabled: 0
18 | settings:
19 | Exclude Android: 1
20 | Exclude Editor: 0
21 | Exclude Linux64: 0
22 | Exclude OSXUniversal: 0
23 | Exclude Win: 1
24 | Exclude Win64: 0
25 | - first:
26 | Android: Android
27 | second:
28 | enabled: 0
29 | settings:
30 | CPU: ARMv7
31 | - first:
32 | Any:
33 | second:
34 | enabled: 0
35 | settings: {}
36 | - first:
37 | Editor: Editor
38 | second:
39 | enabled: 1
40 | settings:
41 | CPU: x86_64
42 | DefaultValueInitialized: true
43 | OS: Windows
44 | - first:
45 | Facebook: Win
46 | second:
47 | enabled: 0
48 | settings:
49 | CPU: None
50 | - first:
51 | Facebook: Win64
52 | second:
53 | enabled: 0
54 | settings:
55 | CPU: AnyCPU
56 | - first:
57 | Standalone: Linux64
58 | second:
59 | enabled: 1
60 | settings:
61 | CPU: AnyCPU
62 | - first:
63 | Standalone: OSXUniversal
64 | second:
65 | enabled: 1
66 | settings:
67 | CPU: AnyCPU
68 | - first:
69 | Standalone: Win
70 | second:
71 | enabled: 0
72 | settings:
73 | CPU: None
74 | - first:
75 | Standalone: Win64
76 | second:
77 | enabled: 1
78 | settings:
79 | CPU: AnyCPU
80 | userData:
81 | assetBundleName:
82 | assetBundleVariant:
83 |
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/WYTools.AudioFactory.Editor.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "WYTools.AudioFactory.Editor",
3 | "rootNamespace": "",
4 | "references": [
5 | "GUID:6369f65a3f137eb448c3456fdbf498ff"
6 | ],
7 | "includePlatforms": [
8 | "Editor"
9 | ],
10 | "excludePlatforms": [],
11 | "allowUnsafeCode": false,
12 | "overrideReferences": false,
13 | "precompiledReferences": [],
14 | "autoReferenced": true,
15 | "defineConstraints": [],
16 | "versionDefines": [],
17 | "noEngineReferences": false
18 | }
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/Editor/WYTools.AudioFactory.Editor.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 82acddd0ce444a6eadc4c16bf06e88a2
3 | timeCreated: 1719846673
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/README.md:
--------------------------------------------------------------------------------
1 | ## AudioClipper
2 |
3 | 支持展示AudioClip对象的波形图,从中截取片段,试听并保存为WAV、MP3、OGG文件。
4 | 
5 | * 展示带标尺的波形图。
6 | * 可在波形图中选中截取区域,并支持拖动区域。
7 | * 可根据阈值裁剪收尾空白。
8 | * 可试听截取的片段。
9 | * 可缩放音量,并在波形图中展示出来。
10 | * 可保存片段到WAV、MP3、OGG等音频文件。
11 |
12 | ## AudioVolumeUnify
13 |
14 | 本工具用于将多个音频统一音量,支持WAV、MP3、OGG三种格式。
15 | 
16 | * 可选择某个音频的音量作为统一音量,也可以自己设置统一音量。
17 | * 支持以统一音量试音每个音频。
18 | * 输出文件与源文件格式相同,也可以直接覆盖源文件。
19 |
20 | ## 第三方内容
21 |
22 | Editor/Lame:[Lame-For-Unity](https://github.com/3wz/Lame-For-Unity)
23 | 取自 [Assets/Lame](https://github.com/3wz/Lame-For-Unity/tree/master/Assets/Lame) ,有所删减。
24 |
25 | Editor/VorbisPlugin:[unity-project-vorbis](https://github.com/gindemit/unity-project-vorbis)
26 | 取自 [Assets/VorbisPlugin](https://github.com/gindemit/unity-project-vorbis/tree/master/UnityClient/Assets/VorbisPlugin) 。
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/README.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 19974e7926ee413491a7b409126ce1a6
3 | timeCreated: 1719846455
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "com.wy.tools.audio-factory",
3 | "displayName": "WYTools.AudioFactory",
4 | "version": "0.1.2",
5 | "description": "AudioClipper:\n展示AudioClip对象的波形图,从中截取片段,试听并保存为WAV、MP3、OGG文件。\nAudioVolumeUnify:\n将多个音频统一音量,保存为WAV、MP3、OGG文件。"
6 |
7 | }
--------------------------------------------------------------------------------
/Assets/Tools/AudioFactory/package.json.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fe6cdc9f93d0a90498f475fdf4b2c5a0
3 | PackageManifestImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/BatchRename.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 32814ed82cefee04dbe24fe7f9b8157f
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/BatchRename/Captures~/BatchRename.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/BatchRename/Captures~/BatchRename.gif
--------------------------------------------------------------------------------
/Assets/Tools/BatchRename/Documentation.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4d6897c4ab8a2ac4d9262813024a77eb
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/BatchRename/Documentation/BatchRename.md:
--------------------------------------------------------------------------------
1 | ## 整体
2 | * 在「命名规则」输入框中输入命名特征。
3 | * 未开启「正则表达式」选项时,使用 * 插入原始名称。
4 | * 开启「正则表达式」选项时,通过 /pattern/ 从原始名称中获取到匹配结果,如 /.*/_Clone 表示原始名称后面加上“_Clone”
5 | * 使用 # 插入数字编号。
6 | * 可设置数字编号的起始编号、每个文件递增多少,编号位数(不足补0)。
7 | * 重复点击「推测命名」按钮,将遍历所有选中对象的名称,依次显示每个选中对象去除编号后的名称。
8 |
9 | ## 替换
10 | * 在「把」输入框中输入原文件名中需要替换的部分。
11 | * 开启「正则表达式」选项时,输入的替换部分被视为正则表达式。
12 | * 在「替换成」输入框中输入替换后的文字,它将与未被替换的部分拼接成新的名称。
13 | * 在「替换成」输入框中使用 # 插入数字编号。
14 | * 可设置数字编号的起始编号、每个文件递增多少,编号位数(不足补0)。
--------------------------------------------------------------------------------
/Assets/Tools/BatchRename/Documentation/BatchRename.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1f95d0a134e3ee44da6a89b0fd0c8589
3 | timeCreated: 1719853636
--------------------------------------------------------------------------------
/Assets/Tools/BatchRename/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: dbb4172c7dabcab42932d4d17e2c165e
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/BatchRename/Editor/BatchRename.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 916fd896b7f8445f915a1c78c315d9a6
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/BatchRename/Editor/WYTools.BatchRename.Editor.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "WYTools.BatchRename.Editor",
3 | "rootNamespace": "",
4 | "references": [],
5 | "includePlatforms": [
6 | "Editor"
7 | ],
8 | "excludePlatforms": [],
9 | "allowUnsafeCode": false,
10 | "overrideReferences": false,
11 | "precompiledReferences": [],
12 | "autoReferenced": true,
13 | "defineConstraints": [],
14 | "versionDefines": [],
15 | "noEngineReferences": false
16 | }
--------------------------------------------------------------------------------
/Assets/Tools/BatchRename/Editor/WYTools.BatchRename.Editor.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a39e7691f36ac5c4796f257059553f9c
3 | AssemblyDefinitionImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/BatchRename/README.md:
--------------------------------------------------------------------------------
1 | ## BatchRename
2 |
3 | 支持重命名GameObject和Asset。
4 | 
5 | * **整体:** 重命名为新的名称。
6 | * **替换:** 将原名中的一部分替换成别的字符串。
7 | * **「正则表达式」复选按钮:** 整体重命名时,用来将与原名匹配到的字符串插入到新名称中,替换重命名时,用来匹配需要替换的内容。
8 | * **起始编号、递增补偿、编号位数:** 多个对象重命名可以用编号替换「#」号,实现名称带序号功能。
9 | * **「推测命名按钮」:** 将原名剔除序号后去重,随着每次点击依次显示在输入框中。
--------------------------------------------------------------------------------
/Assets/Tools/BatchRename/README.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ac08d9de446345988117625b44c3c0aa
3 | timeCreated: 1720101393
--------------------------------------------------------------------------------
/Assets/Tools/BatchRename/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "com.wy.tools.batch-rename",
3 | "displayName": "WYTools.BatchRename",
4 | "version": "0.1.1",
5 | "description": "批量重命名GameObject和Asset。"
6 |
7 | }
--------------------------------------------------------------------------------
/Assets/Tools/BatchRename/package.json.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9805da034f3549e4bfcdccb7c3a30745
3 | timeCreated: 1720101475
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 484db3bfaf5082742b7b8c2b4edaebe8
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e6a9b064b0744455898783cc41f717b0
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/DemoScene.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: dccca004fd6484ab0a20be2ea2427bae
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/DynamicPath.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | ///
5 | /// This is an example of the usage of Easy Spline Path 2D.
6 | /// In this example we use the function 'AddSegment' to get dynamically add
7 | /// nodes to the spline.
8 | ///
9 | public class DynamicPath : FollowPath
10 | {
11 | private Vector3 stageDimensions;
12 | private float lenght;
13 |
14 | protected float offset = 1;
15 |
16 | protected override void Start()
17 | {
18 | // Get the stage dimensions so we allways choose a point inside the screen
19 | stageDimensions = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width, Screen.height, 0));
20 | AddPoints();
21 | base.Start();
22 | }
23 |
24 | protected override void Move()
25 | {
26 | base.Move();
27 | GeneratePath();
28 | }
29 |
30 | virtual protected void GeneratePath()
31 | {
32 | // When approaching the last spline lenght we spawn more nodes
33 | if (dist >= lenght - offset)
34 | {
35 | AddPoints();
36 | }
37 | }
38 | // Function to dynamically add nodes to the SplinePath2D
39 | private void AddPoints()
40 | {
41 | // Get the current lenght of the spline to check in the Move() method
42 | lenght = spline2D.GetLenght();
43 | // We add two nodes because the auto node type adapts any adjacent nodes of type Auto when created
44 | AddPoint();
45 | AddPoint();
46 | // When we modify the spline we need to call this function to update the values in the EasySplinePath2D script
47 | spline2D.SetUp();
48 | }
49 |
50 | virtual protected void AddPoint()
51 | {
52 | spline2D.AddSegment(new Vector2(Random.Range(-stageDimensions.x, stageDimensions.x), Random.Range(-stageDimensions.y, stageDimensions.y)));
53 | }
54 | // Override the rotate funtion to add smoothness to the movement
55 | protected override void RotateToAlign(float angle)
56 | {
57 | transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.AngleAxis(angle, Vector3.forward), Time.deltaTime * 3);
58 | }
59 |
60 | }
61 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/DynamicPath.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 71fb4305e3e4b4a33a55772e07e4145d
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/EasyRoad.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | ///
6 | /// Example script that uses EasySplinePath2D to generate a mesh that follows
7 | /// the spline.
8 | ///
9 | [RequireComponent(typeof(EasySplinePath2D))]
10 | [RequireComponent(typeof(MeshFilter))]
11 | [RequireComponent(typeof(MeshRenderer))]
12 | public class EasyRoad : MonoBehaviour
13 | {
14 | public float trackWidth = 3;
15 | [Range(.05f, 1.5f)]
16 | public float segmentLenght = 1;
17 | public float tiling = 1;
18 | public bool liveUpdate;
19 |
20 | public void UpdateMesh()
21 | {
22 | SplinePath2D spline = GetComponent().path;
23 | Vector2[] points = spline.GetEquidistancePoints(segmentLenght);
24 | GetComponent().mesh = CreateMesh(points, spline.IsClosed, trackWidth);
25 | int texture = Mathf.RoundToInt(tiling * points.Length * segmentLenght * .05f);
26 | GetComponent().sharedMaterial.mainTextureScale = new Vector2(1, texture);
27 | }
28 |
29 | ///
30 | /// Function to create the mesh of the road, from the points of the curve.
31 | ///
32 | public Mesh CreateMesh(Vector2[] points, bool closed, float roadWidth)
33 | {
34 | Vector3[] vertices = new Vector3[points.Length * 2];
35 | Vector2[] uvs = new Vector2[vertices.Length];
36 | int numTris = 2 * (points.Length - 1) + ((closed) ? 2 : 0);
37 | int[] tris = new int[numTris * 3];
38 | int vertIndex = 0;
39 | int triIndex = 0;
40 |
41 | for (int i = 0; i < points.Length; i++)
42 | {
43 | Vector2 forward = Vector2.zero;
44 | if (i < points.Length - 1 || closed)
45 | {
46 | forward += points[(i + 1) % points.Length] - points[i];
47 | }
48 | if (i > 0 || closed)
49 | {
50 | forward += points[i] - points[(i - 1 + points.Length) % points.Length];
51 | }
52 | forward.Normalize();
53 | Vector2 left = new Vector2(-forward.y, forward.x);
54 |
55 | vertices[vertIndex] = points[i] + left * roadWidth * .5f;
56 | vertices[vertIndex + 1] = points[i] - left * roadWidth * .5f;
57 |
58 | float completionPercent = i / (float)(points.Length - 1);
59 | float v = 1 - Mathf.Abs(2 * completionPercent - 1);
60 | uvs[vertIndex] = new Vector2(0, v);
61 | uvs[vertIndex + 1] = new Vector2(1, v);
62 |
63 | if (i < points.Length - 1 || closed)
64 | {
65 | tris[triIndex] = vertIndex;
66 | tris[triIndex + 1] = (vertIndex + 2) % vertices.Length;
67 | tris[triIndex + 2] = vertIndex + 1;
68 |
69 | tris[triIndex + 3] = vertIndex + 1;
70 | tris[triIndex + 4] = (vertIndex + 2) % vertices.Length;
71 | tris[triIndex + 5] = (vertIndex + 3) % vertices.Length;
72 | }
73 |
74 | vertIndex += 2;
75 | triIndex += 6;
76 | }
77 |
78 | Mesh mesh = new Mesh();
79 | mesh.vertices = vertices;
80 | mesh.triangles = tris;
81 | mesh.uv = uvs;
82 |
83 | return mesh;
84 | }
85 | }
86 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/EasyRoad.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 55bf9054f04b64fdcb6494b63e3ad0f5
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8451d1a6edead45eba3bd1a3ae2457d8
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Editor/EasyRoadEditor.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEditor;
5 |
6 | ///
7 | /// Editor script, used to update the road in real time.
8 | ///
9 | [CustomEditor(typeof(EasyRoad))]
10 | public class EasyRoadEditor : Editor
11 | {
12 | EasyRoad creator;
13 |
14 | void OnSceneGUI()
15 | {
16 | if (creator.liveUpdate && Event.current.type == EventType.Repaint)
17 | {
18 | creator.UpdateMesh();
19 | }
20 | }
21 |
22 | void OnEnable()
23 | {
24 | creator = (EasyRoad)target;
25 | }
26 | }
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Editor/EasyRoadEditor.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b14db728d690d4630b6a2d7b6b5a15d3
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/FollowPath.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | ///
6 | /// This is an example of the usage of Easy Spline Path 2D.
7 | /// In this example we use the function 'GetPointByDistance' to get the position a point in
8 | /// the curve corresponding to a distance messured along the curve starting from
9 | /// the first Node.
10 | ///
11 | ///
12 | public class FollowPath : MonoBehaviour
13 | {
14 | // A link to the GameObject containing the EasySlinePath2D script (provided by user in the editor)
15 | public EasySplinePath2D spline2D;
16 | // The speed of the object in Units per second
17 | public float speed = 5;
18 | // Should the object align to the movement (the X axis is used as forward)
19 | public bool align = false;
20 | // Set the position to the curve position at 'dist' distance and calculate the next distance at current speed.
21 | protected float dist = 0;
22 |
23 | virtual protected void Start()
24 | {
25 | StartCoroutine(MoveForwardRoutine());
26 | }
27 |
28 | // Coroutine to move the card each tick
29 | IEnumerator MoveForwardRoutine()
30 | {
31 | dist = 0;
32 | while (true)
33 | {
34 | Move();
35 | // Rotate the object towards the movement direction (current position to next position)
36 | if (align)
37 | {
38 | Vector2 dir = (spline2D.GetPointByDistance(dist, true) - (Vector2)transform.position).normalized;
39 | float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
40 | RotateToAlign(angle);
41 |
42 | }
43 | yield return null;
44 | }
45 | }
46 |
47 | virtual protected void RotateToAlign(float angle)
48 | {
49 | transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
50 | }
51 | // Function to rotate the object to face the direction of the movement
52 | virtual protected void Move()
53 | {
54 | transform.position = spline2D.GetPointByDistance(dist, true);
55 | dist += speed * Time.deltaTime;
56 | }
57 |
58 | }
59 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/FollowPath.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 00cd19cd7f106464fbe5ab9ca58c6dfd
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Materials.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1d9552fcae3d74d079f502bdc004d04a
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Materials/FloorMat.mat:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!21 &2100000
4 | Material:
5 | serializedVersion: 6
6 | m_ObjectHideFlags: 0
7 | m_PrefabParentObject: {fileID: 0}
8 | m_PrefabInternal: {fileID: 0}
9 | m_Name: FloorMat
10 | m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0}
11 | m_ShaderKeywords:
12 | m_LightmapFlags: 4
13 | m_EnableInstancingVariants: 0
14 | m_DoubleSidedGI: 0
15 | m_CustomRenderQueue: -1
16 | stringTagMap: {}
17 | disabledShaderPasses: []
18 | m_SavedProperties:
19 | serializedVersion: 3
20 | m_TexEnvs:
21 | - _AlphaTex:
22 | m_Texture: {fileID: 0}
23 | m_Scale: {x: 1, y: 1}
24 | m_Offset: {x: 0, y: 0}
25 | - _BumpMap:
26 | m_Texture: {fileID: 0}
27 | m_Scale: {x: 1, y: 1}
28 | m_Offset: {x: 0, y: 0}
29 | - _DetailAlbedoMap:
30 | m_Texture: {fileID: 0}
31 | m_Scale: {x: 1, y: 1}
32 | m_Offset: {x: 0, y: 0}
33 | - _DetailMask:
34 | m_Texture: {fileID: 0}
35 | m_Scale: {x: 1, y: 1}
36 | m_Offset: {x: 0, y: 0}
37 | - _DetailNormalMap:
38 | m_Texture: {fileID: 0}
39 | m_Scale: {x: 1, y: 1}
40 | m_Offset: {x: 0, y: 0}
41 | - _EmissionMap:
42 | m_Texture: {fileID: 0}
43 | m_Scale: {x: 1, y: 1}
44 | m_Offset: {x: 0, y: 0}
45 | - _MainTex:
46 | m_Texture: {fileID: 2800000, guid: 94f656bd9553e4848ad33b6491e3c4d2, type: 3}
47 | m_Scale: {x: 2, y: 2}
48 | m_Offset: {x: 0, y: 0}
49 | - _MetallicGlossMap:
50 | m_Texture: {fileID: 0}
51 | m_Scale: {x: 1, y: 1}
52 | m_Offset: {x: 0, y: 0}
53 | - _OcclusionMap:
54 | m_Texture: {fileID: 0}
55 | m_Scale: {x: 1, y: 1}
56 | m_Offset: {x: 0, y: 0}
57 | - _ParallaxMap:
58 | m_Texture: {fileID: 0}
59 | m_Scale: {x: 1, y: 1}
60 | m_Offset: {x: 0, y: 0}
61 | m_Floats:
62 | - PixelSnap: 0
63 | - _BumpScale: 1
64 | - _ColorMask: 15
65 | - _Cutoff: 0.5
66 | - _DetailNormalMapScale: 1
67 | - _DstBlend: 0
68 | - _EnableExternalAlpha: 0
69 | - _GlossMapScale: 1
70 | - _Glossiness: 0.5
71 | - _GlossyReflections: 1
72 | - _Metallic: 0
73 | - _Mode: 0
74 | - _OcclusionStrength: 1
75 | - _Parallax: 0.02
76 | - _SmoothnessTextureChannel: 0
77 | - _SpecularHighlights: 1
78 | - _SrcBlend: 1
79 | - _Stencil: 0
80 | - _StencilComp: 8
81 | - _StencilOp: 0
82 | - _StencilReadMask: 255
83 | - _StencilWriteMask: 255
84 | - _UVSec: 0
85 | - _UseUIAlphaClip: 0
86 | - _ZWrite: 1
87 | m_Colors:
88 | - _Color: {r: 1, g: 1, b: 1, a: 1}
89 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
90 | - _Flip: {r: 1, g: 1, b: 1, a: 1}
91 | - _RendererColor: {r: 1, g: 1, b: 1, a: 1}
92 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Materials/FloorMat.mat.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6b8df8f7847d14d348a3108c2861a66d
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 2100000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Materials/RoadMat.mat:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!21 &2100000
4 | Material:
5 | serializedVersion: 6
6 | m_ObjectHideFlags: 0
7 | m_CorrespondingSourceObject: {fileID: 0}
8 | m_PrefabInstance: {fileID: 0}
9 | m_PrefabAsset: {fileID: 0}
10 | m_Name: RoadMat
11 | m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0}
12 | m_ShaderKeywords:
13 | m_LightmapFlags: 4
14 | m_EnableInstancingVariants: 0
15 | m_DoubleSidedGI: 0
16 | m_CustomRenderQueue: -1
17 | stringTagMap: {}
18 | disabledShaderPasses: []
19 | m_SavedProperties:
20 | serializedVersion: 3
21 | m_TexEnvs:
22 | - _BumpMap:
23 | m_Texture: {fileID: 0}
24 | m_Scale: {x: 1, y: 1}
25 | m_Offset: {x: 0, y: 0}
26 | - _DetailAlbedoMap:
27 | m_Texture: {fileID: 0}
28 | m_Scale: {x: 1, y: 1}
29 | m_Offset: {x: 0, y: 0}
30 | - _DetailMask:
31 | m_Texture: {fileID: 0}
32 | m_Scale: {x: 1, y: 1}
33 | m_Offset: {x: 0, y: 0}
34 | - _DetailNormalMap:
35 | m_Texture: {fileID: 0}
36 | m_Scale: {x: 1, y: 1}
37 | m_Offset: {x: 0, y: 0}
38 | - _EmissionMap:
39 | m_Texture: {fileID: 0}
40 | m_Scale: {x: 1, y: 1}
41 | m_Offset: {x: 0, y: 0}
42 | - _MainTex:
43 | m_Texture: {fileID: 2800000, guid: da409862d27d0463cacec0950c36cfb8, type: 3}
44 | m_Scale: {x: 1, y: 25}
45 | m_Offset: {x: 0, y: 0}
46 | - _MetallicGlossMap:
47 | m_Texture: {fileID: 0}
48 | m_Scale: {x: 1, y: 1}
49 | m_Offset: {x: 0, y: 0}
50 | - _OcclusionMap:
51 | m_Texture: {fileID: 0}
52 | m_Scale: {x: 1, y: 1}
53 | m_Offset: {x: 0, y: 0}
54 | - _ParallaxMap:
55 | m_Texture: {fileID: 0}
56 | m_Scale: {x: 1, y: 1}
57 | m_Offset: {x: 0, y: 0}
58 | m_Floats:
59 | - _BumpScale: 1
60 | - _Cutoff: 0.5
61 | - _DetailNormalMapScale: 1
62 | - _DstBlend: 0
63 | - _GlossMapScale: 1
64 | - _Glossiness: 0.5
65 | - _GlossyReflections: 1
66 | - _Metallic: 0
67 | - _Mode: 0
68 | - _OcclusionStrength: 1
69 | - _Parallax: 0.02
70 | - _SmoothnessTextureChannel: 0
71 | - _SpecularHighlights: 1
72 | - _SrcBlend: 1
73 | - _UVSec: 0
74 | - _ZWrite: 1
75 | m_Colors:
76 | - _Color: {r: 1, g: 1, b: 1, a: 1}
77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
78 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Materials/RoadMat.mat.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0f5c8f565599440aeb1ab3c04bf337ae
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 2100000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Sprites.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3f4de5deac5994e50ae35e8d06416ec7
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Sprites/Blue_Car.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Demo/Sprites/Blue_Car.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Sprites/Blue_Car.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 52dbedcceb4af46e39a44b57a0d9755b
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 5
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 | grayScaleToAlpha: 0
25 | generateCubemap: 6
26 | cubemapConvolution: 0
27 | seamlessCubemap: 0
28 | textureFormat: 1
29 | maxTextureSize: 2048
30 | textureSettings:
31 | serializedVersion: 2
32 | filterMode: -1
33 | aniso: -1
34 | mipBias: -1
35 | wrapU: 1
36 | wrapV: 1
37 | wrapW: 1
38 | nPOTScale: 0
39 | lightmap: 0
40 | compressionQuality: 50
41 | spriteMode: 1
42 | spriteExtrude: 1
43 | spriteMeshType: 1
44 | alignment: 0
45 | spritePivot: {x: 0.5, y: 0.5}
46 | spritePixelsToUnits: 100
47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
48 | spriteGenerateFallbackPhysicsShape: 1
49 | alphaUsage: 1
50 | alphaIsTransparency: 1
51 | spriteTessellationDetail: -1
52 | textureType: 8
53 | textureShape: 1
54 | singleChannelComponent: 0
55 | maxTextureSizeSet: 0
56 | compressionQualitySet: 0
57 | textureFormatSet: 0
58 | platformSettings:
59 | - serializedVersion: 2
60 | buildTarget: DefaultTexturePlatform
61 | maxTextureSize: 2048
62 | resizeAlgorithm: 0
63 | textureFormat: -1
64 | textureCompression: 1
65 | compressionQuality: 50
66 | crunchedCompression: 0
67 | allowsAlphaSplitting: 0
68 | overridden: 0
69 | androidETC2FallbackOverride: 0
70 | - serializedVersion: 2
71 | buildTarget: Standalone
72 | maxTextureSize: 2048
73 | resizeAlgorithm: 0
74 | textureFormat: -1
75 | textureCompression: 1
76 | compressionQuality: 50
77 | crunchedCompression: 0
78 | allowsAlphaSplitting: 0
79 | overridden: 0
80 | androidETC2FallbackOverride: 0
81 | - serializedVersion: 2
82 | buildTarget: iPhone
83 | maxTextureSize: 2048
84 | resizeAlgorithm: 0
85 | textureFormat: -1
86 | textureCompression: 1
87 | compressionQuality: 50
88 | crunchedCompression: 0
89 | allowsAlphaSplitting: 0
90 | overridden: 0
91 | androidETC2FallbackOverride: 0
92 | - serializedVersion: 2
93 | buildTarget: Android
94 | maxTextureSize: 2048
95 | resizeAlgorithm: 0
96 | textureFormat: -1
97 | textureCompression: 1
98 | compressionQuality: 50
99 | crunchedCompression: 0
100 | allowsAlphaSplitting: 0
101 | overridden: 0
102 | androidETC2FallbackOverride: 0
103 | - serializedVersion: 2
104 | buildTarget: WebGL
105 | maxTextureSize: 2048
106 | resizeAlgorithm: 0
107 | textureFormat: -1
108 | textureCompression: 1
109 | compressionQuality: 50
110 | crunchedCompression: 0
111 | allowsAlphaSplitting: 0
112 | overridden: 0
113 | androidETC2FallbackOverride: 0
114 | spriteSheet:
115 | serializedVersion: 2
116 | sprites: []
117 | outline: []
118 | physicsShape: []
119 | bones: []
120 | spriteID: 0ad7af6af679043e4bce9459ae82d1c7
121 | vertices: []
122 | indices:
123 | edges: []
124 | weights: []
125 | spritePackingTag:
126 | userData:
127 | assetBundleName:
128 | assetBundleVariant:
129 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Sprites/FloorTile_S.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Demo/Sprites/FloorTile_S.jpg
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Sprites/FloorTile_S.jpg.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 94f656bd9553e4848ad33b6491e3c4d2
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 5
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 | grayScaleToAlpha: 0
25 | generateCubemap: 6
26 | cubemapConvolution: 0
27 | seamlessCubemap: 0
28 | textureFormat: 1
29 | maxTextureSize: 2048
30 | textureSettings:
31 | serializedVersion: 2
32 | filterMode: -1
33 | aniso: -1
34 | mipBias: -1
35 | wrapU: 0
36 | wrapV: 0
37 | wrapW: 0
38 | nPOTScale: 0
39 | lightmap: 0
40 | compressionQuality: 50
41 | spriteMode: 1
42 | spriteExtrude: 1
43 | spriteMeshType: 1
44 | alignment: 0
45 | spritePivot: {x: 0.5, y: 0.5}
46 | spritePixelsToUnits: 100
47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
48 | spriteGenerateFallbackPhysicsShape: 1
49 | alphaUsage: 1
50 | alphaIsTransparency: 1
51 | spriteTessellationDetail: -1
52 | textureType: 8
53 | textureShape: 1
54 | singleChannelComponent: 0
55 | maxTextureSizeSet: 0
56 | compressionQualitySet: 0
57 | textureFormatSet: 0
58 | platformSettings:
59 | - serializedVersion: 2
60 | buildTarget: DefaultTexturePlatform
61 | maxTextureSize: 2048
62 | resizeAlgorithm: 0
63 | textureFormat: -1
64 | textureCompression: 1
65 | compressionQuality: 50
66 | crunchedCompression: 0
67 | allowsAlphaSplitting: 0
68 | overridden: 0
69 | androidETC2FallbackOverride: 0
70 | - serializedVersion: 2
71 | buildTarget: Standalone
72 | maxTextureSize: 2048
73 | resizeAlgorithm: 0
74 | textureFormat: -1
75 | textureCompression: 1
76 | compressionQuality: 50
77 | crunchedCompression: 0
78 | allowsAlphaSplitting: 0
79 | overridden: 0
80 | androidETC2FallbackOverride: 0
81 | - serializedVersion: 2
82 | buildTarget: iPhone
83 | maxTextureSize: 2048
84 | resizeAlgorithm: 0
85 | textureFormat: -1
86 | textureCompression: 1
87 | compressionQuality: 50
88 | crunchedCompression: 0
89 | allowsAlphaSplitting: 0
90 | overridden: 0
91 | androidETC2FallbackOverride: 0
92 | - serializedVersion: 2
93 | buildTarget: Android
94 | maxTextureSize: 2048
95 | resizeAlgorithm: 0
96 | textureFormat: -1
97 | textureCompression: 1
98 | compressionQuality: 50
99 | crunchedCompression: 0
100 | allowsAlphaSplitting: 0
101 | overridden: 0
102 | androidETC2FallbackOverride: 0
103 | - serializedVersion: 2
104 | buildTarget: WebGL
105 | maxTextureSize: 2048
106 | resizeAlgorithm: 0
107 | textureFormat: -1
108 | textureCompression: 1
109 | compressionQuality: 50
110 | crunchedCompression: 0
111 | allowsAlphaSplitting: 0
112 | overridden: 0
113 | androidETC2FallbackOverride: 0
114 | spriteSheet:
115 | serializedVersion: 2
116 | sprites: []
117 | outline: []
118 | physicsShape: []
119 | bones: []
120 | spriteID: bc99ffe8657d5400190553fc445d9a39
121 | vertices: []
122 | indices:
123 | edges: []
124 | weights: []
125 | spritePackingTag:
126 | userData:
127 | assetBundleName:
128 | assetBundleVariant:
129 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Sprites/Materials.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f59299c62e2d340a6b930cbe2aaf8cbf
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Sprites/Materials/Zeppelin.mat:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!21 &2100000
4 | Material:
5 | serializedVersion: 6
6 | m_ObjectHideFlags: 0
7 | m_PrefabParentObject: {fileID: 0}
8 | m_PrefabInternal: {fileID: 0}
9 | m_Name: Zeppelin
10 | m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0}
11 | m_ShaderKeywords:
12 | m_LightmapFlags: 4
13 | m_EnableInstancingVariants: 0
14 | m_DoubleSidedGI: 0
15 | m_CustomRenderQueue: -1
16 | stringTagMap: {}
17 | disabledShaderPasses: []
18 | m_SavedProperties:
19 | serializedVersion: 3
20 | m_TexEnvs:
21 | - _MainTex:
22 | m_Texture: {fileID: 2800000, guid: d44e9c055280e437eaae7e4b606da179, type: 3}
23 | m_Scale: {x: 1, y: 1}
24 | m_Offset: {x: 0, y: 0}
25 | m_Floats: []
26 | m_Colors: []
27 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Sprites/Materials/Zeppelin.mat.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f1afdbc4eb39e4246be730d30542a642
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 2100000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Sprites/Zeppelin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Demo/Sprites/Zeppelin.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Sprites/Zeppelin.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d44e9c055280e437eaae7e4b606da179
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 5
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 1
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: 1
24 | grayScaleToAlpha: 0
25 | generateCubemap: 6
26 | cubemapConvolution: 0
27 | seamlessCubemap: 0
28 | textureFormat: 1
29 | maxTextureSize: 2048
30 | textureSettings:
31 | serializedVersion: 2
32 | filterMode: -1
33 | aniso: 1
34 | mipBias: -1
35 | wrapU: 1
36 | wrapV: 1
37 | wrapW: 1
38 | nPOTScale: 0
39 | lightmap: 0
40 | compressionQuality: 50
41 | spriteMode: 1
42 | spriteExtrude: 1
43 | spriteMeshType: 1
44 | alignment: 0
45 | spritePivot: {x: 0.5, y: 0.5}
46 | spritePixelsToUnits: 100
47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
48 | spriteGenerateFallbackPhysicsShape: 1
49 | alphaUsage: 1
50 | alphaIsTransparency: 1
51 | spriteTessellationDetail: -1
52 | textureType: 8
53 | textureShape: 1
54 | singleChannelComponent: 0
55 | maxTextureSizeSet: 0
56 | compressionQualitySet: 0
57 | textureFormatSet: 0
58 | platformSettings:
59 | - serializedVersion: 2
60 | buildTarget: DefaultTexturePlatform
61 | maxTextureSize: 2048
62 | resizeAlgorithm: 0
63 | textureFormat: -1
64 | textureCompression: 0
65 | compressionQuality: 50
66 | crunchedCompression: 0
67 | allowsAlphaSplitting: 0
68 | overridden: 0
69 | androidETC2FallbackOverride: 0
70 | - serializedVersion: 2
71 | buildTarget: Standalone
72 | maxTextureSize: 2048
73 | resizeAlgorithm: 0
74 | textureFormat: -1
75 | textureCompression: 0
76 | compressionQuality: 50
77 | crunchedCompression: 0
78 | allowsAlphaSplitting: 0
79 | overridden: 0
80 | androidETC2FallbackOverride: 0
81 | - serializedVersion: 2
82 | buildTarget: iPhone
83 | maxTextureSize: 2048
84 | resizeAlgorithm: 0
85 | textureFormat: -1
86 | textureCompression: 0
87 | compressionQuality: 50
88 | crunchedCompression: 0
89 | allowsAlphaSplitting: 0
90 | overridden: 0
91 | androidETC2FallbackOverride: 0
92 | - serializedVersion: 2
93 | buildTarget: Android
94 | maxTextureSize: 2048
95 | resizeAlgorithm: 0
96 | textureFormat: -1
97 | textureCompression: 0
98 | compressionQuality: 50
99 | crunchedCompression: 0
100 | allowsAlphaSplitting: 0
101 | overridden: 0
102 | androidETC2FallbackOverride: 0
103 | - serializedVersion: 2
104 | buildTarget: WebGL
105 | maxTextureSize: 2048
106 | resizeAlgorithm: 0
107 | textureFormat: -1
108 | textureCompression: 0
109 | compressionQuality: 50
110 | crunchedCompression: 0
111 | allowsAlphaSplitting: 0
112 | overridden: 0
113 | androidETC2FallbackOverride: 0
114 | spriteSheet:
115 | serializedVersion: 2
116 | sprites: []
117 | outline: []
118 | physicsShape: []
119 | bones: []
120 | spriteID: 9f081e3f1461d4b54b2b7371af89a34f
121 | vertices: []
122 | indices:
123 | edges: []
124 | weights: []
125 | spritePackingTag:
126 | userData:
127 | assetBundleName:
128 | assetBundleVariant:
129 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Sprites/track.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Demo/Sprites/track.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Demo/Sprites/track.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: da409862d27d0463cacec0950c36cfb8
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 5
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 1
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 | grayScaleToAlpha: 0
25 | generateCubemap: 6
26 | cubemapConvolution: 0
27 | seamlessCubemap: 0
28 | textureFormat: 1
29 | maxTextureSize: 2048
30 | textureSettings:
31 | serializedVersion: 2
32 | filterMode: -1
33 | aniso: -1
34 | mipBias: -1
35 | wrapU: 0
36 | wrapV: 0
37 | wrapW: 0
38 | nPOTScale: 0
39 | lightmap: 0
40 | compressionQuality: 50
41 | spriteMode: 1
42 | spriteExtrude: 1
43 | spriteMeshType: 1
44 | alignment: 0
45 | spritePivot: {x: 0.5, y: 0.5}
46 | spritePixelsToUnits: 100
47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
48 | spriteGenerateFallbackPhysicsShape: 1
49 | alphaUsage: 1
50 | alphaIsTransparency: 1
51 | spriteTessellationDetail: -1
52 | textureType: 8
53 | textureShape: 1
54 | singleChannelComponent: 0
55 | maxTextureSizeSet: 0
56 | compressionQualitySet: 0
57 | textureFormatSet: 0
58 | platformSettings:
59 | - serializedVersion: 2
60 | buildTarget: DefaultTexturePlatform
61 | maxTextureSize: 2048
62 | resizeAlgorithm: 0
63 | textureFormat: -1
64 | textureCompression: 0
65 | compressionQuality: 50
66 | crunchedCompression: 0
67 | allowsAlphaSplitting: 0
68 | overridden: 0
69 | androidETC2FallbackOverride: 0
70 | - serializedVersion: 2
71 | buildTarget: Standalone
72 | maxTextureSize: 2048
73 | resizeAlgorithm: 0
74 | textureFormat: -1
75 | textureCompression: 0
76 | compressionQuality: 50
77 | crunchedCompression: 0
78 | allowsAlphaSplitting: 0
79 | overridden: 0
80 | androidETC2FallbackOverride: 0
81 | - serializedVersion: 2
82 | buildTarget: iPhone
83 | maxTextureSize: 2048
84 | resizeAlgorithm: 0
85 | textureFormat: -1
86 | textureCompression: 0
87 | compressionQuality: 50
88 | crunchedCompression: 0
89 | allowsAlphaSplitting: 0
90 | overridden: 0
91 | androidETC2FallbackOverride: 0
92 | - serializedVersion: 2
93 | buildTarget: Android
94 | maxTextureSize: 2048
95 | resizeAlgorithm: 0
96 | textureFormat: -1
97 | textureCompression: 0
98 | compressionQuality: 50
99 | crunchedCompression: 0
100 | allowsAlphaSplitting: 0
101 | overridden: 0
102 | androidETC2FallbackOverride: 0
103 | - serializedVersion: 2
104 | buildTarget: WebGL
105 | maxTextureSize: 2048
106 | resizeAlgorithm: 0
107 | textureFormat: -1
108 | textureCompression: 0
109 | compressionQuality: 50
110 | crunchedCompression: 0
111 | allowsAlphaSplitting: 0
112 | overridden: 0
113 | androidETC2FallbackOverride: 0
114 | spriteSheet:
115 | serializedVersion: 2
116 | sprites: []
117 | outline: []
118 | physicsShape: []
119 | bones: []
120 | spriteID: b4716d8dd3ab446d3b5af7adaa61263d
121 | vertices: []
122 | indices:
123 | edges: []
124 | weights: []
125 | spritePackingTag:
126 | userData:
127 | assetBundleName:
128 | assetBundleVariant:
129 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Documentation.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: edd6b2a9536694abdaf215d49a3e9bd9
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Documentation/EasySplinePath2D_Documentation.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Documentation/EasySplinePath2D_Documentation.pdf
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Documentation/EasySplinePath2D_Documentation.pdf.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ba62bb40b68524eb1b4c4d93abadafb6
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Documentation/EasySplinePath2D_ScriptingAPI.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Documentation/EasySplinePath2D_ScriptingAPI.pdf
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Documentation/EasySplinePath2D_ScriptingAPI.pdf.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: cc34ae8a462b04b7493f1ae6c79b597c
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/EasySplinePath2D.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1001 &100100000
4 | Prefab:
5 | m_ObjectHideFlags: 1
6 | serializedVersion: 2
7 | m_Modification:
8 | m_TransformParent: {fileID: 0}
9 | m_Modifications: []
10 | m_RemovedComponents: []
11 | m_ParentPrefab: {fileID: 0}
12 | m_RootGameObject: {fileID: 1414421954931328}
13 | m_IsPrefabParent: 1
14 | --- !u!1 &1414421954931328
15 | GameObject:
16 | m_ObjectHideFlags: 0
17 | m_PrefabParentObject: {fileID: 0}
18 | m_PrefabInternal: {fileID: 100100000}
19 | serializedVersion: 5
20 | m_Component:
21 | - component: {fileID: 4779047211087276}
22 | - component: {fileID: 114670559187316500}
23 | - component: {fileID: 114358004978974718}
24 | m_Layer: 0
25 | m_Name: EasySplinePath2D
26 | m_TagString: Untagged
27 | m_Icon: {fileID: 0}
28 | m_NavMeshLayer: 0
29 | m_StaticEditorFlags: 0
30 | m_IsActive: 1
31 | --- !u!4 &4779047211087276
32 | Transform:
33 | m_ObjectHideFlags: 1
34 | m_PrefabParentObject: {fileID: 0}
35 | m_PrefabInternal: {fileID: 100100000}
36 | m_GameObject: {fileID: 1414421954931328}
37 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
38 | m_LocalPosition: {x: 0, y: 0, z: 0}
39 | m_LocalScale: {x: 1, y: 1, z: 1}
40 | m_Children: []
41 | m_Father: {fileID: 0}
42 | m_RootOrder: 0
43 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
44 | --- !u!114 &114358004978974718
45 | MonoBehaviour:
46 | m_ObjectHideFlags: 1
47 | m_PrefabParentObject: {fileID: 0}
48 | m_PrefabInternal: {fileID: 100100000}
49 | m_GameObject: {fileID: 1414421954931328}
50 | m_Enabled: 1
51 | m_EditorHideFlags: 0
52 | m_Script: {fileID: 11500000, guid: 59e9c0eb9b42c884ca2c461b64c5b842, type: 3}
53 | m_Name:
54 | m_EditorClassIdentifier:
55 | path:
56 | points:
57 | - {x: -1, y: 0}
58 | - {x: -0.5, y: 0.5}
59 | - {x: -0.5, y: -0.5}
60 | - {x: 1, y: 0}
61 | closed: 0
62 | setControlPointsAutomatically: 0
63 | offset: {x: 0, y: 0}
64 | lockStatus: 0100000001000000
65 | displayScale: 1
66 | hideControlPoints: 0
67 | allwaysVisible: 0
68 | autoUpdate: 0
69 | defaultControlType: 1
70 | lineColor: {r: 0.84, g: 0.96, b: 1, a: 1}
71 | handleLineColor: {r: 0.16, g: 0.5, b: 1, a: 1}
72 | highlightColor: {r: 1, g: 0.8, b: 0, a: 1}
73 | spacing: 0.1
74 | resolution: 1
75 | started: 0
76 | points: []
77 | selected: 1
78 | offset: {x: 0, y: 0}
79 | anchorIconSize: 0.35
80 | controlIconSize: 0.12
81 | buttonIconSize: 0.19
82 | addIconSize: 0.2
83 | anchorDiameter: 0.17
84 | buttonDiameter: 0.09
85 | controlDiameter: 0.059
86 | lastScale: {x: 1, y: 1, z: 1}
87 | saveOnPlay: 0
88 | --- !u!114 &114670559187316500
89 | MonoBehaviour:
90 | m_ObjectHideFlags: 1
91 | m_PrefabParentObject: {fileID: 0}
92 | m_PrefabInternal: {fileID: 100100000}
93 | m_GameObject: {fileID: 1414421954931328}
94 | m_Enabled: 1
95 | m_EditorHideFlags: 0
96 | m_Script: {fileID: 11500000, guid: 4cc12e466d9df49fca16e170c8032089, type: 3}
97 | m_Name:
98 | m_EditorClassIdentifier:
99 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/EasySplinePath2D.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4d498ad7bb3824ea591fe90b739f8f4b
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 100100000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 76c31ae64bcf441789699d374428f58a
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Bezier.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public static class Bezier {
6 |
7 | public static Vector2 EvaluateQuadratic(Vector2 a, Vector2 b, Vector2 c, float t)
8 | {
9 | Vector2 p0 = Vector2.Lerp(a, b, t);
10 | Vector2 p1 = Vector2.Lerp(b, c, t);
11 | return Vector2.Lerp(p0, p1, t);
12 | }
13 |
14 | public static Vector2 EvaluateCubic(Vector2 a, Vector2 b, Vector2 c, Vector2 d, float t)
15 | {
16 | Vector2 p0 = EvaluateQuadratic(a, b, c, t);
17 | Vector2 p1 = EvaluateQuadratic(b, c, d, t);
18 | return Vector2.Lerp(p0, p1, t);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Bezier.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b875a67708fbc344dbc493082813b3dd
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/EasySplinePath2D.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 59e9c0eb9b42c884ca2c461b64c5b842
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ad02d33f7c8fbb0418a368da5204e42c
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/EasySplinePath2DEditor.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 986088244d85d9e40a21d15c57a094dc
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 74cadbea37bb7c4459a6035ed56f944d
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a485194632709914dade89ffb656968d
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/add.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/add.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 371bcd2fd060c2d4dbbc3e5fa6aef1aa
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 5
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 1
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 | grayScaleToAlpha: 0
25 | generateCubemap: 6
26 | cubemapConvolution: 0
27 | seamlessCubemap: 0
28 | textureFormat: 1
29 | maxTextureSize: 2048
30 | textureSettings:
31 | serializedVersion: 2
32 | filterMode: -1
33 | aniso: 1
34 | mipBias: -1
35 | wrapU: 1
36 | wrapV: 1
37 | wrapW: 1
38 | nPOTScale: 0
39 | lightmap: 0
40 | compressionQuality: 50
41 | spriteMode: 1
42 | spriteExtrude: 1
43 | spriteMeshType: 1
44 | alignment: 0
45 | spritePivot: {x: 0.5, y: 0.5}
46 | spritePixelsToUnits: 100
47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
48 | spriteGenerateFallbackPhysicsShape: 1
49 | alphaUsage: 1
50 | alphaIsTransparency: 1
51 | spriteTessellationDetail: -1
52 | textureType: 2
53 | textureShape: 1
54 | singleChannelComponent: 0
55 | maxTextureSizeSet: 0
56 | compressionQualitySet: 0
57 | textureFormatSet: 0
58 | platformSettings:
59 | - serializedVersion: 2
60 | buildTarget: DefaultTexturePlatform
61 | maxTextureSize: 2048
62 | resizeAlgorithm: 0
63 | textureFormat: -1
64 | textureCompression: 0
65 | compressionQuality: 50
66 | crunchedCompression: 0
67 | allowsAlphaSplitting: 0
68 | overridden: 0
69 | androidETC2FallbackOverride: 0
70 | - serializedVersion: 2
71 | buildTarget: Standalone
72 | maxTextureSize: 2048
73 | resizeAlgorithm: 0
74 | textureFormat: -1
75 | textureCompression: 0
76 | compressionQuality: 50
77 | crunchedCompression: 0
78 | allowsAlphaSplitting: 0
79 | overridden: 0
80 | androidETC2FallbackOverride: 0
81 | - serializedVersion: 2
82 | buildTarget: iPhone
83 | maxTextureSize: 2048
84 | resizeAlgorithm: 0
85 | textureFormat: -1
86 | textureCompression: 0
87 | compressionQuality: 50
88 | crunchedCompression: 0
89 | allowsAlphaSplitting: 0
90 | overridden: 0
91 | androidETC2FallbackOverride: 0
92 | - serializedVersion: 2
93 | buildTarget: Android
94 | maxTextureSize: 2048
95 | resizeAlgorithm: 0
96 | textureFormat: -1
97 | textureCompression: 0
98 | compressionQuality: 50
99 | crunchedCompression: 0
100 | allowsAlphaSplitting: 0
101 | overridden: 0
102 | androidETC2FallbackOverride: 0
103 | - serializedVersion: 2
104 | buildTarget: WebGL
105 | maxTextureSize: 2048
106 | resizeAlgorithm: 0
107 | textureFormat: -1
108 | textureCompression: 0
109 | compressionQuality: 50
110 | crunchedCompression: 0
111 | allowsAlphaSplitting: 0
112 | overridden: 0
113 | androidETC2FallbackOverride: 0
114 | spriteSheet:
115 | serializedVersion: 2
116 | sprites: []
117 | outline: []
118 | physicsShape: []
119 | bones: []
120 | spriteID: 24a2ce3025a874d08bd2c6fa73633209
121 | vertices: []
122 | indices:
123 | edges: []
124 | weights: []
125 | spritePackingTag:
126 | userData:
127 | assetBundleName:
128 | assetBundleVariant:
129 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/boton_recto.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/boton_recto.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/boton_recto_u.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/boton_recto_u.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/control.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/control.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/curve.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/curve.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/mode_auto.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/mode_auto.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/mode_auto_u.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/mode_auto_u.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/mode_free.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/mode_free.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/mode_free_u.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/mode_free_u.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/mode_lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/mode_lock.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/mode_lock_u.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/mode_lock_u.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/node.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/node.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/node.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 34af38b91c189f94bb40bf632cdc6dd4
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 5
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 1
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 | grayScaleToAlpha: 0
25 | generateCubemap: 6
26 | cubemapConvolution: 0
27 | seamlessCubemap: 0
28 | textureFormat: 1
29 | maxTextureSize: 2048
30 | textureSettings:
31 | serializedVersion: 2
32 | filterMode: 1
33 | aniso: 1
34 | mipBias: -1
35 | wrapU: 1
36 | wrapV: 1
37 | wrapW: 1
38 | nPOTScale: 0
39 | lightmap: 0
40 | compressionQuality: 50
41 | spriteMode: 1
42 | spriteExtrude: 1
43 | spriteMeshType: 1
44 | alignment: 0
45 | spritePivot: {x: 0.5, y: 0.5}
46 | spritePixelsToUnits: 100
47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
48 | spriteGenerateFallbackPhysicsShape: 1
49 | alphaUsage: 1
50 | alphaIsTransparency: 1
51 | spriteTessellationDetail: -1
52 | textureType: 2
53 | textureShape: 1
54 | singleChannelComponent: 0
55 | maxTextureSizeSet: 0
56 | compressionQualitySet: 0
57 | textureFormatSet: 0
58 | platformSettings:
59 | - serializedVersion: 2
60 | buildTarget: DefaultTexturePlatform
61 | maxTextureSize: 2048
62 | resizeAlgorithm: 0
63 | textureFormat: -1
64 | textureCompression: 0
65 | compressionQuality: 50
66 | crunchedCompression: 0
67 | allowsAlphaSplitting: 0
68 | overridden: 0
69 | androidETC2FallbackOverride: 0
70 | - serializedVersion: 2
71 | buildTarget: Standalone
72 | maxTextureSize: 2048
73 | resizeAlgorithm: 0
74 | textureFormat: -1
75 | textureCompression: 0
76 | compressionQuality: 50
77 | crunchedCompression: 0
78 | allowsAlphaSplitting: 0
79 | overridden: 0
80 | androidETC2FallbackOverride: 0
81 | - serializedVersion: 2
82 | buildTarget: iPhone
83 | maxTextureSize: 2048
84 | resizeAlgorithm: 0
85 | textureFormat: -1
86 | textureCompression: 0
87 | compressionQuality: 50
88 | crunchedCompression: 0
89 | allowsAlphaSplitting: 0
90 | overridden: 0
91 | androidETC2FallbackOverride: 0
92 | - serializedVersion: 2
93 | buildTarget: Android
94 | maxTextureSize: 2048
95 | resizeAlgorithm: 0
96 | textureFormat: -1
97 | textureCompression: 0
98 | compressionQuality: 50
99 | crunchedCompression: 0
100 | allowsAlphaSplitting: 0
101 | overridden: 0
102 | androidETC2FallbackOverride: 0
103 | - serializedVersion: 2
104 | buildTarget: WebGL
105 | maxTextureSize: 2048
106 | resizeAlgorithm: 0
107 | textureFormat: -1
108 | textureCompression: 0
109 | compressionQuality: 50
110 | crunchedCompression: 0
111 | allowsAlphaSplitting: 0
112 | overridden: 0
113 | androidETC2FallbackOverride: 0
114 | spriteSheet:
115 | serializedVersion: 2
116 | sprites: []
117 | outline: []
118 | physicsShape: []
119 | bones: []
120 | spriteID: ed305276225bc4d86a4c6db07034fc5c
121 | vertices: []
122 | indices:
123 | edges: []
124 | weights: []
125 | spritePackingTag:
126 | userData:
127 | assetBundleName:
128 | assetBundleVariant:
129 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/node_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/node_delete.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/node_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/node_selected.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/nodo_auto.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/nodo_auto.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/nodo_control.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/nodo_control.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/nodo_control_free.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/nodo_control_free.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/rect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2D/Scripts/Editor/Resources/EasySplinePath2D/rect.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/SplinePath2D.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8302e7ba5611a4b41b2802cf6b67a709
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2D/Scripts/SplinePrinter.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4cc12e466d9df49fca16e170c8032089
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f1891de4878c5dd4a8fcb9d5ea3338aa
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Captures~/EasySplinePath2DPlus.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2DPlus/Captures~/EasySplinePath2DPlus.gif
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Demo.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d5d7f229c4fd5134781c73b1e6e6b8d7
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Demo/DemoScene.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 866d3b5e82e94154ba935e71d9c37b08
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Demo/EasyRoadPlus.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | ///
4 | /// Example script that uses EasySplinePath2DPlus to generate a mesh that follows the spline.
5 | ///
6 | [RequireComponent(typeof(EasySplinePath2DPlus))]
7 | [RequireComponent(typeof(MeshFilter))]
8 | [RequireComponent(typeof(MeshRenderer))]
9 | public class EasyRoadPlus : MonoBehaviour
10 | {
11 | public float trackWidth = 3;
12 | [Range(.05f, 1.5f)]
13 | public float segmentLength = 1;
14 | public float tiling = 1;
15 | public bool liveUpdate;
16 |
17 | public void UpdateMesh()
18 | {
19 | SplinePath2D spline = GetComponent().path;
20 | Vector2[] points = spline.GetEquidistancePoints(segmentLength);
21 | GetComponent().mesh = CreateMesh(points, spline.IsClosed, trackWidth);
22 | int texture = Mathf.RoundToInt(tiling * points.Length * segmentLength * .05f);
23 | GetComponent().sharedMaterial.mainTextureScale = new Vector2(1, texture);
24 | }
25 |
26 | ///
27 | /// Function to create the mesh of the road, from the points of the curve.
28 | ///
29 | public Mesh CreateMesh(Vector2[] points, bool closed, float roadWidth)
30 | {
31 | Vector3[] vertices = new Vector3[points.Length * 2];
32 | Vector2[] uvs = new Vector2[vertices.Length];
33 | int numTris = 2 * (points.Length - 1) + ((closed) ? 2 : 0);
34 | int[] tris = new int[numTris * 3];
35 | int vertIndex = 0;
36 | int triIndex = 0;
37 |
38 | for (int i = 0; i < points.Length; i++)
39 | {
40 | Vector2 forward = Vector2.zero;
41 | if (i < points.Length - 1 || closed)
42 | {
43 | forward += points[(i + 1) % points.Length] - points[i];
44 | }
45 | if (i > 0 || closed)
46 | {
47 | forward += points[i] - points[(i - 1 + points.Length) % points.Length];
48 | }
49 | forward.Normalize();
50 | Vector2 left = new Vector2(-forward.y, forward.x);
51 |
52 | vertices[vertIndex] = points[i] + left * roadWidth * .5f;
53 | vertices[vertIndex + 1] = points[i] - left * roadWidth * .5f;
54 |
55 | float completionPercent = i / (float)(points.Length - 1);
56 | float v = 1 - Mathf.Abs(2 * completionPercent - 1);
57 | uvs[vertIndex] = new Vector2(0, v);
58 | uvs[vertIndex + 1] = new Vector2(1, v);
59 |
60 | if (i < points.Length - 1 || closed)
61 | {
62 | tris[triIndex] = vertIndex;
63 | tris[triIndex + 1] = (vertIndex + 2) % vertices.Length;
64 | tris[triIndex + 2] = vertIndex + 1;
65 |
66 | tris[triIndex + 3] = vertIndex + 1;
67 | tris[triIndex + 4] = (vertIndex + 2) % vertices.Length;
68 | tris[triIndex + 5] = (vertIndex + 3) % vertices.Length;
69 | }
70 |
71 | vertIndex += 2;
72 | triIndex += 6;
73 | }
74 |
75 | Mesh mesh = new Mesh();
76 | mesh.vertices = vertices;
77 | mesh.triangles = tris;
78 | mesh.uv = uvs;
79 |
80 | return mesh;
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Demo/EasyRoadPlus.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9e27a41346bc94b4dab4bbae662c82c8
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Demo/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d16453398dcfc0c48bc7a7490035fa5a
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Demo/Editor/EasyRoadPlusEditor.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEditor;
5 |
6 | ///
7 | /// Editor script, used to update the road in real time.
8 | ///
9 | [CustomEditor(typeof(EasyRoadPlus))]
10 | public class EasyRoadPlusEditor : Editor
11 | {
12 | EasyRoadPlus creator;
13 |
14 | void OnSceneGUI()
15 | {
16 | if (creator.liveUpdate && Event.current.type == EventType.Repaint)
17 | {
18 | creator.UpdateMesh();
19 | }
20 | }
21 |
22 | void OnEnable()
23 | {
24 | creator = (EasyRoadPlus)target;
25 | }
26 | }
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Demo/Editor/EasyRoadPlusEditor.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7796478a6100be44d892a8714d07cd3d
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Demo/FollowPathPlus.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | ///
4 | /// This is an example of the usage of Easy Spline Path 2D Plus.
5 | /// In this example we use the function 'GetPointByDistance' to get the position a point in
6 | /// the curve corresponding to a distance measured along the curve starting from the first Node.
7 | ///
8 | public class FollowPathPlus : MonoBehaviour {
9 | // A link to the GameObject containing the EasySplinePath2DPlus script (provided by user in the editor)
10 | public EasySplinePath2DPlus spline2D;
11 |
12 | // The speed of the object in Units per second
13 | public float speed = 5;
14 |
15 | // Should the object align to the movement (the X axis is used as forward)
16 | public bool align = false;
17 |
18 | // Set the position to the curve position at 'dist' distance and calculate the next distance at current speed.
19 | public float dist = 0;
20 |
21 | private void Update() {
22 | transform.position = spline2D.GetPointByDistance(dist, true);
23 | dist += speed * Time.deltaTime;
24 | if (align) {
25 | transform.LookAt(spline2D.GetPointByDistance(dist, true), -spline2D.transform.forward);
26 | }
27 | }
28 |
29 | #if UNITY_EDITOR
30 | [Header("Editor")]
31 | public bool moveOnValidate;
32 | public bool alignOnValidate;
33 |
34 | private void OnValidate() {
35 | if (spline2D) {
36 | spline2D.SetUp();
37 | dist = Mathf.Repeat(dist, spline2D.GetLength());
38 | if (moveOnValidate) {
39 | Move();
40 | }
41 | if (alignOnValidate) {
42 | Align();
43 | }
44 | }
45 | }
46 |
47 | [ContextMenu("Move")]
48 | private void Move() {
49 | transform.position = spline2D.GetPointByDistance(dist, true);
50 | }
51 |
52 | [ContextMenu("Align")]
53 | private void Align() {
54 | float dist1, dist2;
55 | float length = spline2D.GetLength();
56 | if (dist < length) {
57 | dist1 = dist;
58 | dist2 = Mathf.Min(dist + 0.00001F, length);
59 | } else {
60 | dist1 = Mathf.Max(length - 0.00001F, 0);
61 | dist2 = length;
62 | }
63 | Vector3 pos1 = spline2D.GetPointByDistance(dist1, true);
64 | Vector3 pos2 = spline2D.GetPointByDistance(dist2, true);
65 | transform.LookAt(transform.position + (pos2 - pos1), -spline2D.transform.forward);
66 | }
67 | #endif
68 | }
69 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Demo/FollowPathPlus.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 798e2611eb6e4cd2a3cc37d72c427426
3 | timeCreated: 1685204687
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 984ff1d085b33b7419c20a6fe98265ed
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/EasySplinePath2DPlus.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d30c6edeb7941de47a9fa716f7ec2f98
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1f187fff3afb2d0429c2e0aae0d9fa12
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/EasySplinePath2DPlusEditor.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d543b2f9ba6676d45b29fb10ce09920b
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d652424bc514f344e960124949f992a9
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9833944e07a4e9c4094619a95dab20ef
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/add.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/boton_recto.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/boton_recto.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/boton_recto_u.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/boton_recto_u.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/control.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/control.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/curve.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/curve.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/mode_auto.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/mode_auto.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/mode_auto_u.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/mode_auto_u.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/mode_free.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/mode_free.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/mode_free_u.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/mode_free_u.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/mode_lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/mode_lock.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/mode_lock_u.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/mode_lock_u.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/node.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/node.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/node_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/node_delete.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/node_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/node_selected.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/nodo_auto.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/nodo_auto.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/nodo_control.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/nodo_control.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/nodo_control_free.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/nodo_control_free.png
--------------------------------------------------------------------------------
/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/rect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/EasySplinePath2DPlus/Scripts/Editor/Resources/EasySplinePath2D/rect.png
--------------------------------------------------------------------------------
/Assets/Tools/ImageCropping.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 070f6a956b394744a9cf63a9433fa5ce
3 | timeCreated: 1720275646
--------------------------------------------------------------------------------
/Assets/Tools/ImageCropping/Captures~/ImageCropping.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/ImageCropping/Captures~/ImageCropping.gif
--------------------------------------------------------------------------------
/Assets/Tools/ImageCropping/Documentation.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6c8e9a3f397d4488bdf242795e91413c
3 | timeCreated: 1720275686
--------------------------------------------------------------------------------
/Assets/Tools/ImageCropping/Documentation/ImageCropping.md:
--------------------------------------------------------------------------------
1 | ## ImageCropping
2 | * 裁剪区域设置中的「左上宽高」、「对角坐标」、「四边边距」三个按钮可以不同方式展示裁剪区域数值。
3 | * 拖动裁剪框边缘可以调整裁剪框,拖动到视口边缘可以自动滚动视口。
4 | * 拖动视口其他位置可以移动整个视口位置,在视口中滚动鼠标滚轮可以缩放视口。
5 | * 视口右下角可以快捷设置裁剪区域。
6 | * 视口右上角可以设置圆角类型和相关参数。
7 | * 视口左上角可以切换预览开关,打开预览开关,则隐藏原图,显示裁剪后的图片。
8 | * 视口下方的「100%」、「原图适应屏幕」、「整体适应屏幕」三个按钮可以将视口缩放到指定大小。
9 | * 裁剪后的图片可保存至文件。
--------------------------------------------------------------------------------
/Assets/Tools/ImageCropping/Documentation/ImageCropping.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 25e9b5f76aeab094cbf06fae79e6a0e6
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/ImageCropping/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7b98c35b8d254012a32e4d19236126f8
3 | timeCreated: 1720275707
--------------------------------------------------------------------------------
/Assets/Tools/ImageCropping/Editor/ImageCropping - Unlit.shader:
--------------------------------------------------------------------------------
1 | Shader "Hidden/ImageCropping/Unlit"
2 | {
3 | Properties
4 | {
5 | _Mode("Mode", int) = 0
6 |
7 | _Color("Color", Color) = (1,1,1,1)
8 | _MainTex("Base (RGB), Alpha (A)", 2D) = "white" {}
9 | _ScaleAndOffset("Scale And Offset", Vector) = (1, 1, 0, 0)
10 |
11 | _CornerMode("Corner Mode", int) = 0
12 | _RoundRadiusX("Round Radius X", Range(0, 0.5)) = 0
13 | _RoundRadiusY("Round Radius Y", Range(0, 0.5)) = 0
14 | _HyperEllipticPower("Hyper Rlliptic Power", Range(0, 10)) = 3
15 | _Softness ("Softness", Range(0, 1)) = 0
16 | _EdgeMove ("Edge Move", Range(-1, 1)) = 0
17 | }
18 | SubShader
19 | {
20 | LOD 200
21 |
22 | Tags
23 | {
24 | "Queue" = "Transparent"
25 | "IgnoreProjector" = "True"
26 | "RenderType" = "Transparent"
27 | }
28 |
29 | Pass
30 | {
31 | Cull Off
32 | Lighting Off
33 | ZWrite Off
34 | Offset -1, -1
35 | Fog { Mode Off }
36 | Blend SrcAlpha OneMinusSrcAlpha
37 |
38 | CGPROGRAM
39 | #pragma vertex vert
40 | #pragma fragment frag
41 |
42 | #include "UnityCG.cginc"
43 |
44 | int _Mode;
45 | sampler2D _MainTex;
46 | float4 _ScaleAndOffset;
47 | fixed4 _Color;
48 |
49 | int _CornerMode;
50 | float _RoundRadiusX;
51 | float _RoundRadiusY;
52 | float _HyperEllipticPower;
53 | float _Softness;
54 | float _EdgeMove;
55 |
56 | struct appdata {
57 | float4 vertex : POSITION;
58 | float2 uv : TEXCOORD0;
59 | };
60 |
61 | struct v2f {
62 | float4 vertex : SV_POSITION;
63 | float2 uv : TEXCOORD0;
64 | };
65 |
66 | v2f vert (appdata v) {
67 | v2f o;
68 | o.vertex = UnityObjectToClipPos(v.vertex);
69 | o.uv = v.uv;
70 | return o;
71 | }
72 |
73 | fixed4 frag (v2f i) : SV_Target {
74 | half4 col;
75 | if (_Mode == 0) {
76 | col = _Color;
77 | if (_CornerMode == 0) {
78 | col.a = 0;
79 | }
80 | } else {
81 | float2 uv = i.uv * _ScaleAndOffset.xy + _ScaleAndOffset.zw;
82 | col = tex2D(_MainTex, uv);
83 | if (uv.x < 0 || uv.x > 1 || uv.y < 0 || uv.y > 1) {
84 | col.a = 0;
85 | }
86 | }
87 | if (_CornerMode == 1) {
88 | if (_RoundRadiusX > 0 && _RoundRadiusY > 0) {
89 | float4 range = float4(_RoundRadiusX, _RoundRadiusY, 1 - _RoundRadiusX, 1 - _RoundRadiusY);
90 | float2 delta = abs(i.uv - clamp(i.uv, range.xy, range.zw)) / float2(_RoundRadiusX, _RoundRadiusY);
91 | col.a *= clamp((1 - (delta.x * delta.x + delta.y * delta.y)) / (_Softness + 0.0001) + _EdgeMove, 0, 1);
92 | }
93 | } else if (_CornerMode == 2) {
94 | float2 pos = i.uv * 2 - 1;
95 | float distance = pow(abs(pos.x), _HyperEllipticPower) + pow(abs(pos.y), _HyperEllipticPower);
96 | col.a *= clamp((1 - distance) / (_Softness + 0.0001) + _EdgeMove, 0, 1);
97 | }
98 | return col;
99 | }
100 | ENDCG
101 | }
102 | }
103 | FallBack "Unlit/Transparent"
104 | }
--------------------------------------------------------------------------------
/Assets/Tools/ImageCropping/Editor/ImageCropping - Unlit.shader.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 464f6aed3d0723443814cbfaff2d28b7
3 | ShaderImporter:
4 | externalObjects: {}
5 | defaultTextures: []
6 | nonModifiableTextures: []
7 | preprocessorOverride: 0
8 | userData:
9 | assetBundleName:
10 | assetBundleVariant:
11 |
--------------------------------------------------------------------------------
/Assets/Tools/ImageCropping/Editor/ImageCropping.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b84923ffe1754304c9fd4f837fad02ab
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/ImageCropping/Editor/PopupContent.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: wangyun
3 | * @CreateTime: 2024-08-08 21:44:43 731
4 | * @LastEditor: wangyun
5 | * @EditTime: 2024-08-08 21:44:43 735
6 | */
7 |
8 | using System;
9 | using UnityEditor;
10 | using UnityEngine;
11 |
12 | namespace WYTools.ImageCropping {
13 | public class PopupContent : PopupWindowContent {
14 | public float Width { get; set; }
15 | public float Height { get; set; }
16 | public Action OnGUIAction { get; set; }
17 | public Action OnOpenAction { get; set; }
18 | public Action OnCloseAction { get; set; }
19 |
20 | public override Vector2 GetWindowSize() => new Vector2(Width, Height);
21 |
22 | public override void OnGUI(Rect rect) => OnGUIAction?.Invoke(rect);
23 |
24 | public override void OnOpen() => OnOpenAction?.Invoke();
25 |
26 | public override void OnClose() => OnCloseAction?.Invoke();
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Assets/Tools/ImageCropping/Editor/PopupContent.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fb56baa0c0744ad198c36152367ac9ea
3 | timeCreated: 1725976122
--------------------------------------------------------------------------------
/Assets/Tools/ImageCropping/Editor/WYTools.ImageCropping.Editor.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "WYTools.ImageCropping.Editor",
3 | "rootNamespace": "",
4 | "references": [],
5 | "includePlatforms": [
6 | "Editor"
7 | ],
8 | "excludePlatforms": [],
9 | "allowUnsafeCode": false,
10 | "overrideReferences": false,
11 | "precompiledReferences": [],
12 | "autoReferenced": true,
13 | "defineConstraints": [],
14 | "versionDefines": [],
15 | "noEngineReferences": false
16 | }
--------------------------------------------------------------------------------
/Assets/Tools/ImageCropping/Editor/WYTools.ImageCropping.Editor.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1db5b315050c4ea98fea57a9b0bbfa20
3 | timeCreated: 1720275807
--------------------------------------------------------------------------------
/Assets/Tools/ImageCropping/README.md:
--------------------------------------------------------------------------------
1 | ## ImageCropping
2 |
3 | 预览Texture对象,设置裁剪区域,设置圆角,预览裁剪后图片,保存为新文件。
4 | 
5 | * 以三种方式展示裁剪框数值。
6 | * 在带标尺和滚动条的视口中展示原图。
7 | * 拖动裁剪框边缘可以调整裁剪框,拖动到视口边缘可以自动滚动视口。
8 | * 拖动视口其他位置可以移动整个视口位置,在视口中滚动鼠标滚轮可以缩放视口。
9 | * 支持快捷缩放和快捷设置裁剪区域。
10 | * 两种方式(普通圆角矩形、小米Logo)设置裁剪后的图片的圆角。
11 | * 可实时预览裁剪后的图片。
12 | * 可保存裁剪后的图片到新文件。
--------------------------------------------------------------------------------
/Assets/Tools/ImageCropping/README.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ed23ed20fcae49d88ee5c245462a18a3
3 | timeCreated: 1720798789
--------------------------------------------------------------------------------
/Assets/Tools/ImageCropping/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "com.wy.tools.image-cropping",
3 | "displayName": "WYTools.ImageCropping",
4 | "version": "0.1.1",
5 | "description": "预览Texture对象,设置裁剪区域,设置圆角,预览裁剪后图片,保存为新文件。"
6 |
7 | }
--------------------------------------------------------------------------------
/Assets/Tools/ImageCropping/package.json.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 460323cdb90408a439058eb7d1b7723e
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/ReferenceReplace.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6d34288f367128a4eb920b801b6f7710
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/ReferenceReplace/Captures~/AssetsDeepCloner.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/ReferenceReplace/Captures~/AssetsDeepCloner.gif
--------------------------------------------------------------------------------
/Assets/Tools/ReferenceReplace/Captures~/ReferenceReplace.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/ReferenceReplace/Captures~/ReferenceReplace.gif
--------------------------------------------------------------------------------
/Assets/Tools/ReferenceReplace/Documentation.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0455b4d9c1c934f4a954be28251254d4
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/ReferenceReplace/Documentation/AssetsDeepCloner.md:
--------------------------------------------------------------------------------
1 | ## AssetsDeepCloner
2 |
3 | * 深拷贝资产——对多个目标资产建立副本,并在副本中保留相互之间的引用关系,而不是引用原文件。
4 | 实现方式:
5 | 1. 将所有原资产的GUID与new出来的新GUID一对一建立映射关系。
6 | 2. 将原资产文件和对应的meta文件克隆。
7 | 3. 根据映射关系,将修改克隆得到的meta文件内的GUID改为新的GUID。
8 | 4. 在克隆得到的资产文件内搜索原资产的GUID并替换为新GUID。
9 | * 在需要拷贝的单个或若干个资产处右键,点击「克隆(复制内部依赖)」,即可进行深拷贝。
--------------------------------------------------------------------------------
/Assets/Tools/ReferenceReplace/Documentation/AssetsDeepCloner.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: bde52c88d53c424980a549c15f47614a
3 | timeCreated: 1724856883
--------------------------------------------------------------------------------
/Assets/Tools/ReferenceReplace/Documentation/ReferenceReplace.md:
--------------------------------------------------------------------------------
1 | ## ReferenceReplace
2 |
3 | * **映射列表:** 保存替换前与替换后对象的映射关系。**(本工具不是把列表左边替换为列表右边,而是把对列表左边的引用替换为对列表右边的引用)**
4 | * 原引用可以重复,但以排在列表前面的为准。
5 | * 映射关系可以冗余,替换时若找不到则跳过。
6 | * **交换按钮:** 在列表标题栏「原引用」与「替换为」之间的按钮,点击可以交换整个列表的左右两边。
7 | * **详情:**
8 | * 列表行左右两边对象的类型毫无关系时,会出现警告图标,提示检查对象类型。
9 | * 列表行左右两边对象都是GameObject时,会出现按钮,点击可将两个GameObject都拥有的组件加入映射列表。
10 | * **列表支持拖放:**
11 | * 可在Project或Hierarchy窗口选中多个对象,拖放到列表左半边或者右半边非ObjectField处,列表高亮区域将被覆盖。
12 | * 拖放时按住Ctrl键,改为插入模式,选中的对象将被插入列表指定位置。
13 | * **「清空列表」按钮:** 用于快捷清空整个列表。
14 | * ~~「全选左边」、「选中对象覆盖到左边」、「全选右边」、「选中对象覆盖到右边」四个按钮:用于快捷操作列表:~~
15 | ~~* 点击「全选左边」按钮,继续选中想要添加的对象,点击「选中对象覆盖到左边」按钮,新选中的对象将添加到列表末尾「原引用」列。~~
16 | ~~* 点击「全选右边」按钮,继续选中想要添加的对象,点击「选中对象覆盖到右边」按钮,新选中的对象将添加到列表末尾「替换为」列。~~
17 | * **操作目标:** 可以是场景内的GameObject,也可以是一个文件夹或资产文件。
18 | * 如果目标是个场景内对象,则通过遍历引用进行替换。
19 | * 如果目标是个以 YAML 格式储存的资产文件,则以文本形式打开文件,搜索GUID和FileID并替换保存。
20 | * 如果目标是个非Unity序列化资产文件,则以文本形式打开meta文件,搜索GUID和FileID并替换保存。
21 | * 如果目标是个文件夹,则遍历文件夹内所有文件,对每个资产文件进行操作。
22 | * **「替换引用」按钮:** 对目标执行操作。
23 | * ~~「生成副本并替换」按钮:先生成目标文件的副本,然后对副本进行修改。~~
24 | ~~* 如果替换目标是一个序列化为文本的资产,则根据一定的命名规则新建副本,然后对副本进行修改。~~
25 | ~~* 如果替换目标是一个文件夹,则根据一定的命名规则新建一个文件夹,按对应路径为所有原目录下可操作的资产新建副本,然后对所有副本进行修改。~~
--------------------------------------------------------------------------------
/Assets/Tools/ReferenceReplace/Documentation/ReferenceReplace.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 73730bbd7958eb042b6ec2703dd21ed2
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/ReferenceReplace/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 003255cbaf8a87b42af95dd4b3594c41
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/ReferenceReplace/Editor/AssetsDeepCloner.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6b2d9aaa9b454364ab19b424e828cc6a
3 | timeCreated: 1723564219
--------------------------------------------------------------------------------
/Assets/Tools/ReferenceReplace/Editor/ReferenceReplace.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: af7fe61f971c4806a90bcd1ae65b38ee
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/ReferenceReplace/Editor/Utility.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7e47965847d24d68bf9216a98ef5fcce
3 | timeCreated: 1723523385
--------------------------------------------------------------------------------
/Assets/Tools/ReferenceReplace/Editor/WYTools.ReferenceReplace.Editor.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "WYTools.ReferenceReplace.Editor",
3 | "rootNamespace": "",
4 | "references": [],
5 | "includePlatforms": [
6 | "Editor"
7 | ],
8 | "excludePlatforms": [],
9 | "allowUnsafeCode": false,
10 | "overrideReferences": false,
11 | "precompiledReferences": [],
12 | "autoReferenced": true,
13 | "defineConstraints": [],
14 | "versionDefines": [],
15 | "noEngineReferences": false
16 | }
--------------------------------------------------------------------------------
/Assets/Tools/ReferenceReplace/Editor/WYTools.ReferenceReplace.Editor.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c8fdfad30d444d4ab4cdea7c646b282e
3 | timeCreated: 1721155996
--------------------------------------------------------------------------------
/Assets/Tools/ReferenceReplace/README.md:
--------------------------------------------------------------------------------
1 | ## ReferenceReplace
2 |
3 | 设置一组映射关系列表,将目标内所有对列表左边的引用替换为列表右边。
4 | 如果目标是个场景内对象,则通过遍历引用进行替换。
5 | 如果目标是个资源文件,则通过文本替换的方式替换对应GUID和FileID。
6 | 如果目标是个文件夹,则遍历文件夹里所有资源文件进行替换。
7 | 
8 | * **列表:** 原引用和替换为的映射表。**(本工具不是把列表左边替换为列表右边,而是把对列表左边的引用替换为对列表右边的引用)**
9 | * **交换按钮:** 在列表标题栏「原引用」与「替换为」之间的按钮,点击可以交换整个列表的左右两边。
10 | * **详情:**
11 | * 列表行左右两边对象的类型毫无关系时,会出现警告图标,提示检查对象类型。
12 | * 列表行左右两边对象都是GameObject时,会出现按钮,点击可将两个GameObject都拥有的组件加入映射列表。
13 | * **列表支持拖放:**
14 | * 可选中多个对象,拖放到列表左半边或者右半边非ObjectField处,列表高亮区域将被覆盖。
15 | * 拖放时按住Ctrl键,变为插入模式,选中的对象将被插入列表指定位置。
16 | * **操作目标:** 可以是场景内的GameObject,也可以是一个文件夹或资产文件。
17 | * 如果目标是个场景内对象,则通过遍历引用进行替换。
18 | * 如果目标是个以 YAML 格式储存的资产文件,则以文本形式打开文件,搜索GUID和FileID并替换保存。
19 | * 如果目标是个非Unity序列化资产文件,则以文本形式打开meta文件,搜索GUID和FileID并替换保存。
20 | * 如果目标是个文件夹,则遍历文件夹内所有文件,对每个资产文件进行操作。
21 |
22 | ## AssetsDeepCloner
23 |
24 | 深拷贝资产——对多个目标资产建立副本,并在副本中保留相互之间的引用关系,而不是引用原文件。
25 | 实现方式:
26 | 1. 将所有原资产的GUID与new出来的新GUID一对一建立映射关系。
27 | 2. 将原资产文件和对应的meta文件克隆。
28 | 3. 根据映射关系,将修改克隆得到的meta文件内的GUID改为新的GUID。
29 | 4. 在克隆得到的资产文件内搜索原资产的GUID并替换为新GUID。
30 | 
31 | 在需要拷贝的单个或若干个资产处右键,点击「克隆(复制内部依赖)」,即可进行深拷贝。
--------------------------------------------------------------------------------
/Assets/Tools/ReferenceReplace/README.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 00fe44c413677a041ae8c659378c7ad6
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/ReferenceReplace/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "com.wy.tools.reference-replace",
3 | "displayName": "WYTools.ReferenceReplace",
4 | "version": "0.3.0",
5 | "description": "设置一组映射关系列表,将目标内所有对列表左边的引用替换为列表右边。\n如果目标是个场景内对象,则通过遍历引用进行替换。\n如果目标是个以 YAML 格式储存的资产文件,则以文本形式打开文件,搜索GUID并替换保存。\n如果目标是个文件夹,则遍历文件夹内所有文件,对每个 YAML 格式储存的资产文件进行操作。\n\n另外,还在资产右键菜单提供了资产深拷贝功能,可对多个目标资产建立副本,并在副本中保留相互之间的引用关系,而不是引用原文件。"
6 |
7 | }
--------------------------------------------------------------------------------
/Assets/Tools/ReferenceReplace/package.json.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3b785e0414f740b429ea5809f89aca12
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/SpriteAtlasInspector.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 180d677ee87fc864ea782909a5e2454a
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/SpriteAtlasInspector/Captures~/SpriteAtlasInspector.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/SpriteAtlasInspector/Captures~/SpriteAtlasInspector.png
--------------------------------------------------------------------------------
/Assets/Tools/SpriteAtlasInspector/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 415311dae4b139e459a4f4acfade40ef
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/SpriteAtlasInspector/Editor/SpriteAtlasImporterInspector.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b11cb059145f4ea597ff0b0d0b57e569
3 | timeCreated: 1689660658
--------------------------------------------------------------------------------
/Assets/Tools/SpriteAtlasInspector/Editor/SpriteAtlasInspector.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 404f8f0a79ed4166bceed94dac43f6e9
3 | timeCreated: 1687343285
--------------------------------------------------------------------------------
/Assets/Tools/SpriteAtlasInspector/Editor/WYTools.SpriteAtlasInspector.Editor.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "WYTools.SpriteAtlasInspector.Editor",
3 | "rootNamespace": "",
4 | "references": [],
5 | "includePlatforms": [
6 | "Editor"
7 | ],
8 | "excludePlatforms": [],
9 | "allowUnsafeCode": false,
10 | "overrideReferences": false,
11 | "precompiledReferences": [],
12 | "autoReferenced": true,
13 | "defineConstraints": [],
14 | "versionDefines": [],
15 | "noEngineReferences": false
16 | }
--------------------------------------------------------------------------------
/Assets/Tools/SpriteAtlasInspector/Editor/WYTools.SpriteAtlasInspector.Editor.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2ba5c4ab5d2a40a480c7d8a98e1ad00d
3 | timeCreated: 1721156029
--------------------------------------------------------------------------------
/Assets/Tools/SpriteAtlasInspector/README.md:
--------------------------------------------------------------------------------
1 | ## SpriteAtlasInspector
2 |
3 | 在SpriteAtlas检视面板末尾区域新增「去重」、「深入文件夹去重」、「清空列表」、「添加选中对象」四个按钮。
4 | 
5 | * **去重:** 去除列表中重复的项。
6 | * **深入文件夹去重:** 列表中的文件夹如果包含列表中的其他项,也将去除重复的项。
7 | * **清空列表:** 清空列表。
8 | * **添加选中对象:** 将当前选中的所有对象添加到列表末尾。
--------------------------------------------------------------------------------
/Assets/Tools/SpriteAtlasInspector/README.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: eb947e662a292424889b61370eb7e834
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/SpriteAtlasInspector/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "com.wy.tools.sprite-atlas-inspector",
3 | "displayName": "WYTools.SpriteAtlasInspector",
4 | "version": "0.1.1",
5 | "description": "在SpriteAtlas检视面板末尾区域新增「去重」、「深入文件夹去重」、「清空列表」、「添加选中对象」四个按钮。"
6 |
7 | }
--------------------------------------------------------------------------------
/Assets/Tools/SpriteAtlasInspector/package.json.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5245cee009dc8a74db8e06d40f022a5a
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/TransformInspector.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4d424671f878010468299bb53fda8114
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/TransformInspector/Captures~/RectTransformInspector.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/TransformInspector/Captures~/RectTransformInspector.gif
--------------------------------------------------------------------------------
/Assets/Tools/TransformInspector/Captures~/TransformInspector.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/TransformInspector/Captures~/TransformInspector.gif
--------------------------------------------------------------------------------
/Assets/Tools/TransformInspector/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: dbb1237aee5d7bb4e8a293812ebe9adf
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/TransformInspector/Editor/RectTransformInspector.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 321244fae576435f917b6c76bfb74651
3 | timeCreated: 1684315774
--------------------------------------------------------------------------------
/Assets/Tools/TransformInspector/Editor/TransformInspector.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d0724fdb20f64f3cafce384f6b40a3ac
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/TransformInspector/Editor/WYTools.TransformInspector.Editor.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "WYTools.TransformInspector.Editor",
3 | "rootNamespace": "",
4 | "references": [],
5 | "includePlatforms": [
6 | "Editor"
7 | ],
8 | "excludePlatforms": [],
9 | "allowUnsafeCode": false,
10 | "overrideReferences": false,
11 | "precompiledReferences": [],
12 | "autoReferenced": true,
13 | "defineConstraints": [],
14 | "versionDefines": [],
15 | "noEngineReferences": false
16 | }
--------------------------------------------------------------------------------
/Assets/Tools/TransformInspector/Editor/WYTools.TransformInspector.Editor.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f9baadafd3464fff98650ca05b75f034
3 | timeCreated: 1721156054
--------------------------------------------------------------------------------
/Assets/Tools/TransformInspector/README.md:
--------------------------------------------------------------------------------
1 | ## TransformInspector
2 |
3 | 在Transform检视面板最左侧区域新增右键菜单,添加「重置」、「保留2位小数」、「显示Global」三个功能。
4 | 在RectTransform检视面板末尾区域新增「保留整数」、「保留2位小数」两个按钮。
5 | 
6 | 
--------------------------------------------------------------------------------
/Assets/Tools/TransformInspector/README.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 063281500908d02439ff056888857461
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/TransformInspector/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "com.wy.tools.transform-inspector",
3 | "displayName": "WYTools.TransformInspector",
4 | "version": "0.1.1",
5 | "description": "在Transform检视面板最左侧区域新增右键菜单,添加「重置」、「保留2位小数」、「显示Global」三个功能。\n在RectTransform检视面板末尾区域新增「保留整数」、「保留2位小数」两个按钮。"
6 |
7 | }
--------------------------------------------------------------------------------
/Assets/Tools/TransformInspector/package.json.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: af2f2927627a6034280868e971bcac27
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2385478b2bf84494a848cdf36a313dc1
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/Captures~/SearchComponent.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/TransformSearch/Captures~/SearchComponent.gif
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/Captures~/SearchReferenceInScene.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/TransformSearch/Captures~/SearchReferenceInScene.gif
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/Documentation.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6f60d346479d1b64e888f873eaab52a2
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/Documentation/TransformSearch.md:
--------------------------------------------------------------------------------
1 | ## TransformSearch
2 |
3 | 待补充
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/Documentation/TransformSearch.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 77583e8394da53844bf046dad5db3eef
3 | timeCreated: 1719853636
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c56c6835567b2254eb8f6dc7386281d6
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/Editor/BaseSearch.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8ce779b6e1014e21a776eb7c62146ae3
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/Editor/SearchComponent.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: wangyun
3 | * @CreateTime: 2022-05-02 01:13:30 495
4 | * @LastEditor: wangyun
5 | * @EditTime: 2022-05-04 01:51:33 841
6 | */
7 |
8 | using System;
9 | using System.Collections.Generic;
10 | using System.Reflection;
11 | using UnityEngine;
12 | using UnityEditor;
13 |
14 | using UObject = UnityEngine.Object;
15 |
16 | namespace WYTools.TransformSearch {
17 | public class SearchComponent : BaseSearch {
18 | [MenuItem("Tools/WYTools/TransformSearch/SearchComponent")]
19 | private static void Init() {
20 | SearchComponent window = GetWindow("ComponentSearch");
21 | window.minSize = new Vector2(200F, 200F);
22 | window.Show();
23 | }
24 |
25 | [SerializeField]
26 | private string m_ComponentName;
27 | private Type m_ComponentType;
28 |
29 | protected override void OnEnable() {
30 | base.OnEnable();
31 | m_ComponentName = EditorPrefs.GetString(GetType().FullName + ".ComponentName");
32 | }
33 |
34 | protected override List Match(Transform trans) {
35 | List comps = new List();
36 | foreach (var comp in trans.GetComponents()) {
37 | if (comp) {
38 | Type type = comp.GetType();
39 | if (m_ComponentType != null) {
40 | if (m_ComponentType.IsAssignableFrom(type)) {
41 | comps.Add(comp);
42 | }
43 | } else if (type.Name == m_ComponentName) {
44 | comps.Add(comp);
45 | }
46 | } else {
47 | Debug.LogError(trans, trans.root.gameObject);
48 | }
49 | }
50 | return comps;
51 | }
52 |
53 | protected override void DrawHeader() {
54 | GUILayout.BeginHorizontal();
55 | DrawComponentName();
56 | if (Selection.activeObject is MonoScript script) {
57 | Type type = script.GetClass();
58 | if (type != null) {
59 | string typeName = type.Name;
60 | string fullName = type.FullName;
61 | if (m_ComponentName != typeName && m_ComponentName != fullName) {
62 | if (GUILayout.Button(typeName, GUILayout.ExpandWidth(false))) {
63 | m_ComponentName = fullName;
64 | }
65 | }
66 | }
67 | }
68 | if (GUILayout.Button("搜索", GUILayout.Width(60F))) {
69 | m_ComponentType = NameToType(m_ComponentName);
70 | Search();
71 | }
72 | GUILayout.EndHorizontal();
73 | }
74 |
75 | protected void DrawComponentName() {
76 | GUILayout.BeginHorizontal();
77 | EditorGUIUtility.labelWidth = 70F;
78 | string newComponentName = EditorGUILayout.TextField("Comp Name", m_ComponentName);
79 | if (newComponentName != m_ComponentName) {
80 | Undo.RecordObject(this, "ComponentName");
81 | m_ComponentName = newComponentName;
82 | EditorPrefs.SetString(GetType().FullName + ".ComponentName", m_ComponentName);
83 | }
84 | GUILayout.EndHorizontal();
85 | }
86 |
87 | protected static Type NameToType(string typeName) {
88 | Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
89 | foreach (Assembly assembly in assemblies) {
90 | Type type = assembly.GetType(typeName);
91 | if (type != null) {
92 | return type;
93 | }
94 | }
95 | return null;
96 | }
97 | }
98 | }
99 |
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/Editor/SearchComponent.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e453d50892c94358ac81b34c037451af
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/Editor/SearchLayer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: wangyun
3 | * @CreateTime: 2022-07-26 18:47:11 750
4 | * @LastEditor: wangyun
5 | * @EditTime: 2022-07-26 18:47:11 754
6 | */
7 |
8 | using System;
9 | using System.Collections.Generic;
10 | using System.Reflection;
11 | using UnityEngine;
12 | using UnityEditor;
13 |
14 | using UObject = UnityEngine.Object;
15 |
16 | namespace WYTools.TransformSearch {
17 | public class SearchLayer : BaseSearch {
18 | [MenuItem("Tools/WYTools/TransformSearch/SearchLayer")]
19 | private static void Init() {
20 | SearchLayer window = GetWindow("LayerSearch");
21 | window.minSize = new Vector2(200F, 200F);
22 | window.Show();
23 | }
24 |
25 | [SerializeField]
26 | private uint m_LayerMask;
27 |
28 | protected override void OnEnable() {
29 | base.OnEnable();
30 | m_LayerMask = (uint) EditorPrefs.GetInt(GetType().FullName + ".LayerMask");
31 | }
32 |
33 | protected override List Match(Transform trans) {
34 | List comps = new List();
35 | if (((1 << trans.gameObject.layer) & m_LayerMask) > 0) {
36 | comps.Add(trans);
37 | }
38 | return comps;
39 | }
40 |
41 | protected override void DrawHeader() {
42 | GUILayout.BeginHorizontal();
43 | DrawLayer();
44 | if (GUILayout.Button("搜索", GUILayout.Width(60F))) {
45 | Search();
46 | }
47 | GUILayout.EndHorizontal();
48 | }
49 |
50 | protected void DrawLayer() {
51 | string[] displayedOptions = new string[31];
52 | for (int i = 0, length = displayedOptions.Length; i < length; i++) {
53 | displayedOptions[i] = i + ":" + LayerMask.LayerToName(i);
54 | }
55 |
56 | EditorGUIUtility.labelWidth = 40F;
57 | // m_LayerMask = EditorGUILayout.LayerMaskField(m_LayerMask, "Layer");
58 | MethodInfo mi = typeof(EditorGUILayout).GetMethod("LayerMaskField", BindingFlags.Static | BindingFlags.NonPublic,
59 | null, new []{ typeof(uint), typeof(GUIContent), typeof(GUILayoutOption[]) }, null);
60 | uint newLayerMask = (uint) (mi?.Invoke(null, new object[] { m_LayerMask, new GUIContent("Layer"), Array.Empty() }) ?? 0);
61 | if (newLayerMask != m_LayerMask) {
62 | Undo.RecordObject(this, "LayerMask");
63 | m_LayerMask = newLayerMask;
64 | EditorPrefs.SetInt(GetType().FullName + ".LayerMask", (int) m_LayerMask);
65 | Debug.Log(m_LayerMask);
66 | }
67 | }
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/Editor/SearchLayer.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e31e51192fe5486493409a17f95b004b
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/Editor/SearchReferenceInScene.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c6869bb38a5f4f3394f71622410e0a60
3 | timeCreated: 1681643511
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/Editor/SearchReferenceInSceneBySO.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 50c1d169b6d84d69a99854f7fbede1a8
3 | timeCreated: 1688382704
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/README.md:
--------------------------------------------------------------------------------
1 | ## TransformSearch
2 |
3 | 内含多种搜索,搜索结果以节点树的形式呈现。
4 | 可继续扩展搜索条件。
5 | 
6 | 
7 | * **组件搜索:** 以选中目标为搜索范围(支持多选,支持Prefab编辑场景,支持Prefab资产),将范围内所有匹配的组件显示出来。
8 | * 选中某个组件脚本,可以出现自动填入类名的按钮。
9 | * 当以完整类名(Assembly.GetType返回不为null)搜索时,以Type对象进行搜索,搜索结果包括派生类对象。
10 | * 当以非完整类名(有命名空间,却未带命名空间)搜索时,以类名字符串进行搜索,搜索结果可能包括不同命名空间的相同类名对象,但不包括派生类对象。
11 | * **Layer搜索:** 以选中目标为搜索范围(支持多选,支持Prefab编辑场景,支持Prefab资产),将范围内所有匹配的节点显示出来。
12 | * **场景中引用搜索:** 以整个场景为搜索范围(支持Prefab编辑场景),将范围内所有引用到所选对象(支持多选)的组件显示出来。
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/README.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 043d31ee0e16ef14abbfaebdbec0ffdd
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/Samples~/ExtensionForLuaBehaviour/.sample.json:
--------------------------------------------------------------------------------
1 | {
2 | "displayName": "Extension For LuaBehaviour",
3 | "description": "TransformSearch for LuaBehaviour, not sample.",
4 | "createSeparatePackage": false
5 | }
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/Samples~/ExtensionForLuaBehaviour/Editor/SearchLuaBehaviour.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4ad72bd2c8cc4aa19e26cbbc5e01dc30
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/WYTools.TransformSearch.Editor.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "WYTools.TransformSearch.Editor",
3 | "rootNamespace": "",
4 | "references": [],
5 | "includePlatforms": [
6 | "Editor"
7 | ],
8 | "excludePlatforms": [],
9 | "allowUnsafeCode": false,
10 | "overrideReferences": false,
11 | "precompiledReferences": [],
12 | "autoReferenced": true,
13 | "defineConstraints": [],
14 | "versionDefines": [],
15 | "noEngineReferences": false
16 | }
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/WYTools.TransformSearch.Editor.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 980bef0ea42d44968ce8db1191647433
3 | timeCreated: 1721156070
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "com.wy.tools.transform-search",
3 | "displayName": "WYTools.TransformSearch",
4 | "version": "0.1.1",
5 | "description": "内含多种搜索,搜索结果以节点树的形式呈现。\n可继续扩展搜索条件。\n\n组件搜索: 以选中目标为搜索范围(支持多选,支持Prefab编辑场景,支持Prefab资产),将范围内所有匹配的组件显示出来。\n\nLayer搜索:以选中目标为搜索范围(支持多选,支持Prefab编辑场景,支持Prefab资产),将范围内所有匹配的节点显示出来。\n\n场景中引用搜索:以整个场景为搜索范围(支持Prefab编辑场景),将范围内所有引用到所选对象(支持多选)的组件显示出来。",
6 | "samples": [
7 | {
8 | "displayName": "Extension For LuaBehaviour",
9 | "description": "TransformSearch for LuaBehaviour, not sample.",
10 | "path": "Samples~/ExtensionForLuaBehaviour"
11 | }
12 | ]
13 |
14 | }
--------------------------------------------------------------------------------
/Assets/Tools/TransformSearch/package.json.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b3e76e5331671d84bbc87bc2cd2ea93d
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3e1323f21fdcd694d8335af76f7d3dd4
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/README.md:
--------------------------------------------------------------------------------
1 | ## UGUI扩展
2 |
3 | 慢慢添加中。
4 | * **ImageAnimation:** 将多个Sprite以序列帧的形式播放。
5 | * **RawImageAnimation:** 将多个Texture以序列帧的形式播放。
6 | * **OutlineMellow:** 支持调节层数,从而实现更圆滑的描边。
7 | * **TemplateText:** 以模板形式赋值文本框,从而实现把文案留在UI界面中,而代码单独控制文案中的变量。
8 | * **ContentSizeFitterExt:** 增加最大宽高和最小宽高功能,可实现文本框尺寸在字少的时候横向适应文本宽度,字多的时候纵向适应行数的需求。
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/README.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2637afb027409c24ea35898236695a93
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/Runtime.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5f64b021692cdbb4e937fade22d2c250
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/Runtime/ContentSizeFitterExt.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: wangyun
3 | * @CreateTime: 2023-01-05 16:43:40 677
4 | * @LastEditor: wangyun
5 | * @EditTime: 2023-01-05 16:43:40 681
6 | */
7 |
8 | using System;
9 |
10 | namespace UnityEngine.UI {
11 | [AddComponentMenu("Layout/Content Size Fitter Ext", 141)]
12 | [ExecuteAlways]
13 | [RequireComponent(typeof(RectTransform))]
14 | public class ContentSizeFitterExt : ContentSizeFitter {
15 | [SerializeField] protected float m_MinWidth;
16 | public float minWidth {
17 | get => m_MinWidth;
18 | set {
19 | if (!Mathf.Approximately(m_MinWidth, value)) {
20 | m_MinWidth = value;
21 | SetDirty();
22 | }
23 | }
24 | }
25 |
26 | [SerializeField] protected float m_MinHeight;
27 | public float minHeight {
28 | get => m_MinHeight;
29 | set {
30 | if (!Mathf.Approximately(m_MinHeight, value)) {
31 | m_MinHeight = value;
32 | SetDirty();
33 | }
34 | }
35 | }
36 |
37 | [SerializeField] protected float m_MaxWidth;
38 | public float maxWidth {
39 | get => m_MaxWidth;
40 | set {
41 | if (!Mathf.Approximately(m_MaxWidth, value)) {
42 | m_MaxWidth = value;
43 | SetDirty();
44 | }
45 | }
46 | }
47 |
48 | [SerializeField] protected float m_MaxHeight;
49 | public float maxHeight {
50 | get => m_MaxHeight;
51 | set {
52 | if (!Mathf.Approximately(m_MaxHeight, value)) {
53 | m_MaxHeight = value;
54 | SetDirty();
55 | }
56 | }
57 | }
58 |
59 | [NonSerialized] private RectTransform m_Rect;
60 | private RectTransform rectTransform {
61 | get {
62 | if (m_Rect == null)
63 | m_Rect = GetComponent();
64 | return m_Rect;
65 | }
66 | }
67 |
68 | private DrivenRectTransformTracker m_Tracker;
69 |
70 | private void HandleSelfFittingAlongAxis(int axis) {
71 | FitMode fitting = (axis == 0 ? horizontalFit : verticalFit);
72 | if (fitting == FitMode.Unconstrained) {
73 | // Keep a reference to the tracked transform, but don't control its properties:
74 | m_Tracker.Add(this, rectTransform, DrivenTransformProperties.None);
75 | return;
76 | }
77 |
78 | m_Tracker.Add(this, rectTransform,
79 | (axis == 0 ? DrivenTransformProperties.SizeDeltaX : DrivenTransformProperties.SizeDeltaY));
80 |
81 | // Set size to min or preferred size
82 | float size = fitting == FitMode.MinSize ? LayoutUtility.GetMinSize(m_Rect, axis) :
83 | LayoutUtility.GetPreferredSize(m_Rect, axis);
84 | switch (axis) {
85 | case 0:
86 | if (maxWidth > 0 && size > maxWidth) {
87 | size = maxWidth;
88 | }
89 | if (minWidth > 0 && size < minWidth) {
90 | size = minWidth;
91 | }
92 | break;
93 | case 1:
94 | if (maxHeight > 0 && size > maxHeight) {
95 | size = maxHeight;
96 | }
97 | if (minHeight > 0 && size < minHeight) {
98 | size = minHeight;
99 | }
100 | break;
101 | }
102 | rectTransform.SetSizeWithCurrentAnchors((RectTransform.Axis) axis, size);
103 | }
104 |
105 | public override void SetLayoutHorizontal() {
106 | m_Tracker.Clear();
107 | HandleSelfFittingAlongAxis(0);
108 | }
109 |
110 | public override void SetLayoutVertical() {
111 | HandleSelfFittingAlongAxis(1);
112 | }
113 | }
114 | }
115 |
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/Runtime/ContentSizeFitterExt.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a11767405dfe45d88c8a084d2949f186
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/Runtime/ImageAnimation.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: wangyun
3 | * @CreateTime: 2022-08-10 00:53:45 448
4 | * @LastEditor: wangyun
5 | * @EditTime: 2022-08-10 00:53:45 453
6 | */
7 |
8 | using System.Collections.Generic;
9 |
10 | namespace UnityEngine.UI {
11 | [AddComponentMenu("UI/Effects/Image Animation", 15)]
12 | [RequireComponent(typeof(Image))]
13 | public class ImageAnimation : MonoBehaviour {
14 | public int frameRate = 30;
15 | public int currentFrame;
16 | public float speed = 1;
17 | public bool loop;
18 | public List spriteFrames = new List();
19 |
20 | public int FrameRate { get => frameRate; set => frameRate = value; }
21 | public int CurrentFrame { get => currentFrame; set => currentFrame = value; }
22 | public float Speed { get => speed; set => speed = value; }
23 | public bool Loop { get => loop; set => loop = value; }
24 |
25 | private Image m_ImageSource;
26 | private float m_Time;
27 |
28 | private void Update() {
29 | int spriteCount = spriteFrames.Count;
30 | if (spriteCount > 0) {
31 | int playDirection = (int) Mathf.Sign(speed);
32 | float unsignedSpeed = Mathf.Abs(speed);
33 | m_Time += Time.deltaTime * unsignedSpeed;
34 | float interval = 1F / frameRate;
35 | if (m_Time > interval) {
36 | m_Time -= interval;
37 | currentFrame += playDirection;
38 | if (loop) {
39 | currentFrame %= spriteCount;
40 | if (currentFrame < 0) {
41 | currentFrame += spriteCount;
42 | }
43 | } else {
44 | currentFrame = Mathf.Min(currentFrame, spriteCount - 1);
45 | }
46 | Sprite sprite = null;
47 | for (int i = currentFrame; i >= 0 && !sprite; --i) {
48 | sprite = spriteFrames[i];
49 | }
50 | if (!m_ImageSource) {
51 | m_ImageSource = GetComponent();
52 | }
53 | m_ImageSource.sprite = sprite;
54 | }
55 | }
56 | }
57 |
58 | private void OnValidate() {
59 | frameRate = Mathf.Max(frameRate, 1);
60 | int spriteCount = spriteFrames.Count;
61 | if (spriteCount > 0) {
62 | currentFrame = Mathf.Clamp(currentFrame, 0, spriteCount - 1);
63 | Sprite sprite = null;
64 | for (int i = currentFrame; i >= 0 && !sprite; --i) {
65 | sprite = spriteFrames[i];
66 | }
67 | if (!m_ImageSource) {
68 | m_ImageSource = GetComponent();
69 | }
70 | m_ImageSource.sprite = sprite;
71 | }
72 | }
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/Runtime/ImageAnimation.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: eace350fad1241b980f34e876bdd0c3d
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/Runtime/OutlineMellow.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a4808a23fdd14a9a9a3fa099d5c6c282
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/Runtime/RawImageAnimation.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: wangyun
3 | * @CreateTime: 2022-08-10 00:53:45 448
4 | * @LastEditor: wangyun
5 | * @EditTime: 2022-08-10 00:53:45 453
6 | */
7 |
8 | using System.Collections.Generic;
9 |
10 | namespace UnityEngine.UI {
11 | [AddComponentMenu("UI/Effects/Raw Image Animation", 15)]
12 | [RequireComponent(typeof(RawImage))]
13 | public class RawImageAnimation : MonoBehaviour {
14 | public int frameRate = 30;
15 | public int currentFrame;
16 | public float speed = 1;
17 | public bool loop;
18 | public List textureFrames = new List();
19 |
20 | public int FrameRate { get => frameRate; set => frameRate = value; }
21 | public int CurrentFrame { get => currentFrame; set => currentFrame = value; }
22 | public float Speed { get => speed; set => speed = value; }
23 | public bool Loop { get => loop; set => loop = value; }
24 |
25 | private RawImage m_RawImageSource;
26 | private float m_Time;
27 |
28 | private void Update() {
29 | int spriteCount = textureFrames.Count;
30 | if (spriteCount > 0) {
31 | int playDirection = (int) Mathf.Sign(speed);
32 | float unsignedSpeed = Mathf.Abs(speed);
33 | m_Time += Time.deltaTime * unsignedSpeed;
34 | float interval = 1F / frameRate;
35 | if (m_Time > interval) {
36 | m_Time -= interval;
37 | currentFrame += playDirection;
38 | if (loop) {
39 | currentFrame %= spriteCount;
40 | if (currentFrame < 0) {
41 | currentFrame += spriteCount;
42 | }
43 | } else {
44 | currentFrame = Mathf.Min(currentFrame, spriteCount - 1);
45 | }
46 | Texture tex = null;
47 | for (int i = currentFrame; i >= 0 && !tex; --i) {
48 | tex = textureFrames[i];
49 | }
50 | if (!m_RawImageSource) {
51 | m_RawImageSource = GetComponent();
52 | }
53 | m_RawImageSource.texture = tex;
54 | }
55 | }
56 | }
57 |
58 | private void OnValidate() {
59 | frameRate = Mathf.Max(frameRate, 1);
60 | int spriteCount = textureFrames.Count;
61 | if (spriteCount > 0) {
62 | currentFrame = Mathf.Clamp(currentFrame, 0, spriteCount - 1);
63 | Texture tex = null;
64 | for (int i = currentFrame; i >= 0 && !tex; --i) {
65 | tex = textureFrames[i];
66 | }
67 | if (!m_RawImageSource) {
68 | m_RawImageSource = GetComponent();
69 | }
70 | m_RawImageSource.texture = tex;
71 | }
72 | }
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/Runtime/RawImageAnimation.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 996794e1554e41a5b7713fd913dc344f
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/Runtime/TemplateText.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: wangyun
3 | * @CreateTime: 2022-07-02 14:10:46 489
4 | * @LastEditor: wangyun
5 | * @EditTime: 2022-07-02 14:10:46 501
6 | */
7 |
8 | namespace UnityEngine.UI {
9 | [AddComponentMenu("UI/Effects/Template Text", 15)]
10 | [RequireComponent(typeof(Text))]
11 | public class TemplateText : TemplateTextBase {
12 | private Text m_CompText;
13 | public Text CompText {
14 | get {
15 | if (m_CompText == null) {
16 | m_CompText = GetComponent();
17 | }
18 | return m_CompText;
19 | }
20 | }
21 |
22 | [ContextMenu("Apply")]
23 | public override void Apply() {
24 | CompText.text = FinalText;
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/Runtime/TemplateText.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 71087ff5e6ab4b6e8080071a105c21db
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/Runtime/TemplateTextBase.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: wangyun
3 | * @CreateTime: 2023-02-18 17:16:15 439
4 | * @LastEditor: wangyun
5 | * @EditTime: 2023-02-18 17:16:15 444
6 | */
7 |
8 | using System.Text;
9 | using System.Collections.Generic;
10 | using System.Text.RegularExpressions;
11 |
12 | namespace UnityEngine.UI {
13 | public class TemplateTextBase : MonoBehaviour {
14 | [Tooltip("示例:“剩余数量:{leftCount=1}”")]
15 | [TextArea(3, 10)]
16 | [SerializeField]
17 | protected string m_Text = string.Empty;
18 |
19 | public string text {
20 | get => m_Text;
21 | set {
22 | if (string.IsNullOrEmpty(value)) {
23 | if (!string.IsNullOrEmpty(m_Text)) {
24 | m_Text = string.Empty;
25 | Apply();
26 | }
27 | } else {
28 | if (m_Text != value) {
29 | m_Text = value;
30 | Apply();
31 | }
32 | }
33 | }
34 | }
35 |
36 | [SerializeField, HideInInspector]
37 | private List m_VariateNames = new List();
38 | [SerializeField, HideInInspector]
39 | private List m_VariateValues = new List();
40 | public Dictionary Variates {
41 | get {
42 | Dictionary dict = new Dictionary();
43 | for (int i = 0, kLen = m_VariateNames.Count; i < kLen; ++i) {
44 | dict[m_VariateNames[i]] = m_VariateValues[i];
45 | }
46 | return dict;
47 | }
48 | set {
49 | m_VariateNames.Clear();
50 | m_VariateValues.Clear();
51 | if (value != null) {
52 | m_VariateNames.AddRange(value.Keys);
53 | foreach (var _value in value.Values) {
54 | m_VariateValues.Add(_value + string.Empty);
55 | }
56 | }
57 | Apply();
58 | }
59 | }
60 |
61 | public string GetVariate(string varName) {
62 | int index = m_VariateNames.IndexOf(varName);
63 | return index == -1 ? null: m_VariateValues[index];
64 | }
65 | public void SetVariate(string varName, object varValue) {
66 | SetVariate(varName, varValue + string.Empty);
67 | }
68 | public void SetVariate(string varName, string varValue) {
69 | int index = m_VariateNames.IndexOf(varName);
70 | if (index == -1) {
71 | m_VariateNames.Add(varName);
72 | m_VariateValues.Add(varValue);
73 | } else {
74 | m_VariateNames[index] = varName;
75 | m_VariateValues[index] = varValue;
76 | }
77 | Apply();
78 | }
79 |
80 | public string FinalText {
81 | get {
82 | Dictionary dict = new Dictionary();
83 | for (int i = 0, kLen = m_VariateNames.Count; i < kLen; ++i) {
84 | dict[m_VariateNames[i]] = m_VariateValues[i];
85 | }
86 | string[] parts = Regex.Split(text, "{(.*?)=(.*?)}");
87 | int partCount = parts.Length;
88 | StringBuilder sb = new StringBuilder(partCount - partCount / 3);
89 | for (int i = 0; i < partCount - 1; ++i) {
90 | sb.Append(parts[i]);
91 | string varName = parts[++i];
92 | string varValue = parts[++i];
93 | dict.TryGetValue(varName, out string overrideValue);
94 | sb.Append(overrideValue ?? varValue);
95 | }
96 | sb.Append(parts[partCount - 1]);
97 | return sb.ToString();
98 | }
99 | }
100 |
101 | public virtual void Apply() {
102 | }
103 |
104 | private void OnValidate() {
105 | Apply();
106 | }
107 | }
108 | }
109 |
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/Runtime/TemplateTextBase.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2e05ceea9ded4f4bb5cf483ef41e08a2
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/Runtime/TemplateText_TMP.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: wangyun
3 | * @CreateTime: 2022-10-26 11:53:33 727
4 | * @LastEditor: wangyun
5 | * @EditTime: 2022-12-13 13:48:50 276
6 | */
7 |
8 | using UnityEngine;
9 | using UnityEngine.UI;
10 |
11 | namespace TMPro {
12 | [AddComponentMenu("Mesh/Template Text(TMP)", 15)]
13 | [RequireComponent(typeof(TMP_Text))]
14 | public class TemplateText_TMP : TemplateTextBase {
15 | private TMP_Text m_CompText;
16 | public TMP_Text CompText {
17 | get {
18 | if (m_CompText == null) {
19 | m_CompText = GetComponent();
20 | }
21 | return m_CompText;
22 | }
23 | }
24 |
25 | [ContextMenu("Apply")]
26 | public override void Apply() {
27 | CompText.text = FinalText;
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/Runtime/TemplateText_TMP.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c1d92f9755f54277903c6feb612b0a45
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/Runtime/WYTools.UGUIExt.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "WYTools.UGUIExt",
3 | "rootNamespace": "",
4 | "references": [
5 | "GUID:6055be8ebefd69e48b49212b09b47b2f"
6 | ],
7 | "includePlatforms": [
8 | "Editor"
9 | ],
10 | "excludePlatforms": [],
11 | "allowUnsafeCode": false,
12 | "overrideReferences": false,
13 | "precompiledReferences": [],
14 | "autoReferenced": true,
15 | "defineConstraints": [],
16 | "versionDefines": [],
17 | "noEngineReferences": false
18 | }
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/Runtime/WYTools.UGUIExt.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ad20cef541d046a48b691099dc75dfe5
3 | timeCreated: 1721156133
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "com.wy.tools.ugui-ext",
3 | "displayName": "WYTools.UGUIExt",
4 | "version": "0.1.1",
5 | "description": "对UGUI的一些扩展。",
6 | "dependencies": {
7 | "com.unity.ugui": "1.0.0",
8 | "com.unity.textmeshpro": "1.5.0"
9 | }
10 |
11 | }
--------------------------------------------------------------------------------
/Assets/Tools/UGUIExt/package.json.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 35703dda6958543429a74518a9f6074e
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/UITools.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ba260498ebfad564f87c94d7fcb227ab
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Captures~/UITools.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Captures~/UITools.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Captures~/UIToolsIn2019.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Captures~/UIToolsIn2019.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Captures~/UIToolsIn2021.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Captures~/UIToolsIn2021.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 33890c58cd53f524494150b24ccfeaf6
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8e975acc2d8837047b0507f2c6903e66
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/align_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/align_bottom.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/align_center.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/align_center.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/align_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/align_left.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/align_middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/align_middle.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/align_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/align_right.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/align_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/align_top.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/average_gap_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/average_gap_h.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/average_gap_v.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/average_gap_v.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/fit_height.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/fit_height.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/fit_width.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/fit_width.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/group_pack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/group_pack.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/group_unpack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/group_unpack.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/reserved1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/reserved1.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/reserved2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/reserved2.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/reserved3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/reserved3.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/reserved4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/reserved4.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/reserved5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/reserved5.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/reserved6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/reserved6.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/reserved7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/reserved7.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/reserved8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/reserved8.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/same_height.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/same_height.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Res/same_width.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Assets/Tools/UITools/Editor/Res/same_width.png
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/UITools.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7cbcce104946401089600dc5f4150dc2
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/Utility.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9bdc64a10f244040b205241633d2430b
3 | timeCreated: 1725702432
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/WYTools.UITools.Editor.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "WYTools.UITools.Editor",
3 | "rootNamespace": "",
4 | "references": [],
5 | "includePlatforms": [
6 | "Editor"
7 | ],
8 | "excludePlatforms": [],
9 | "allowUnsafeCode": false,
10 | "overrideReferences": false,
11 | "precompiledReferences": [],
12 | "autoReferenced": true,
13 | "defineConstraints": [],
14 | "versionDefines": [],
15 | "noEngineReferences": false
16 | }
--------------------------------------------------------------------------------
/Assets/Tools/UITools/Editor/WYTools.UITools.Editor.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1d1120d9802945fa824ccaff8118a098
3 | timeCreated: 1721156101
--------------------------------------------------------------------------------
/Assets/Tools/UITools/README.md:
--------------------------------------------------------------------------------
1 | ## UITools
2 |
3 | * Unity2021.2及之后版本:在场景窗口的右上角菜单中,勾选 **Overlays/UITools** 即可出现工具栏。
4 | * 拖动工具栏头部两根线条,可以选择停靠模式或悬浮模式。
5 | * 右键工具栏头部两根线条,可以选择折叠模式或展开模式。
6 | * 悬浮模式下,右键工具栏头部两根线条,可以选择横向布局或纵向布局。
7 | * Unity2021.2之前版本:通过菜单项 **Tools/WYTools/UITools** 打开窗口。
8 | * 窗口高度大于等于100时,按钮纵向排列。
9 | * 窗口高度小于100时,按钮横向排列。
10 |
11 | 提供对齐、同宽高、贴合、成组解组、平均行间距等操作,用于更方便地编辑UGUI。
12 | 另外还提供了「图片拖入场景直接创建Image」、「方向键控制节点移动」等功能。
13 | 
14 | 下图是在Unity2021.3里的样子,停靠在Scene窗口右侧工具栏里。
15 | 
16 | 由于在Unity2021.2及以上版本才有Overlay,所以在Unity旧版本的工程中,本工具是一个EditorWindow。
17 | 下图是在Unity2019.4里的样子,停靠在Scene窗口右侧或下侧。
18 | 
19 | ### 按钮
20 | * **对齐按钮:** 分为「上」、「中」、「下」、「左」、「中」、「右」共6个按钮。
21 | 当选中单个UI节点,则将该节点与父节点对齐。当选中多个UI节点,则将其他节点与第一个节点对齐。
22 | 当按住Shift键再点击时,会同时设置节点的轴点。
23 | * **同宽高按钮:** 分为「同宽」和「同高」共2个按钮。
24 | 当选中单个UI节点,则将该节点与父节点同宽高。当选中多个UI节点,则将其他节点与第一个节点同宽高。
25 | * **贴合按钮:** 分为「水平贴合」和「竖直贴合」共2个按钮。
26 | 将选中节点的宽高设置为包裹所有子节点的最小尺寸,由于子节点的范围不一定剧中,所以会移动节点坐标。
27 | 当按住Shift键再点击时,会保持节点坐标,转而修改节点的轴点。
28 | * **组按钮:** 分为「成组」和「解组」共2个按钮。
29 | 成组:在当前位置新建一个名为「Group」节点,并将选中的一个或多个节点设为该节点的子节点。
30 | 解组:如果选中的节点名称为「Group」,则将其所有子节点设为该节点的父节点的子节点,并删除该节点。
31 | * **行间距按钮:** 分为「平均间距」和「平均行距」共2个按钮。
32 | 平均间距:以选中的多个节点的最左边节点和最右边节点为两端,平均分布节点间的间距。
33 | 平均行距:以选中的多个节点的最下边节点和最上边节点为两端,平均分布节点间的行距。
34 | 当按住Shift键再点击时,将会重新定义缝隙(广义缝隙)。
35 | * 按住「Alt」键将图片拖放到 Hierarchy窗口 内的 RectTransform 下可直接创建 Image 。(Unity2021.2及之后版本才支持。)
36 | * **注意:** 放开时,必须按住Alt键,且指针指的是一个RectTransform。否则将默认创建SpriteRenderer。
37 | * 按住「Alt」键将图片拖放到 Scene窗口 内的 Canvas框 中可直接创建 Image 。
38 | * **注意:** 放开时,必须按住Alt键,且指针指在某个Canvas框内。否则将默认创建SpriteRenderer。
39 | * 按住「Alt」键且 Scene窗口 拥有焦点时,方向键可移动 Transform 。
40 | * **注意:** Scene窗口拥有焦点时才可移动。
41 |
--------------------------------------------------------------------------------
/Assets/Tools/UITools/README.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 65c64e571eb57c94caa8cba89029484f
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Tools/UITools/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "com.wy.tools.ui-tools",
3 | "displayName": "WYTools.UITools",
4 | "version": "0.2.2",
5 | "description": "用于更方便地编辑UGUI,由于在Unity2021.2及以上版本才有Overlay,所以在Unity旧版本的工程中,本工具是一个EditorWindow。\n\n对齐按钮、同宽高按钮、贴合按钮、组按钮、行间距按钮。\n\n按住Alt键将图片拖放到Hierarchy窗口内的RectTransform下可直接创建Image。\n按住Alt键将图片拖放到Scene窗口内的Canvas框中可直接创建Image.\n按住Alt键且Scene窗口拥有焦点时,方向键可移动Transform。"
6 |
7 | }
--------------------------------------------------------------------------------
/Assets/Tools/UITools/package.json.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a267b52d30e31a14a9febb6a14f81950
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Captures~/UPMSupport.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/Captures~/UPMSupport.png
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2025 举一反三小伙儿
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.collab-proxy": "2.0.5",
4 | "com.unity.feature.2d": "2.0.0",
5 | "com.unity.feature.development": "1.0.1",
6 | "com.unity.ide.rider": "3.0.24",
7 | "com.unity.ide.visualstudio": "2.0.18",
8 | "com.unity.ide.vscode": "1.2.5",
9 | "com.unity.test-framework": "1.1.33",
10 | "com.unity.textmeshpro": "3.0.6",
11 | "com.unity.timeline": "1.6.5",
12 | "com.unity.ugui": "1.0.0",
13 | "com.unity.upm.develop": "0.5.1",
14 | "com.unity.visualscripting": "1.8.0",
15 | "com.unity.modules.ai": "1.0.0",
16 | "com.unity.modules.androidjni": "1.0.0",
17 | "com.unity.modules.animation": "1.0.0",
18 | "com.unity.modules.assetbundle": "1.0.0",
19 | "com.unity.modules.audio": "1.0.0",
20 | "com.unity.modules.cloth": "1.0.0",
21 | "com.unity.modules.director": "1.0.0",
22 | "com.unity.modules.imageconversion": "1.0.0",
23 | "com.unity.modules.imgui": "1.0.0",
24 | "com.unity.modules.jsonserialize": "1.0.0",
25 | "com.unity.modules.particlesystem": "1.0.0",
26 | "com.unity.modules.physics": "1.0.0",
27 | "com.unity.modules.physics2d": "1.0.0",
28 | "com.unity.modules.screencapture": "1.0.0",
29 | "com.unity.modules.terrain": "1.0.0",
30 | "com.unity.modules.terrainphysics": "1.0.0",
31 | "com.unity.modules.tilemap": "1.0.0",
32 | "com.unity.modules.ui": "1.0.0",
33 | "com.unity.modules.uielements": "1.0.0",
34 | "com.unity.modules.umbra": "1.0.0",
35 | "com.unity.modules.unityanalytics": "1.0.0",
36 | "com.unity.modules.unitywebrequest": "1.0.0",
37 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
38 | "com.unity.modules.unitywebrequestaudio": "1.0.0",
39 | "com.unity.modules.unitywebrequesttexture": "1.0.0",
40 | "com.unity.modules.unitywebrequestwww": "1.0.0",
41 | "com.unity.modules.vehicles": "1.0.0",
42 | "com.unity.modules.video": "1.0.0",
43 | "com.unity.modules.vr": "1.0.0",
44 | "com.unity.modules.wind": "1.0.0",
45 | "com.unity.modules.xr": "1.0.0"
46 | },
47 | "scopedRegistries": []
48 | }
49 |
--------------------------------------------------------------------------------
/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 | serializedVersion: 2
7 | m_Volume: 1
8 | Rolloff Scale: 1
9 | Doppler Factor: 1
10 | Default Speaker Mode: 2
11 | m_SampleRate: 0
12 | m_DSPBufferSize: 1024
13 | m_VirtualVoiceCount: 512
14 | m_RealVoiceCount: 32
15 | m_SpatializerPlugin:
16 | m_AmbisonicDecoderPlugin:
17 | m_DisableAudio: 0
18 | m_VirtualizeEffects: 1
19 | m_RequestedDSPBufferSize: 1024
20 |
--------------------------------------------------------------------------------
/ProjectSettings/AutoStreamingSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1200 &1
4 | AutoStreamingSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | mSearchMode: 15
8 | mCustomSearchFile:
9 | mTextureSearchString:
10 | mMeshSearchString:
11 | mTextures: []
12 | mAudios: []
13 | mMeshes: []
14 | mScenes: []
15 | mConfigCCD:
16 | useCCD: 0
17 | cosKey:
18 | projectGuid:
19 | bucketUuid:
20 | bucketName:
21 | badgeName:
22 |
--------------------------------------------------------------------------------
/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: 11
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_ClothInterCollisionDistance: 0
18 | m_ClothInterCollisionStiffness: 0
19 | m_ContactsGeneration: 1
20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
21 | m_AutoSimulation: 1
22 | m_AutoSyncTransforms: 0
23 | m_ReuseCollisionCallbacks: 1
24 | m_ClothInterCollisionSettingsToggle: 0
25 | m_ContactPairsMode: 0
26 | m_BroadphaseType: 0
27 | m_WorldBounds:
28 | m_Center: {x: 0, y: 0, z: 0}
29 | m_Extent: {x: 250, y: 250, z: 250}
30 | m_WorldSubdivisions: 8
31 | m_FrictionType: 0
32 | m_EnableEnhancedDeterminism: 0
33 | m_EnableUnifiedHeightmaps: 1
34 | m_DefaultMaxAngluarSpeed: 7
35 |
--------------------------------------------------------------------------------
/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 | m_configObjects: {}
9 |
--------------------------------------------------------------------------------
/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: 11
7 | m_ExternalVersionControlSupport: Visible Meta Files
8 | m_SerializationMode: 2
9 | m_LineEndingsForNewScripts: 0
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;asmdef;rsp;asmref
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: 0
30 | m_SerializeInlineMappingsOnOneLine: 1
31 |
--------------------------------------------------------------------------------
/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: 13
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 | m_LogWhenShaderIsCompiled: 0
63 | m_AllowEnlightenSupportForUpgradedProject: 0
64 |
--------------------------------------------------------------------------------
/ProjectSettings/MemorySettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!387306366 &1
4 | MemorySettings:
5 | m_ObjectHideFlags: 0
6 | m_EditorMemorySettings:
7 | m_MainAllocatorBlockSize: -1
8 | m_ThreadAllocatorBlockSize: -1
9 | m_MainGfxBlockSize: -1
10 | m_ThreadGfxBlockSize: -1
11 | m_CacheBlockSize: -1
12 | m_TypetreeBlockSize: -1
13 | m_ProfilerBlockSize: -1
14 | m_ProfilerEditorBlockSize: -1
15 | m_BucketAllocatorGranularity: -1
16 | m_BucketAllocatorBucketsCount: -1
17 | m_BucketAllocatorBlockSize: -1
18 | m_BucketAllocatorBlockCount: -1
19 | m_ProfilerBucketAllocatorGranularity: -1
20 | m_ProfilerBucketAllocatorBucketsCount: -1
21 | m_ProfilerBucketAllocatorBlockSize: -1
22 | m_ProfilerBucketAllocatorBlockCount: -1
23 | m_TempAllocatorSizeMain: -1
24 | m_JobTempAllocatorBlockSize: -1
25 | m_BackgroundJobTempAllocatorBlockSize: -1
26 | m_JobTempAllocatorReducedBlockSize: -1
27 | m_TempAllocatorSizeGIBakingWorker: -1
28 | m_TempAllocatorSizeNavMeshWorker: -1
29 | m_TempAllocatorSizeAudioWorker: -1
30 | m_TempAllocatorSizeCloudWorker: -1
31 | m_TempAllocatorSizeGfx: -1
32 | m_TempAllocatorSizeJobWorker: -1
33 | m_TempAllocatorSizeBackgroundWorker: -1
34 | m_TempAllocatorSizePreloadManager: -1
35 | m_PlatformMemorySettings: {}
36 |
--------------------------------------------------------------------------------
/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/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_EnablePreReleasePackages: 0
16 | m_EnablePackageDependencies: 0
17 | m_AdvancedSettingsExpanded: 1
18 | m_ScopedRegistriesSettingsExpanded: 1
19 | m_SeeAllPackageVersions: 0
20 | oneTimeWarningShown: 0
21 | m_Registries:
22 | - m_Id: main
23 | m_Name:
24 | m_Url: https://packages.unity.cn
25 | m_Scopes: []
26 | m_IsDefault: 1
27 | m_Capabilities: 7
28 | m_ConfigSource: 0
29 | m_UserSelectedRegistryName:
30 | m_UserAddingNewScopedRegistry: 0
31 | m_RegistryInfoDraft:
32 | m_Modified: 0
33 | m_ErrorMessage:
34 | m_UserModificationsInstanceId: -832
35 | m_OriginalInstanceId: -834
36 | m_LoadAssets: 0
37 |
--------------------------------------------------------------------------------
/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "m_Name": "Settings",
3 | "m_Path": "ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json",
4 | "m_Dictionary": {
5 | "m_DictionaryValues": []
6 | }
7 | }
--------------------------------------------------------------------------------
/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: 4
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_JobOptions:
23 | serializedVersion: 2
24 | useMultithreading: 0
25 | useConsistencySorting: 0
26 | m_InterpolationPosesPerJob: 100
27 | m_NewContactsPerJob: 30
28 | m_CollideContactsPerJob: 100
29 | m_ClearFlagsPerJob: 200
30 | m_ClearBodyForcesPerJob: 200
31 | m_SyncDiscreteFixturesPerJob: 50
32 | m_SyncContinuousFixturesPerJob: 50
33 | m_FindNearestContactsPerJob: 100
34 | m_UpdateTriggerContactsPerJob: 100
35 | m_IslandSolverCostThreshold: 100
36 | m_IslandSolverBodyCostScale: 1
37 | m_IslandSolverContactCostScale: 10
38 | m_IslandSolverJointCostScale: 10
39 | m_IslandSolverBodiesPerJob: 50
40 | m_IslandSolverContactsPerJob: 50
41 | m_AutoSimulation: 1
42 | m_QueriesHitTriggers: 1
43 | m_QueriesStartInColliders: 1
44 | m_CallbacksOnDisable: 1
45 | m_ReuseCollisionCallbacks: 1
46 | m_AutoSyncTransforms: 0
47 | m_AlwaysShowColliders: 0
48 | m_ShowColliderSleep: 1
49 | m_ShowColliderContacts: 0
50 | m_ShowColliderAABB: 0
51 | m_ContactArrowScale: 0.2
52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
57 |
--------------------------------------------------------------------------------
/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 | serializedVersion: 2
7 | m_DefaultPresets: {}
8 |
--------------------------------------------------------------------------------
/ProjectSettings/ProjectVersion.txt:
--------------------------------------------------------------------------------
1 | m_EditorVersion: 2021.3.29f1c1
2 | m_EditorVersionWithRevision: 2021.3.29f1c1 (0b77087ad835)
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 |
--------------------------------------------------------------------------------
/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 | serializedVersion: 1
7 | m_Enabled: 0
8 | m_TestMode: 0
9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events
10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events
11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com
12 | m_DashboardUrl: https://dashboard.unity3d.com
13 | m_CNEventUrl: https://cdp.cloud.unity.cn/v1/events
14 | m_CNConfigUrl: https://cdp.cloud.unity.cn/config
15 | m_TestInitMode: 0
16 | CrashReportingSettings:
17 | m_EventUrl: https://perf-events.cloud.unity.cn
18 | m_Enabled: 0
19 | m_LogBufferSize: 10
20 | m_CaptureEditorExceptions: 1
21 | UnityPurchasingSettings:
22 | m_Enabled: 0
23 | m_TestMode: 0
24 | UnityAnalyticsSettings:
25 | m_Enabled: 1
26 | m_TestMode: 0
27 | m_InitializeOnStartup: 1
28 | m_PackageRequiringCoreStatsPresent: 0
29 | UnityAdsSettings:
30 | m_Enabled: 0
31 | m_InitializeOnStartup: 1
32 | m_TestMode: 0
33 | m_IosGameId:
34 | m_AndroidGameId:
35 | m_GameIds: {}
36 | m_GameId:
37 | PerformanceReportingSettings:
38 | m_Enabled: 0
39 |
--------------------------------------------------------------------------------
/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_StripUpdateShader: {fileID: 0}
10 | m_RenderPipeSettingsPath:
11 | m_FixedTimeStep: 0.016666668
12 | m_MaxDeltaTime: 0.05
13 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/ProjectSettings/boot.config:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wy19910222/Unity-Tools/dee4b67bd828821dcc82ea3114e0f03dc7075154/ProjectSettings/boot.config
--------------------------------------------------------------------------------