e362aaeb43
Add BefourStudios SciFi environment packs, Gabriel Aguiar VFX, and the ShaderCrew Toon Shader embedded packages, plus combat/enemy/wave/death gameplay systems and supporting vault docs/screenshots. Rename 11 vendor textures from uppercase .PNG/.HDR to lowercase so the case-sensitive Git LFS filters (*.png/*.hdr) match on case-sensitive filesystems (Linux CI, case-sensitive macOS), not just locally where core.ignorecase=true masks the gap. Each .meta moved with its asset so GUID references are preserved. All ~1000 binaries tracked via LFS. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
207 lines
7.3 KiB
C#
207 lines
7.3 KiB
C#
#if UNITY_EDITOR
|
|
using System;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using UnityEditor;
|
|
using UnityEditor.PackageManager;
|
|
using UnityEngine;
|
|
|
|
namespace ShaderCrew.TheToonShader
|
|
{
|
|
[InitializeOnLoad]
|
|
public static class TheToonShaderPackageInitializer
|
|
{
|
|
//private const string CurrentPackageVersion = "1.3.1";
|
|
private const string VersionKey = "IsTheToonShaderPackageInitialized";
|
|
|
|
static TheToonShaderPackageInitializer()
|
|
{
|
|
EditorApplication.delayCall += RunInitialization;
|
|
Events.registeredPackages += OnPackagesRegistered;
|
|
}
|
|
|
|
private static void RunInitialization()
|
|
{
|
|
string storedVersion = EditorPrefs.GetString(VersionKey + Application.productName, "");
|
|
if (storedVersion != TheToonShaderConstants.THETOONSHADER_VERSION_3D)
|
|
{
|
|
#if !__SHADERCREW_DEV_ENV__
|
|
EditorPrefs.SetString(VersionKey + Application.productName, TheToonShaderConstants.THETOONSHADER_VERSION_3D);
|
|
DoTildeShaderFolderAdjustments();
|
|
#endif
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
private static void OnPackagesRegistered(PackageRegistrationEventArgs args)
|
|
{
|
|
//if(args.added != null)
|
|
//{
|
|
// foreach (UnityEditor.PackageManager.PackageInfo item in args.added)
|
|
// {
|
|
// Debug.Log(item.name);
|
|
// }
|
|
//}
|
|
if (args.added != null && args.added.Any(pkg => pkg.name == "com.shadercrew.the-toon-shader.3d") ||
|
|
args.changedFrom != null && args.changedFrom.Any(pkg => pkg.name == "com.shadercrew.the-toon-shader.3d") ||
|
|
args.added != null && args.added.Any(pkg => pkg.name == "com.shadercrew.seethroughshader.3d") ||
|
|
args.removed != null && args.removed.Any(pkg => pkg.name == "com.shadercrew.seethroughshader.3d"))
|
|
{
|
|
#if !__SHADERCREW_DEV_ENV__
|
|
DoTildeShaderFolderAdjustments();
|
|
#endif
|
|
}
|
|
}
|
|
private static void DoTildeShaderFolderAdjustments()
|
|
{
|
|
|
|
string shaderPackageFolder = "Packages/com.shadercrew.the-toon-shader.3d/";
|
|
|
|
string nativeShaderFolderURP = shaderPackageFolder + "Scripts/Shaders/Native/URP";
|
|
string nativeShaderFolderURPTilde = nativeShaderFolderURP + "~";
|
|
|
|
|
|
#if USING_URP
|
|
RenameFolder(nativeShaderFolderURPTilde, nativeShaderFolderURP);
|
|
|
|
string nativeShaderFolderURP2020 = nativeShaderFolderURP + "/2020";
|
|
string nativeShaderFolderURP2020Tilde = nativeShaderFolderURP2020 + "~";
|
|
|
|
string nativeShaderFolderURP2021 = nativeShaderFolderURP + "/2021";
|
|
string nativeShaderFolderURP2021Tilde = nativeShaderFolderURP2021 + "~";
|
|
|
|
string nativeShaderFolderURP2022 = nativeShaderFolderURP + "/2022";
|
|
string nativeShaderFolderURP2022Tilde = nativeShaderFolderURP2022 + "~";
|
|
|
|
string nativeShaderFolderURPUnity6 = nativeShaderFolderURP + "/Unity6";
|
|
string nativeShaderFolderURPUnity6Tilde = nativeShaderFolderURPUnity6 + "~";
|
|
|
|
string nativeShaderFolderURPUnity6_3 = nativeShaderFolderURP + "/Unity6_3";
|
|
string nativeShaderFolderURPUnity6_3Tilde = nativeShaderFolderURPUnity6_3 + "~";
|
|
|
|
|
|
#if UNITY_2020_1_OR_NEWER && !UNITY_2021_1_OR_NEWER
|
|
RenameFolder(nativeShaderFolderURP2020Tilde, nativeShaderFolderURP2020);
|
|
#else
|
|
RenameFolder(nativeShaderFolderURP2020, nativeShaderFolderURP2020Tilde);
|
|
#endif
|
|
|
|
#if UNITY_2021_1_OR_NEWER && !UNITY_2022_1_OR_NEWER
|
|
RenameFolder(nativeShaderFolderURP2021Tilde, nativeShaderFolderURP2021);
|
|
#else
|
|
RenameFolder(nativeShaderFolderURP2021, nativeShaderFolderURP2021Tilde);
|
|
#endif
|
|
|
|
#if UNITY_2022_1_OR_NEWER && !UNITY_2023_1_OR_NEWER
|
|
RenameFolder(nativeShaderFolderURP2022Tilde, nativeShaderFolderURP2022);
|
|
#else
|
|
RenameFolder(nativeShaderFolderURP2022, nativeShaderFolderURP2022Tilde);
|
|
#endif
|
|
|
|
#if UNITY_2023_1_OR_NEWER && !UNITY_6000_3_OR_NEWER
|
|
RenameFolder(nativeShaderFolderURPUnity6Tilde, nativeShaderFolderURPUnity6);
|
|
#else
|
|
RenameFolder(nativeShaderFolderURPUnity6, nativeShaderFolderURPUnity6Tilde);
|
|
#endif
|
|
|
|
#if UNITY_6000_3_OR_NEWER
|
|
RenameFolder(nativeShaderFolderURPUnity6_3Tilde, nativeShaderFolderURPUnity6_3);
|
|
#else
|
|
RenameFolder(nativeShaderFolderURPUnity6_3, nativeShaderFolderURPUnity6_3Tilde);
|
|
#endif
|
|
|
|
#else
|
|
RenameFolder(nativeShaderFolderURP, nativeShaderFolderURPTilde);
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
string stsShaderFolder = shaderPackageFolder + "Scripts/Shaders/STS";
|
|
string stsShaderFolderTilde = stsShaderFolder + "~";
|
|
|
|
string stsShaderFolderURP = shaderPackageFolder + "Scripts/Shaders/STS/URP";
|
|
string stsShaderFolderURPTilde = stsShaderFolderURP + "~";
|
|
|
|
#if USING_SEE_THROUGH_SHADER
|
|
RenameFolder(stsShaderFolderTilde, stsShaderFolder);
|
|
|
|
|
|
#if USING_URP
|
|
RenameFolder(stsShaderFolderURPTilde, stsShaderFolderURP);
|
|
|
|
string stsShaderFolderURP2020 = stsShaderFolderURP + "/2020";
|
|
string stsShaderFolderURP2020Tilde = stsShaderFolderURP2020 + "~";
|
|
|
|
string stsShaderFolderURP2021 = stsShaderFolderURP + "/2021";
|
|
string stsShaderFolderURP2021Tilde = stsShaderFolderURP2021 + "~";
|
|
|
|
string stsShaderFolderURP2022 = stsShaderFolderURP + "/2022";
|
|
string stsShaderFolderURP2022Tilde = stsShaderFolderURP2022 + "~";
|
|
|
|
string stsShaderFolderURPUnity6 = stsShaderFolderURP + "/Unity6";
|
|
string stsShaderFolderURPUnity6Tilde = stsShaderFolderURPUnity6 + "~";
|
|
|
|
string stsShaderFolderURPUnity6_3 = stsShaderFolderURP + "/Unity6_3";
|
|
string stsShaderFolderURPUnity6_3Tilde = stsShaderFolderURPUnity6_3 + "~";
|
|
|
|
|
|
#if UNITY_2020_1_OR_NEWER && !UNITY_2021_1_OR_NEWER
|
|
RenameFolder(stsShaderFolderURP2020Tilde, stsShaderFolderURP2020);
|
|
#else
|
|
RenameFolder(stsShaderFolderURP2020, stsShaderFolderURP2020Tilde);
|
|
#endif
|
|
|
|
#if UNITY_2021_1_OR_NEWER && !UNITY_2022_1_OR_NEWER
|
|
RenameFolder(stsShaderFolderURP2021Tilde, stsShaderFolderURP2021);
|
|
#else
|
|
RenameFolder(stsShaderFolderURP2021, stsShaderFolderURP2021Tilde);
|
|
#endif
|
|
|
|
#if UNITY_2022_1_OR_NEWER && !UNITY_2023_1_OR_NEWER
|
|
RenameFolder(stsShaderFolderURP2022Tilde, stsShaderFolderURP2022);
|
|
#else
|
|
RenameFolder(stsShaderFolderURP2022, stsShaderFolderURP2022Tilde);
|
|
#endif
|
|
|
|
#if UNITY_2023_1_OR_NEWER && !UNITY_6000_3_OR_NEWER
|
|
RenameFolder(stsShaderFolderURPUnity6Tilde, stsShaderFolderURPUnity6);
|
|
#else
|
|
RenameFolder(stsShaderFolderURPUnity6, stsShaderFolderURPUnity6Tilde);
|
|
#endif
|
|
|
|
#if UNITY_6000_3_OR_NEWER
|
|
RenameFolder(stsShaderFolderURPUnity6_3Tilde, stsShaderFolderURPUnity6_3);
|
|
#else
|
|
RenameFolder(stsShaderFolderURPUnity6_3, stsShaderFolderURPUnity6_3Tilde);
|
|
#endif
|
|
|
|
#else
|
|
RenameFolder(stsShaderFolderURP, stsShaderFolderURPTilde);
|
|
#endif
|
|
#else
|
|
RenameFolder(stsShaderFolder, stsShaderFolderTilde);
|
|
#endif
|
|
}
|
|
|
|
private static void RenameFolder(string oldName, string newName)
|
|
{
|
|
if (Directory.Exists(oldName))
|
|
{
|
|
Directory.Move(oldName, newName);
|
|
string meta = oldName + ".meta";
|
|
if (File.Exists(meta))
|
|
{
|
|
File.Delete(meta);
|
|
}
|
|
AssetDatabase.Refresh();
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
#endif
|