From f961b8dc8949e07cad9990e1a038cd880ea0cbcf Mon Sep 17 00:00:00 2001 From: mob-sakai <12690315+mob-sakai@users.noreply.github.com> Date: Fri, 12 Jun 2026 16:27:44 +0900 Subject: [PATCH 01/13] chore: fix workflow for pwn request --- .github/workflows/release.yml | 2 +- .github/workflows/test.yml | 37 ++++++++++++++++------------------- 2 files changed, 18 insertions(+), 21 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8abcd39..1fcc7bb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -38,7 +38,7 @@ jobs: @semantic-release/changelog @semantic-release/git env: - GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} + GITHUB_TOKEN: ${{ github.token }} - id: summary run: | diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c79c6ca..9fa132e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -27,7 +27,7 @@ on: - "!*" paths-ignore: - "**.md" - pull_request_target: + pull_request: types: - opened - reopened @@ -39,16 +39,29 @@ jobs: setup: name: βš™οΈ Setup runs-on: ubuntu-latest + permissions: {} # No permissions needed for setup job outputs: unityVersions: ${{ steps.setup.outputs.unityVersions }} steps: + - name: πŸ”‘ Secrets check + run: | + if [ -z "$UNITY_EMAIL" ] || [ -z "$UNITY_PASSWORD" ] || [ -z "UNITY_LICENSE" ]; then + echo "Error: UNITY_EMAIL, UNITY_PASSWORD, and UNITY_LICENSE secrets must be set." | tee -a $GITHUB_STEP_SUMMARY >&2 + echo "Error: See https://game.ci/docs/github/test-runner#basic-setup" | tee -a $GITHUB_STEP_SUMMARY >&2 + echo "Error: Set the secrets at ${{ github.server_url }}/${{ github.repository }}/settings/secrets/actions" | tee -a $GITHUB_STEP_SUMMARY >&2 + exit 1 + fi + env: + UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} + UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} + UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} - name: βš™οΈ Find target Unity versions id: setup run: | echo "==== Target Unity Versions ====" - LATEST_VERSIONS=`npx unity-changeset@latest list --versions --latest-patch --min ${MINIMUM_VERSION} --json --all --ignore-alpha` + LATEST_VERSIONS=`npx -y unity-changeset@latest list --json --versions --all --latest-patch --ignore-alpha --min ${MINIMUM_VERSION}` if [ "${{ inputs.usePeriodVersions }}" = "true" ]; then - ADDITIONAL_VERSIONS=`npx unity-changeset list --versions --grep '0f' --min ${MINIMUM_VERSION} --json --ignore-alpha` + ADDITIONAL_VERSIONS=`npx -y unity-changeset@latest list --json --versions --ignore-alpha --min ${MINIMUM_VERSION} --grep '0f'` else ADDITIONAL_VERSIONS=[] fi @@ -66,29 +79,13 @@ jobs: needs: setup strategy: fail-fast: false - max-parallel: 6 + max-parallel: 8 matrix: unityVersion: ${{ fromJson(needs.setup.outputs.unityVersions) }} steps: - name: 🚚 Checkout ($${{ github.ref }}) - if: github.event_name == 'push' uses: actions/checkout@v6 - - name: 🚚 Checkout pull request (pull_request_target) - if: github.event_name == 'pull_request_target' - uses: actions/checkout@v6 - with: - ref: ${{ github.event.pull_request.head.sha }} - fetch-depth: 0 - - - name: 🚚 Marge pull request (pull_request_target) - if: github.event_name == 'pull_request_target' - run: | - git config user.name "GitHub Actions" - git config user.email "actions@github.com" - git rebase ${{ github.event.pull_request.base.sha }} - git log --oneline -n 10 - - name: πŸ“₯ Cache library uses: actions/cache@v5 with: From 108bcfbd246960dc730546dc334424cf2e17bfd4 Mon Sep 17 00:00:00 2001 From: mob-sakai <12690315+mob-sakai@users.noreply.github.com> Date: Tue, 23 Jun 2026 19:03:37 +0900 Subject: [PATCH 02/13] feat: preview the ParticleSystem playback when selecting a UIParticle in the Editor --- Packages/src/Editor/UIParticleEditor.cs | 18 +- .../src/Runtime/Internal/Utilities/Misc.cs | 11 +- .../src/Runtime/ParticleSystemPreviewer.cs | 237 ++++++++++++++++++ .../Runtime/ParticleSystemPreviewer.cs.meta | 11 + Packages/src/Runtime/UIParticle.cs | 3 + .../src/Runtime/UIParticleProjectSettings.cs | 8 +- 6 files changed, 277 insertions(+), 11 deletions(-) create mode 100644 Packages/src/Runtime/ParticleSystemPreviewer.cs create mode 100644 Packages/src/Runtime/ParticleSystemPreviewer.cs.meta diff --git a/Packages/src/Editor/UIParticleEditor.cs b/Packages/src/Editor/UIParticleEditor.cs index 2a06548..8d7bd3c 100644 --- a/Packages/src/Editor/UIParticleEditor.cs +++ b/Packages/src/Editor/UIParticleEditor.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; @@ -8,6 +9,7 @@ using UnityEngine; using UnityEngine.Profiling; using UnityEngine.UI; using Coffee.UIParticleInternal; +using Object = UnityEngine.Object; #if UNITY_2021_2_OR_NEWER using UnityEditor.Overlays; #else @@ -66,6 +68,7 @@ namespace Coffee.UIExtensions private ReorderableList _ro; private bool _showMax; private bool _is3DScaleMode; + private GameObject[] _gameObjects; private static readonly HashSet s_Shaders = new HashSet(); #if UNITY_2018 || UNITY_2019 @@ -183,6 +186,13 @@ namespace Coffee.UIExtensions y.hasMultipleDifferentValues || z.hasMultipleDifferentValues; } + + // Add temporary ParticleSystem for preview if enabled. + if (UIParticleProjectSettings.previewOnSelect) + { + _gameObjects = targets.OfType().Select(x => x.gameObject).ToArray(); + ParticleSystemPreviewSystem.Register(_gameObjects); + } } /// @@ -344,6 +354,10 @@ namespace Coffee.UIExtensions } } #endif + + // Remove the temporary ParticleSystem. + ParticleSystemPreviewSystem.DrawWarningForTemporary(_gameObjects); + Profiler.EndSample(); } @@ -482,7 +496,7 @@ namespace Coffee.UIExtensions #endif } - private static bool FixButton(bool show, string text) + private static bool FixButton(bool show, string text, GUIContent buttonText = null) { if (!show) return false; using (new EditorGUILayout.HorizontalScope(GUILayout.ExpandWidth(true))) @@ -490,7 +504,7 @@ namespace Coffee.UIExtensions EditorGUILayout.HelpBox(text, MessageType.Warning, true); using (new EditorGUILayout.VerticalScope()) { - return GUILayout.Button(s_ContentFix, GUILayout.Width(30)); + return GUILayout.Button(buttonText ?? s_ContentFix, GUILayout.ExpandWidth(false)); } } } diff --git a/Packages/src/Runtime/Internal/Utilities/Misc.cs b/Packages/src/Runtime/Internal/Utilities/Misc.cs index b6654cc..11518ee 100644 --- a/Packages/src/Runtime/Internal/Utilities/Misc.cs +++ b/Packages/src/Runtime/Internal/Utilities/Misc.cs @@ -48,15 +48,10 @@ namespace Coffee.UIParticleInternal { if (obj == null) return; #if UNITY_EDITOR - if (Application.isEditor) - { - Object.DestroyImmediate(obj); - } - else + Object.DestroyImmediate(obj, true); +#else + Object.Destroy(obj); #endif - { - Object.Destroy(obj); - } } [Conditional("UNITY_EDITOR")] diff --git a/Packages/src/Runtime/ParticleSystemPreviewer.cs b/Packages/src/Runtime/ParticleSystemPreviewer.cs new file mode 100644 index 0000000..a884fe5 --- /dev/null +++ b/Packages/src/Runtime/ParticleSystemPreviewer.cs @@ -0,0 +1,237 @@ +using System.Collections.Generic; +using System.Linq; +using Coffee.UIParticleInternal; +using UnityEditor; +using UnityEngine; + +namespace Coffee.UIExtensions +{ + [Icon("Packages/com.coffee.ui-particle/Editor/UIParticleIcon.png")] + [ExecuteAlways] + internal class ParticleSystemPreviewer : MonoBehaviour + { + // Do nothing. + } + +#if UNITY_EDITOR + [CustomEditor(typeof(ParticleSystemPreviewer))] + [CanEditMultipleObjects] + internal class ParticleSystemPreviewerEditor : Editor + { + private GameObject[] _gameObjects; + + private void OnEnable() + { + _gameObjects = targets.OfType().Select(x => x.gameObject).ToArray(); + ParticleSystemPreviewSystem.Register(_gameObjects); + } + + public override void OnInspectorGUI() + { + base.OnInspectorGUI(); + ParticleSystemPreviewSystem.DrawWarningForTemporary(_gameObjects); + ParticleSystemPreviewSystem.DrawWarningForPermanent(_gameObjects); + } + } + + /// + /// This class manages temporary ParticleSystems for preview purposes. + /// When previewing in the editor, it is common to place an empty ParticleSystem as the root, but it consumes memory at runtime if included in the build. + /// The temporary ParticleSystems created by this class only exist when the specified GameObject is selected, and are automatically deleted when the selection is cleared. + /// + internal class ParticleSystemPreviewSystem : ScriptableSingleton + { + private const HideFlags k_TemporaryHideFlags = HideFlags.DontSave | HideFlags.NotEditable; + + [SerializeField] + private List m_PreviewObjects = new List(); + +#if UNITY_2019_3_OR_NEWER + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] +#endif + [InitializeOnLoadMethod] + public static void Initialize() + { + instance.OnSelectionChanged(); + + Selection.selectionChanged -= instance.OnSelectionChanged; + Selection.selectionChanged += instance.OnSelectionChanged; + } + + /// + /// Adds a temporary ParticleSystem to the specified GameObject for preview purposes. + /// + public static void Register(GameObject[] targets) + { + foreach (var target in targets) + { + Register(target); + } + } + + /// + /// Adds a temporary ParticleSystem to the specified GameObject for preview purposes. + /// + public static void Register(GameObject target) + { + if (!target) return; + if (EditorApplication.isPlaying) return; + if (instance.m_PreviewObjects.Contains(target)) return; + if (target.TryGetComponent(out var ps)) + { + if (ps.hideFlags == k_TemporaryHideFlags) + { + RegisterParticleSystem(ps); + } + + return; + } + + // Create temporary ParticleSystem for preview. + RegisterParticleSystem(target.AddComponent()); + } + + /// + /// Removes the temporary ParticleSystem associated with the specified GameObject. + /// + /// + public static void Unregister(GameObject target) + { + if (!target) return; + + var index = instance.m_PreviewObjects.IndexOf(target); + if (index < 0) return; + + instance.m_PreviewObjects.RemoveAt(index); + if (HasTemporaryParticleSystem(target)) + { + RemoveParticleSystem(target); + } + } + + private static void RegisterParticleSystem(ParticleSystem ps) + { + if (!ps) return; + if (EditorApplication.isPlaying) return; + + ps.hideFlags = k_TemporaryHideFlags; + + var emission = ps.emission; + emission.enabled = false; + var shape = ps.shape; + shape.enabled = false; + + if (ps.TryGetComponent(out var psr)) + { + psr.enabled = false; + psr.hideFlags = k_TemporaryHideFlags; + } + + instance.m_PreviewObjects.Add(ps.gameObject); + EditorUtility.SetDirty(ps.gameObject); + } + + /// + /// Removes the temporary ParticleSystem associated with the specified GameObject. + /// + /// + private static void RemoveParticleSystem(GameObject target) + { + if (target.TryGetComponent(out var ps)) + { + Misc.DestroyImmediate(ps); + EditorUtility.SetDirty(target); + } + + if (target.TryGetComponent(out var psr)) + { + Misc.DestroyImmediate(psr); + EditorUtility.SetDirty(target); + } + } + + /// + /// Checks if the specified GameObject has a temporary ParticleSystem. + /// + private static bool HasTemporaryParticleSystem(GameObject target) + { + return target + && instance.m_PreviewObjects.Contains(target) + && target.TryGetComponent(out var ps) + && ps.hideFlags == k_TemporaryHideFlags; + } + + /// + /// Checks if the specified GameObject has a permanent ParticleSystem. + /// + private static bool HasPermanentParticleSystem(GameObject target) + { + return target + && target.TryGetComponent(out var ps) + && ps.hideFlags != k_TemporaryHideFlags; + } + + private void OnSelectionChanged() + { + var selectedGameObjects = Selection.gameObjects; + for (var i = m_PreviewObjects.Count - 1; 0 <= i; i--) + { + var go = m_PreviewObjects[i]; + if (!go) + { + m_PreviewObjects.RemoveAt(i); + } + else if (EditorApplication.isPlaying && !selectedGameObjects.Contains(go)) + { + Unregister(go); + } + } + } + + public static void DrawWarningForTemporary(GameObject[] gameObjects) + { + if (gameObjects == null || gameObjects.Length == 0 || !gameObjects.Any(HasTemporaryParticleSystem)) return; + + if (WarningButton("The temporary ParticleSystem for preview is attached.\n" + + "It will be removed when exiting edit mode.", "Remove")) + { + foreach (var go in gameObjects) + { + if (HasTemporaryParticleSystem(go)) + { + RemoveParticleSystem(go); + } + } + } + } + + public static void DrawWarningForPermanent(GameObject[] gameObjects) + { + if (gameObjects == null || gameObjects.Length == 0 || !gameObjects.Any(HasPermanentParticleSystem)) return; + + if (WarningButton("The permanent ParticleSystem is attached.\n" + + "It will be included in build.", "Remove")) + { + foreach (var go in gameObjects) + { + if (HasPermanentParticleSystem(go)) + { + RemoveParticleSystem(go); + Unregister(go); + Register(go); + } + } + } + } + + private static bool WarningButton(string message, string buttonText) + { + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.HelpBox(message, MessageType.Warning, true); + var clicked = GUILayout.Button(EditorGUIUtility.TrTempContent(buttonText)); + EditorGUILayout.EndHorizontal(); + return clicked; + } + } +#endif +} diff --git a/Packages/src/Runtime/ParticleSystemPreviewer.cs.meta b/Packages/src/Runtime/ParticleSystemPreviewer.cs.meta new file mode 100644 index 0000000..db984de --- /dev/null +++ b/Packages/src/Runtime/ParticleSystemPreviewer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b171deb49fb7b471291108ad7e1c9baa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/src/Runtime/UIParticle.cs b/Packages/src/Runtime/UIParticle.cs index 0146f67..27a29a8 100644 --- a/Packages/src/Runtime/UIParticle.cs +++ b/Packages/src/Runtime/UIParticle.cs @@ -545,7 +545,10 @@ namespace Coffee.UIExtensions { var ps = particles[i]; if (!ps +#if UNITY_EDITOR + || (ps.hideFlags & HideFlags.DontSave) != 0 // Dummy ParticleSystems for preview. || ps.gameObject.CompareTag("EditorOnly") // Ignore "EditorOnly" tagged ParticleSystems. +#endif || ps.GetComponentInParent(true) != this) // Ignore ParticleSystems that are not under this UIParticle. { particles.RemoveAt(i); diff --git a/Packages/src/Runtime/UIParticleProjectSettings.cs b/Packages/src/Runtime/UIParticleProjectSettings.cs index ab295d6..3bd96c2 100644 --- a/Packages/src/Runtime/UIParticleProjectSettings.cs +++ b/Packages/src/Runtime/UIParticleProjectSettings.cs @@ -25,10 +25,16 @@ namespace Coffee.UIExtensions [SerializeField] private bool m_HideGeneratedObjects = true; - public static HideFlags globalHideFlags => instance.m_HideGeneratedObjects + [Tooltip("When selecting UIParticle, a temporary ParticleSystem is generated for preview.")] + [SerializeField] + private bool m_PreviewOnSelect = true; + + internal static HideFlags globalHideFlags => instance.m_HideGeneratedObjects ? HideFlags.DontSave | HideFlags.NotEditable | HideFlags.HideInHierarchy | HideFlags.HideInInspector : HideFlags.DontSave | HideFlags.NotEditable; + internal static bool previewOnSelect => instance.m_PreviewOnSelect; + #if UNITY_EDITOR [SettingsProvider] private static SettingsProvider CreateSettingsProvider() From 25b2e3b632f3a1dea5be5a33c476ef659998e860 Mon Sep 17 00:00:00 2001 From: mob-sakai <12690315+mob-sakai@users.noreply.github.com> Date: Tue, 23 Jun 2026 19:04:02 +0900 Subject: [PATCH 03/13] chore: update internal --- Packages/manifest.json | 2 +- Packages/packages-lock.json | 2 +- Packages/src/Runtime/AnimatableProperty.cs | 2 +- .../PreloadedProjectSettings.cs | 85 +++++++++++++++++-- .../Runtime/Internal/Utilities/Logger.cs.meta | 11 ++- .../Internal/Utilities/MaterialRepository.cs | 6 +- 6 files changed, 93 insertions(+), 15 deletions(-) diff --git a/Packages/manifest.json b/Packages/manifest.json index b9829e7..035593b 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -3,7 +3,7 @@ "com.coffee.development": "https://github.com/mob-sakai/Coffee.Internal.git?path=Packages/Development", "com.coffee.minimal-resource": "https://github.com/mob-sakai/Coffee.Internal.git?path=Packages/MinimalResource", "com.coffee.nano-monitor": "https://github.com/mob-sakai/Coffee.Internal.git?path=Packages/NanoMonitor", - "com.unity.ide.rider": "3.0.31", + "com.unity.ide.rider": "3.0.36", "com.unity.test-framework": "1.1.33", "com.unity.modules.animation": "1.0.0", "com.unity.modules.physics": "1.0.0" diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index fe3111e..e719854 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -40,7 +40,7 @@ "url": "https://packages.unity.com" }, "com.unity.ide.rider": { - "version": "3.0.31", + "version": "3.0.36", "depth": 0, "source": "registry", "dependencies": { diff --git a/Packages/src/Runtime/AnimatableProperty.cs b/Packages/src/Runtime/AnimatableProperty.cs index b0b892a..bbcbe65 100644 --- a/Packages/src/Runtime/AnimatableProperty.cs +++ b/Packages/src/Runtime/AnimatableProperty.cs @@ -44,7 +44,7 @@ namespace Coffee.UIExtensions break; case ShaderPropertyType.Float: case ShaderPropertyType.Range: - material.SetFloat(id, mpb.GetFloat(id)); + material.SetFloat(id, mpb.GetFloat(id)); break; case ShaderPropertyType.Texture: material.SetTexture(id, mpb.GetTexture(id)); diff --git a/Packages/src/Runtime/Internal/ProjectSettings/PreloadedProjectSettings.cs b/Packages/src/Runtime/Internal/ProjectSettings/PreloadedProjectSettings.cs index fd09928..36e38ed 100644 --- a/Packages/src/Runtime/Internal/ProjectSettings/PreloadedProjectSettings.cs +++ b/Packages/src/Runtime/Internal/ProjectSettings/PreloadedProjectSettings.cs @@ -14,6 +14,15 @@ namespace Coffee.UIParticleInternal public abstract class PreloadedProjectSettings : ScriptableObject #if UNITY_EDITOR { + [Tooltip("When enabled, this settings asset will be added to PlayerSettings.preloadedAssets in build.\n\n" + + "When disable, you should load this settings via Resources, AssetBundles or Addressables to use.")] + [SerializeField] + [Header("Advanced")] + [HideInInspector] + private bool m_PreLoadSettingsInBuild = true; + + protected static bool s_BuildingPlayer; + private class Postprocessor : AssetPostprocessor { private static void OnPostprocessAllAssets(string[] _, string[] __, string[] ___, string[] ____) @@ -22,12 +31,35 @@ namespace Coffee.UIParticleInternal } } - private class PreprocessBuildWithReport : IPreprocessBuildWithReport + private class ExcludeFromBuild : IPreprocessBuildWithReport, IPostprocessBuildWithReport { int IOrderedCallback.callbackOrder => 0; void IPreprocessBuildWithReport.OnPreprocessBuild(BuildReport report) { + AssetDatabase.Refresh(); + Initialize(); + s_BuildingPlayer = true; + + foreach (var t in TypeCache.GetTypesDerivedFrom(typeof(PreloadedProjectSettings<>))) + { + var settings = GetDefaultSettings(t); + if (!settings || settings.m_PreLoadSettingsInBuild) continue; + + PlayerSettings.SetPreloadedAssets( + PlayerSettings.GetPreloadedAssets() + .Where(x => x && x.GetType() != t) + .ToArray()); + + Debug.Log($"[PreloadedProjectSettings] Build started: removed '{settings.name}' " + + $"({t.Name}) from PreloadedAssets. " + + $"It will be restored after build completes."); + } + } + + void IPostprocessBuildWithReport.OnPostprocessBuild(BuildReport report) + { + s_BuildingPlayer = false; Initialize(); } } @@ -39,13 +71,16 @@ namespace Coffee.UIParticleInternal var defaultSettings = GetDefaultSettings(t); if (defaultSettings == null) { - // When create a new instance, automatically set it as default settings. - defaultSettings = CreateInstance(t) as PreloadedProjectSettings; - SetDefaultSettings(defaultSettings); + if (!s_BuildingPlayer) + { + // When create a new instance, automatically set it as default settings. + defaultSettings = CreateInstance(t) as PreloadedProjectSettings; + SetDefaultSettings(defaultSettings); + } } else if (GetPreloadedSettings(t).Length != 1) { - SetDefaultSettings(defaultSettings); + if (!s_BuildingPlayer) SetDefaultSettings(defaultSettings); } if (defaultSettings != null) @@ -73,7 +108,7 @@ namespace Coffee.UIParticleInternal protected static PreloadedProjectSettings GetDefaultSettings(Type type) { return GetPreloadedSettings(type).FirstOrDefault() as PreloadedProjectSettings - ?? AssetDatabase.FindAssets($"t:{nameof(PreloadedProjectSettings)}") + ?? AssetDatabase.FindAssets($"t:{type.Name}") .Select(AssetDatabase.GUIDToAssetPath) .Select(AssetDatabase.LoadAssetAtPath) .FirstOrDefault(x => x != null && x.GetType() == type); @@ -120,6 +155,35 @@ namespace Coffee.UIParticleInternal { } } + + internal abstract class PreloadedProjectSettingsEditor : Editor + { + private SerializedProperty _preLoadSettingsInBuild; + + protected virtual void OnEnable() + { + _preLoadSettingsInBuild = serializedObject.FindProperty("m_PreLoadSettingsInBuild"); + } + + protected void DrawPreLoadSettingsInBuild(string packageName) + { + EditorGUILayout.PropertyField(_preLoadSettingsInBuild); + if (!_preLoadSettingsInBuild.boolValue) + { + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.HelpBox( + $"{target.GetType().Name} asset will not be built in.\n" + + $"please load manually from Resources, AssetBundle, or Addressables before using {packageName}.", + MessageType.Warning); + if (GUILayout.Button("Ping")) + { + EditorGUIUtility.PingObject(target); + } + + EditorGUILayout.EndHorizontal(); + } + } + } #else { } @@ -151,7 +215,7 @@ namespace Coffee.UIParticleInternal return s_Instance; } - SetDefaultSettings(s_Instance); + if (!s_BuildingPlayer) SetDefaultSettings(s_Instance); return s_Instance; } } @@ -193,9 +257,12 @@ namespace Coffee.UIParticleInternal } EditorApplication.playModeStateChanged += OnPlayModeStateChanged; +#else + if (s_Instance && s_Instance != this) + { + Destroy(s_Instance); + } #endif - - if (s_Instance != null) return; s_Instance = this as T; } diff --git a/Packages/src/Runtime/Internal/Utilities/Logger.cs.meta b/Packages/src/Runtime/Internal/Utilities/Logger.cs.meta index 5ce2425..258f68f 100644 --- a/Packages/src/Runtime/Internal/Utilities/Logger.cs.meta +++ b/Packages/src/Runtime/Internal/Utilities/Logger.cs.meta @@ -1,2 +1,11 @@ fileFormatVersion: 2 -guid: 4f9f22bb079324476b1473030ad9fec3 \ No newline at end of file +guid: 4f9f22bb079324476b1473030ad9fec3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/src/Runtime/Internal/Utilities/MaterialRepository.cs b/Packages/src/Runtime/Internal/Utilities/MaterialRepository.cs index cd3c05e..b643581 100644 --- a/Packages/src/Runtime/Internal/Utilities/MaterialRepository.cs +++ b/Packages/src/Runtime/Internal/Utilities/MaterialRepository.cs @@ -13,6 +13,8 @@ namespace Coffee.UIParticleInternal public static int count => s_Repository.count; + public static Func onShaderFind = Shader.Find; + #if UNITY_EDITOR [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] public static void Clear() @@ -48,7 +50,7 @@ namespace Coffee.UIParticleInternal public static void Get(Hash128 hash, ref Material material, string shaderName) { Profiler.BeginSample("(COF)[MaterialRepository] Get"); - s_Repository.Get(hash, ref material, x => new Material(Shader.Find(x)) + s_Repository.Get(hash, ref material, x => new Material(onShaderFind(x)) { hideFlags = HideFlags.DontSave | HideFlags.NotEditable }, shaderName); @@ -61,7 +63,7 @@ namespace Coffee.UIParticleInternal public static void Get(Hash128 hash, ref Material material, string shaderName, string[] keywords) { Profiler.BeginSample("(COF)[MaterialRepository] Get"); - s_Repository.Get(hash, ref material, x => new Material(Shader.Find(x.shaderName)) + s_Repository.Get(hash, ref material, x => new Material(onShaderFind(x.shaderName)) { hideFlags = HideFlags.DontSave | HideFlags.NotEditable, shaderKeywords = x.keywords From c327632e1eb203351ba1a1087a19eb7838c22530 Mon Sep 17 00:00:00 2001 From: mob-sakai <12690315+mob-sakai@users.noreply.github.com> Date: Wed, 24 Jun 2026 11:04:23 +0900 Subject: [PATCH 04/13] fix: there is a compilation error in Unity 2019.2 or earlier close #407 --- Packages/src/Editor/UIParticleEditor.cs | 7 +- .../Extensions/ComponentExtensions.cs | 27 ++++++ .../Runtime/Internal/Utilities/FrameCache.cs | 2 +- .../Internal/Utilities/MaterialRepository.cs | 2 +- .../src/Runtime/Internal/Utilities/Misc.cs | 2 +- .../Runtime/Internal/Utilities/TypeCache.cs | 88 +++++++++++++++++++ .../Internal/Utilities/TypeCache.cs.meta | 11 +++ 7 files changed, 133 insertions(+), 6 deletions(-) create mode 100644 Packages/src/Runtime/Internal/Utilities/TypeCache.cs create mode 100644 Packages/src/Runtime/Internal/Utilities/TypeCache.cs.meta diff --git a/Packages/src/Editor/UIParticleEditor.cs b/Packages/src/Editor/UIParticleEditor.cs index 8d7bd3c..815a8c6 100644 --- a/Packages/src/Editor/UIParticleEditor.cs +++ b/Packages/src/Editor/UIParticleEditor.cs @@ -13,9 +13,7 @@ using Object = UnityEngine.Object; #if UNITY_2021_2_OR_NEWER using UnityEditor.Overlays; #else -using System; using System.Reflection; -using Object = UnityEngine.Object; #endif #if UNITY_2021_2_OR_NEWER using UnityEditor.SceneManagement; @@ -207,7 +205,10 @@ namespace Coffee.UIExtensions serializedObject.Update(); // Maskable - EditorGUILayout.PropertyField(_maskable); + if (_maskable != null) + { + EditorGUILayout.PropertyField(_maskable); + } // Scale EditorGUI.BeginDisabledGroup(!_meshSharing.hasMultipleDifferentValues && _meshSharing.intValue == 4); diff --git a/Packages/src/Runtime/Internal/Extensions/ComponentExtensions.cs b/Packages/src/Runtime/Internal/Extensions/ComponentExtensions.cs index e95c5f6..e28e353 100644 --- a/Packages/src/Runtime/Internal/Extensions/ComponentExtensions.cs +++ b/Packages/src/Runtime/Internal/Extensions/ComponentExtensions.cs @@ -12,6 +12,33 @@ namespace Coffee.UIParticleInternal /// internal static class ComponentExtensions { +#if !UNITY_2019_2_OR_NEWER + public static bool TryGetComponent(this GameObject self, out T component) + where T : Component + { + if (self == null) + { + component = null; + return false; + } + + component = self.GetComponent(); + return component != null; + } + + public static bool TryGetComponent(this Component self, out T component) + where T : Component + { + if (self == null) + { + component = null; + return false; + } + + return self.gameObject.TryGetComponent(out component); + } +#endif + /// /// Get components in children of a specific type in the hierarchy of a GameObject. /// diff --git a/Packages/src/Runtime/Internal/Utilities/FrameCache.cs b/Packages/src/Runtime/Internal/Utilities/FrameCache.cs index ce0a837..48186e1 100644 --- a/Packages/src/Runtime/Internal/Utilities/FrameCache.cs +++ b/Packages/src/Runtime/Internal/Utilities/FrameCache.cs @@ -14,7 +14,7 @@ namespace Coffee.UIParticleInternal UIExtraCallbacks.onLateAfterCanvasRebuild += ClearAllCache; } -#if UNITY_EDITOR +#if UNITY_EDITOR && UNITY_2019_3_OR_NEWER [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] private static void Clear() { diff --git a/Packages/src/Runtime/Internal/Utilities/MaterialRepository.cs b/Packages/src/Runtime/Internal/Utilities/MaterialRepository.cs index b643581..1a55d69 100644 --- a/Packages/src/Runtime/Internal/Utilities/MaterialRepository.cs +++ b/Packages/src/Runtime/Internal/Utilities/MaterialRepository.cs @@ -15,7 +15,7 @@ namespace Coffee.UIParticleInternal public static Func onShaderFind = Shader.Find; -#if UNITY_EDITOR +#if UNITY_EDITOR && UNITY_2019_3_OR_NEWER [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] public static void Clear() { diff --git a/Packages/src/Runtime/Internal/Utilities/Misc.cs b/Packages/src/Runtime/Internal/Utilities/Misc.cs index 11518ee..ce2eba1 100644 --- a/Packages/src/Runtime/Internal/Utilities/Misc.cs +++ b/Packages/src/Runtime/Internal/Utilities/Misc.cs @@ -109,7 +109,7 @@ namespace Coffee.UIParticleInternal { if (Misc.isBatchOrBuilding) return; - var types = TypeCache.GetTypesWithAttribute(); + var types = TypeCache.GetTypesWithAttribute(typeof(IconAttribute)); var scripts = MonoImporter.GetAllRuntimeMonoScripts(); foreach (var type in types) { diff --git a/Packages/src/Runtime/Internal/Utilities/TypeCache.cs b/Packages/src/Runtime/Internal/Utilities/TypeCache.cs new file mode 100644 index 0000000..ea57c7f --- /dev/null +++ b/Packages/src/Runtime/Internal/Utilities/TypeCache.cs @@ -0,0 +1,88 @@ +#if !UNITY_2019_2_OR_NEWER +using System; +using System.Collections.Generic; +using System.Reflection; + +namespace Coffee.UIParticleInternal +{ + public static class TypeCache + { + private static readonly object s_Lock = new object(); + private static readonly Dictionary s_DerivedTypesCache = new Dictionary(); + private static readonly Dictionary s_AttributeTypesCache = new Dictionary(); + + public static IEnumerable GetTypesDerivedFrom(Type baseType) + { + lock (s_Lock) + { + if (s_DerivedTypesCache.TryGetValue(baseType, out var cached)) + { + return cached; + } + + var types = new List(); + foreach (var t in GetAllLoadableTypes()) + { + if (t != baseType && baseType.IsAssignableFrom(t)) + { + types.Add(t); + } + } + + return s_DerivedTypesCache[baseType] = types.ToArray(); + } + } + + public static IEnumerable GetTypesWithAttribute(Type attr) + { + lock (s_Lock) + { + if (s_AttributeTypesCache.TryGetValue(attr, out var cached)) + { + return cached; + } + + var types = new List(); + foreach (var t in GetAllLoadableTypes()) + { + if (t.GetCustomAttributes(attr, inherit: true).Length > 0) + { + types.Add(t); + } + } + + return s_AttributeTypesCache[attr] = types.ToArray(); + } + } + + private static IEnumerable GetAllLoadableTypes() + { + foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) + { + Type[] types; + try + { + types = assembly.GetTypes(); + } + catch (ReflectionTypeLoadException ex) + { + types = ex.Types; + } + + if (types == null) + { + continue; + } + + foreach (var t in types) + { + if (t != null) + { + yield return t; + } + } + } + } + } +} +#endif diff --git a/Packages/src/Runtime/Internal/Utilities/TypeCache.cs.meta b/Packages/src/Runtime/Internal/Utilities/TypeCache.cs.meta new file mode 100644 index 0000000..aa20b32 --- /dev/null +++ b/Packages/src/Runtime/Internal/Utilities/TypeCache.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bc1207b657ed74ec19e459664d06925f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 83145d3a6ede3831d1f7c49afde6ef7d8a498d21 Mon Sep 17 00:00:00 2001 From: mob-sakai <12690315+mob-sakai@users.noreply.github.com> Date: Wed, 24 Jun 2026 12:02:42 +0900 Subject: [PATCH 05/13] fix: `UI/Additive` shader does not support RectMask2D softness. --- Packages/src/Shaders/UIAdditive.shader | 53 +++++++++++++++++++++----- 1 file changed, 43 insertions(+), 10 deletions(-) diff --git a/Packages/src/Shaders/UIAdditive.shader b/Packages/src/Shaders/UIAdditive.shader index 9910dcf..3f7b735 100644 --- a/Packages/src/Shaders/UIAdditive.shader +++ b/Packages/src/Shaders/UIAdditive.shader @@ -40,12 +40,8 @@ Lighting Off ZWrite Off ZTest [unity_GUIZTestMode] - Fog - { - Mode Off - } + Fog { Mode Off } Blend One One - ColorMask [_ColorMask] Pass @@ -76,6 +72,7 @@ fixed4 color : COLOR; float2 texcoord : TEXCOORD0; float4 worldPosition : TEXCOORD1; + float4 mask : TEXCOORD2; UNITY_VERTEX_OUTPUT_STEREO }; @@ -84,16 +81,43 @@ float4 _MainTex_ST; fixed4 _TextureSampleAdd; float4 _ClipRect; + float _UIMaskSoftnessX; + float _UIMaskSoftnessY; + int _UIVertexColorAlwaysGammaSpace; + + half3 _UIGammaToLinear(half3 value) + { + half3 low = 0.0849710 * value - 0.000163029; + half3 high = value * (value * (value * 0.265885 + 0.736584) - 0.00980184) + 0.00319697; + + // We should be 0.5 away from any actual gamma value stored in an 8 bit channel + const half3 split = (half3)0.0725490; // Equals 18.5 / 255 + return (value < split) ? low : high; + } v2f vert(appdata_t v) { v2f OUT; UNITY_SETUP_INSTANCE_ID(v); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT); + float4 vPosition = UnityObjectToClipPos(v.vertex); OUT.worldPosition = v.vertex; - OUT.vertex = UnityObjectToClipPos(OUT.worldPosition); + OUT.vertex = vPosition; - OUT.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex); + float2 pixelSize = vPosition.w; + pixelSize /= float2(1, 1) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy)); + + float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); + float2 maskUV = (v.vertex.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); + OUT.texcoord = TRANSFORM_TEX(v.texcoord.xy, _MainTex); + OUT.mask = float4(v.vertex.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_UIMaskSoftnessX, _UIMaskSoftnessY) + abs(pixelSize.xy))); + + if (_UIVertexColorAlwaysGammaSpace) + { + #ifndef UNITY_COLORSPACE_GAMMA + v.color.rgb = _UIGammaToLinear(v.color.rgb); + #endif + } OUT.color = v.color * _Color; return OUT; @@ -101,17 +125,26 @@ fixed4 frag(v2f IN) : SV_Target { - half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color; + //Round up the alpha color coming from the interpolator (to 1.0/256.0 steps) + //The incoming alpha could have numerical instability, which makes it very sensible to + //HDR color transparency blend, when it blends with the world's texture. + const half alphaPrecision = half(0xff); + const half invAlphaPrecision = half(1.0 / alphaPrecision); + IN.color.a = round(IN.color.a * alphaPrecision) * invAlphaPrecision; + + half4 color = IN.color * (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd); #ifdef UNITY_UI_CLIP_RECT - color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect); + half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw); + color.a *= m.x * m.y; #endif #ifdef UNITY_UI_ALPHACLIP - clip (color.a - 0.001); + clip(color.a - 0.001); #endif color.rgb *= color.a; + return color; } ENDCG From 10f82a8579a2d055f897e7a8d6f3b5ba1fc43ae8 Mon Sep 17 00:00:00 2001 From: mob-sakai <12690315+mob-sakai@users.noreply.github.com> Date: Wed, 24 Jun 2026 12:16:46 +0900 Subject: [PATCH 06/13] fix: rename `UIParticleProjectSettings.enableLinearToGamma` to `autoColorCorrection` --- Packages/src/README.md | 18 ++++++++++++++++-- .../src/Runtime/UIParticleProjectSettings.cs | 11 +++++++---- Packages/src/Runtime/UIParticleRenderer.cs | 2 +- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/Packages/src/README.md b/Packages/src/README.md index 5e7db7f..e670f52 100644 --- a/Packages/src/README.md +++ b/Packages/src/README.md @@ -195,6 +195,10 @@ and z-position. 2. Adjust the ParticleSystem as you like. ![particle1](https://user-images.githubusercontent.com/12690315/95007359-ca385200-0649-11eb-8383-627c9750bda8.png) +> [!Tips] +> Adding a `UIParticle` to the parent is the recommended setup rather than attaching it directly to the `ParticleSystem`. +> When using `ParticleSystem.emission.rateOverDistance`, it is recommended to move the transform of `UIParticle` rather than the `ParticleSystem`. +
### Usage with Your Existing ParticleSystem Prefab @@ -260,9 +264,19 @@ uiParticle.Stop(); ### Project Settings -![](https://github.com/user-attachments/assets/befc7f34-fb47-4006-831a-eba79fda11ca) +You can adjust the project-wide settings for `UI Particle`. (`Edit > Project Settings > UI > UI Particle`) -- Click `Edit > Project Settings` to open the Project Settings window and then select `UI > UI Particle` category. +![](https://github.com/mob-sakai/mob-sakai/releases/download/docs/1782270746550.png) + +#### Settings + +- **Enable Linear To Gamma**: Automatically correct the color space of the mesh. + +#### Editor + +- **Hide Generated Component**: Automatically hide the generated `UIParticleRenderer` component and `UIParticle BakingCamera`. + +- **Preview On Select**: When selecting UIParticle, a temporary ParticleSystem is generated for preview.

diff --git a/Packages/src/Runtime/UIParticleProjectSettings.cs b/Packages/src/Runtime/UIParticleProjectSettings.cs index 3bd96c2..3b61337 100644 --- a/Packages/src/Runtime/UIParticleProjectSettings.cs +++ b/Packages/src/Runtime/UIParticleProjectSettings.cs @@ -2,6 +2,7 @@ using Coffee.UIParticleInternal; using UnityEditor; using UnityEngine; +using UnityEngine.Serialization; namespace Coffee.UIExtensions { @@ -9,12 +10,14 @@ namespace Coffee.UIExtensions { [Header("Setting")] [SerializeField] - internal bool m_EnableLinearToGamma = true; + [Tooltip("Automatically correct the color space of the mesh.")] + [FormerlySerializedAs("m_EnableLinearToGamma")] + private bool m_AutoColorCorrection = true; - public static bool enableLinearToGamma + public static bool autoColorCorrection { - get => instance.m_EnableLinearToGamma; - set => instance.m_EnableLinearToGamma = value; + get => instance.m_AutoColorCorrection; + set => instance.m_AutoColorCorrection = value; } diff --git a/Packages/src/Runtime/UIParticleRenderer.cs b/Packages/src/Runtime/UIParticleRenderer.cs index f6c0162..a26c562 100644 --- a/Packages/src/Runtime/UIParticleRenderer.cs +++ b/Packages/src/Runtime/UIParticleRenderer.cs @@ -444,7 +444,7 @@ namespace Coffee.UIExtensions _lastBounds = bounds; // Convert linear color to gamma color. - if (UIParticleProjectSettings.enableLinearToGamma && canvas.ShouldGammaToLinearInMesh()) + if (UIParticleProjectSettings.autoColorCorrection && canvas.ShouldGammaToLinearInMesh()) { workerMesh.LinearToGamma(); } From 9b3ee547e373ff84c2158fbf23aeaef3180ae9f0 Mon Sep 17 00:00:00 2001 From: mob-sakai <12690315+mob-sakai@users.noreply.github.com> Date: Wed, 24 Jun 2026 15:09:08 +0900 Subject: [PATCH 07/13] docs: update readme --- Packages/src/README.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/Packages/src/README.md b/Packages/src/README.md index e670f52..7825e4f 100644 --- a/Packages/src/README.md +++ b/Packages/src/README.md @@ -183,9 +183,14 @@ _This package requires **Unity 2018.3 or later**._ - **Time Scale Multiplier:** Time scale multiplier. - **Rendering Order**: The ParticleSystem list to be rendered. You can change the order and the materials. -**NOTE:** Press the `Refresh` button to reconstruct the rendering order based on children ParticleSystem's sorting order +> [!TIPS] +> Press the `Refresh` button to reconstruct the rendering order based on children ParticleSystem's sorting order and z-position. +> [!TIPS] +> When a `GameObject` with this component is selected in the editor, a temporary `ParticleSystem` is added if needed so you can preview the effect in the Scene view. +> The generated `ParticleSystem` is marked with `HideFlags.DontSave`, so it is neither saved nor included in builds. +

### Basic Usage @@ -260,6 +265,17 @@ uiParticle.Stop(); - **Unscaled Time:** Update with unscaled delta time. - **OnAttracted**: An event called when attracting is complete (per particle). + +

+ +### Component: ParticleSystemPreviewer + +`ParticleSystemPreviewer` is used to preview a ParticleSystem in the editor. + +- When a `GameObject` with this component is selected in the editor, a temporary `ParticleSystem` is added if needed so you can preview the effect in the Scene view. +- The generated `ParticleSystem` is marked with `HideFlags.DontSave`, so it is neither saved nor included in builds. + +

### Project Settings From b7bb1124f6921ebca1b48991462637767b95e504 Mon Sep 17 00:00:00 2001 From: mob-sakai <12690315+mob-sakai@users.noreply.github.com> Date: Wed, 24 Jun 2026 18:57:55 +0900 Subject: [PATCH 08/13] fix: Support for skipping "reload domain" close #406 --- .../Internal/Extensions/CanvasExtensions.cs | 2 +- .../Extensions/ComponentExtensions.cs | 6 +-- .../PreloadedProjectSettings.cs | 46 ++++++++++++++----- .../Runtime/Internal/Utilities/FastAction.cs | 5 -- .../Runtime/Internal/Utilities/FrameCache.cs | 14 +++--- .../Internal/Utilities/UIExtraCallbacks.cs | 8 +++- Packages/src/Runtime/UIParticleUpdater.cs | 11 +++++ 7 files changed, 62 insertions(+), 30 deletions(-) diff --git a/Packages/src/Runtime/Internal/Extensions/CanvasExtensions.cs b/Packages/src/Runtime/Internal/Extensions/CanvasExtensions.cs index 5cbcb6e..bd8f261 100644 --- a/Packages/src/Runtime/Internal/Extensions/CanvasExtensions.cs +++ b/Packages/src/Runtime/Internal/Extensions/CanvasExtensions.cs @@ -98,7 +98,7 @@ namespace Coffee.UIParticleInternal Profiler.BeginSample("(COF)[CanvasExt] GetViewProjectionMatrix"); var rootCanvas = canvas.rootCanvas; var cam = rootCanvas.worldCamera; - if (rootCanvas && rootCanvas.renderMode != RenderMode.ScreenSpaceOverlay && cam) + if (rootCanvas != null && rootCanvas.renderMode != RenderMode.ScreenSpaceOverlay && cam != null) { if (eye == Camera.MonoOrStereoscopicEye.Mono) { diff --git a/Packages/src/Runtime/Internal/Extensions/ComponentExtensions.cs b/Packages/src/Runtime/Internal/Extensions/ComponentExtensions.cs index e28e353..6934eaf 100644 --- a/Packages/src/Runtime/Internal/Extensions/ComponentExtensions.cs +++ b/Packages/src/Runtime/Internal/Extensions/ComponentExtensions.cs @@ -99,7 +99,7 @@ namespace Coffee.UIParticleInternal { T component = null; var transform = self.transform; - while (transform) + while (transform != null) { if (transform.TryGetComponent(out var c)) { @@ -120,7 +120,7 @@ namespace Coffee.UIParticleInternal where T : Component { var tr = includeSelf ? self.transform : self.transform.parent; - while (tr) + while (tr != null) { if (tr.TryGetComponent(out var c) && valid(c)) return c; if (tr == stopAfter) return null; @@ -197,7 +197,7 @@ namespace Coffee.UIParticleInternal if (!includeInactive) return self.GetComponentInParent(); var current = self.transform; - while (current) + while (current != null) { if (current.TryGetComponent(out var c)) return c; current = current.parent; diff --git a/Packages/src/Runtime/Internal/ProjectSettings/PreloadedProjectSettings.cs b/Packages/src/Runtime/Internal/ProjectSettings/PreloadedProjectSettings.cs index 36e38ed..d5ef507 100644 --- a/Packages/src/Runtime/Internal/ProjectSettings/PreloadedProjectSettings.cs +++ b/Packages/src/Runtime/Internal/ProjectSettings/PreloadedProjectSettings.cs @@ -23,17 +23,14 @@ namespace Coffee.UIParticleInternal protected static bool s_BuildingPlayer; - private class Postprocessor : AssetPostprocessor + private class EditorEvents : AssetPostprocessor, IPreprocessBuildWithReport, IPostprocessBuildWithReport { + int IOrderedCallback.callbackOrder => 0; + private static void OnPostprocessAllAssets(string[] _, string[] __, string[] ___, string[] ____) { Initialize(); } - } - - private class ExcludeFromBuild : IPreprocessBuildWithReport, IPostprocessBuildWithReport - { - int IOrderedCallback.callbackOrder => 0; void IPreprocessBuildWithReport.OnPreprocessBuild(BuildReport report) { @@ -44,11 +41,11 @@ namespace Coffee.UIParticleInternal foreach (var t in TypeCache.GetTypesDerivedFrom(typeof(PreloadedProjectSettings<>))) { var settings = GetDefaultSettings(t); - if (!settings || settings.m_PreLoadSettingsInBuild) continue; + if (settings == null || settings.m_PreLoadSettingsInBuild) continue; PlayerSettings.SetPreloadedAssets( PlayerSettings.GetPreloadedAssets() - .Where(x => x && x.GetType() != t) + .Where(x => x != null && x.GetType() != t) .ToArray()); Debug.Log($"[PreloadedProjectSettings] Build started: removed '{settings.name}' " + @@ -62,6 +59,21 @@ namespace Coffee.UIParticleInternal s_BuildingPlayer = false; Initialize(); } + +#if UNITY_2019_3_OR_NEWER + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] + private static void OnDomainReload() + { + foreach (var t in TypeCache.GetTypesDerivedFrom(typeof(PreloadedProjectSettings<>))) + { + var defaultSettings = GetDefaultSettings(t); + if (defaultSettings != null) + { + defaultSettings.OnDomainReload(); + } + } + } +#endif } private static void Initialize() @@ -154,6 +166,10 @@ namespace Coffee.UIParticleInternal protected virtual void OnInitialize() { } + + protected virtual void OnDomainReload() + { + } } internal abstract class PreloadedProjectSettingsEditor : Editor @@ -222,7 +238,7 @@ namespace Coffee.UIParticleInternal private void OnPlayModeStateChanged(PlayModeStateChange state) { - if (!this) return; + if (this == null) return; switch (state) { @@ -239,8 +255,13 @@ namespace Coffee.UIParticleInternal break; } } + + protected override void OnDomainReload() + { + s_Instance = null; + } #else - public static T instance => s_Instance != null ? s_Instance : s_Instance = CreateInstance(); + public static T instance => s_Instance != null ? s_Instance : s_Instance = CreateInstance(); #endif /// @@ -256,9 +277,10 @@ namespace Coffee.UIParticleInternal return; } + EditorApplication.playModeStateChanged -= OnPlayModeStateChanged; EditorApplication.playModeStateChanged += OnPlayModeStateChanged; #else - if (s_Instance && s_Instance != this) + if (s_Instance != null && s_Instance != this) { Destroy(s_Instance); } @@ -293,7 +315,7 @@ namespace Coffee.UIParticleInternal { if (_target == null) { - if (_editor) + if (_editor != null) { DestroyImmediate(_editor); _editor = null; diff --git a/Packages/src/Runtime/Internal/Utilities/FastAction.cs b/Packages/src/Runtime/Internal/Utilities/FastAction.cs index c5fbf50..7aadd14 100755 --- a/Packages/src/Runtime/Internal/Utilities/FastAction.cs +++ b/Packages/src/Runtime/Internal/Utilities/FastAction.cs @@ -66,11 +66,6 @@ namespace Coffee.UIParticleInternal node = node.Next; } } - - public void Clear() - { - _delegates.Clear(); - } } /// diff --git a/Packages/src/Runtime/Internal/Utilities/FrameCache.cs b/Packages/src/Runtime/Internal/Utilities/FrameCache.cs index 48186e1..ada0824 100644 --- a/Packages/src/Runtime/Internal/Utilities/FrameCache.cs +++ b/Packages/src/Runtime/Internal/Utilities/FrameCache.cs @@ -8,19 +8,19 @@ namespace Coffee.UIParticleInternal { private static readonly Dictionary s_Caches = new Dictionary(); - static FrameCache() - { - s_Caches.Clear(); - UIExtraCallbacks.onLateAfterCanvasRebuild += ClearAllCache; - } - #if UNITY_EDITOR && UNITY_2019_3_OR_NEWER [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] +#elif UNITY_EDITOR + [InitializeOnLoadMethod] +#else + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] +#endif private static void Clear() { s_Caches.Clear(); + UIExtraCallbacks.onLateAfterCanvasRebuild -= ClearAllCache; + UIExtraCallbacks.onLateAfterCanvasRebuild += ClearAllCache; } -#endif /// /// Tries to retrieve a value from the frame cache with a specified key. diff --git a/Packages/src/Runtime/Internal/Utilities/UIExtraCallbacks.cs b/Packages/src/Runtime/Internal/Utilities/UIExtraCallbacks.cs index 758536a..038b114 100755 --- a/Packages/src/Runtime/Internal/Utilities/UIExtraCallbacks.cs +++ b/Packages/src/Runtime/Internal/Utilities/UIExtraCallbacks.cs @@ -82,14 +82,18 @@ namespace Coffee.UIParticleInternal message: "InitializeAfterCanvasRebuild"); } -#if UNITY_EDITOR +#if UNITY_EDITOR && UNITY_2019_3_OR_NEWER + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] +#elif UNITY_EDITOR [InitializeOnLoadMethod] -#endif +#else [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] +#endif private static void InitializeOnLoad() { Canvas.willRenderCanvases -= OnAfterCanvasRebuild; s_IsInitializedAfterCanvasRebuild = false; + s_LastScreenSize = default; } /// diff --git a/Packages/src/Runtime/UIParticleUpdater.cs b/Packages/src/Runtime/UIParticleUpdater.cs index d82f485..2495c85 100644 --- a/Packages/src/Runtime/UIParticleUpdater.cs +++ b/Packages/src/Runtime/UIParticleUpdater.cs @@ -39,6 +39,17 @@ namespace Coffee.UIExtensions } #if UNITY_EDITOR +#if UNITY_2019_3_OR_NEWER + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] + private static void OnDomainReload() + { + s_ActiveParticles.Clear(); + s_ActiveAttractors.Clear(); + s_UpdatedGroupIds.Clear(); + s_FrameCount = 0; + } +#endif + [InitializeOnLoadMethod] private static void InitializeOnLoad() { From bf4c9140d41e50f698ff9d181d8fc115229e1972 Mon Sep 17 00:00:00 2001 From: mob-sakai <12690315+mob-sakai@users.noreply.github.com> Date: Thu, 25 Jun 2026 12:51:23 +0900 Subject: [PATCH 09/13] chore: add URP project for testing --- .github/workflows/test-urp.yml | 126 +++ ParticleEffectForUGUI_URP/.gitignore | 31 + .../Assets/DefaultVolumeProfile.asset | 795 +++++++++++++++ .../Assets/DefaultVolumeProfile.asset.meta | 8 + .../Assets/ProjectSettings.meta | 8 + .../NanoMonitorProjectSettings.asset | 35 + .../NanoMonitorProjectSettings.asset.meta | 8 + .../New Universal Render Pipeline Asset.asset | 138 +++ ...Universal Render Pipeline Asset.asset.meta | 8 + ...ersal Render Pipeline Asset_Renderer.asset | 54 + ... Render Pipeline Asset_Renderer.asset.meta | 8 + .../UIParticleProjectSettings.asset | 19 + .../UIParticleProjectSettings.asset.meta | 8 + ...niversalRenderPipelineGlobalSettings.asset | 456 +++++++++ ...salRenderPipelineGlobalSettings.asset.meta | 8 + .../Packages/manifest.json | 10 + .../Packages/packages-lock.json | 211 ++++ .../ProjectSettings/AudioManager.asset | 19 + .../BurstAotSettings_StandaloneWindows.json | 16 + .../ProjectSettings/ClusterInputManager.asset | 6 + .../CommonBurstAotSettings.json | 6 + .../ProjectSettings/DynamicsManager.asset | 36 + .../ProjectSettings/EditorBuildSettings.asset | 11 + .../ProjectSettings/EditorSettings.asset | 52 + .../ProjectSettings/GraphicsSettings.asset | 70 ++ .../ProjectSettings/InputManager.asset | 487 +++++++++ .../ProjectSettings/MemorySettings.asset | 35 + .../ProjectSettings/MultiplayerManager.asset | 7 + .../ProjectSettings/NavMeshAreas.asset | 91 ++ .../PackageManagerSettings.asset | 43 + .../ProjectSettings/Physics2DSettings.asset | 56 + .../ProjectSettings/PresetManager.asset | 7 + .../ProjectSettings/ProjectSettings.asset | 956 ++++++++++++++++++ .../ProjectSettings/ProjectVersion.txt | 2 + .../ProjectSettings/QualitySettings.asset | 80 ++ .../SceneTemplateSettings.json | 126 +++ .../ScriptableBuildPipeline.json | 14 + .../ProjectSettings/ShaderGraphSettings.asset | 19 + .../SymbolicLinkerSettings.json | 20 + .../ProjectSettings/TagManager.asset | 43 + .../ProjectSettings/TimeManager.asset | 9 + .../ProjectSettings/URPProjectSettings.asset | 16 + .../UnityConnectSettings.asset | 36 + .../ProjectSettings/VFXManager.asset | 12 + .../VersionControlSettings.asset | 8 + .../ProjectSettings/XRSettings.asset | 10 + 46 files changed, 4224 insertions(+) create mode 100644 .github/workflows/test-urp.yml create mode 100644 ParticleEffectForUGUI_URP/.gitignore create mode 100644 ParticleEffectForUGUI_URP/Assets/DefaultVolumeProfile.asset create mode 100644 ParticleEffectForUGUI_URP/Assets/DefaultVolumeProfile.asset.meta create mode 100644 ParticleEffectForUGUI_URP/Assets/ProjectSettings.meta create mode 100644 ParticleEffectForUGUI_URP/Assets/ProjectSettings/NanoMonitorProjectSettings.asset create mode 100644 ParticleEffectForUGUI_URP/Assets/ProjectSettings/NanoMonitorProjectSettings.asset.meta create mode 100644 ParticleEffectForUGUI_URP/Assets/ProjectSettings/New Universal Render Pipeline Asset.asset create mode 100644 ParticleEffectForUGUI_URP/Assets/ProjectSettings/New Universal Render Pipeline Asset.asset.meta create mode 100644 ParticleEffectForUGUI_URP/Assets/ProjectSettings/New Universal Render Pipeline Asset_Renderer.asset create mode 100644 ParticleEffectForUGUI_URP/Assets/ProjectSettings/New Universal Render Pipeline Asset_Renderer.asset.meta create mode 100644 ParticleEffectForUGUI_URP/Assets/ProjectSettings/UIParticleProjectSettings.asset create mode 100644 ParticleEffectForUGUI_URP/Assets/ProjectSettings/UIParticleProjectSettings.asset.meta create mode 100644 ParticleEffectForUGUI_URP/Assets/UniversalRenderPipelineGlobalSettings.asset create mode 100644 ParticleEffectForUGUI_URP/Assets/UniversalRenderPipelineGlobalSettings.asset.meta create mode 100644 ParticleEffectForUGUI_URP/Packages/manifest.json create mode 100644 ParticleEffectForUGUI_URP/Packages/packages-lock.json create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/AudioManager.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/BurstAotSettings_StandaloneWindows.json create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/ClusterInputManager.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/CommonBurstAotSettings.json create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/DynamicsManager.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/EditorBuildSettings.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/EditorSettings.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/GraphicsSettings.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/InputManager.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/MemorySettings.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/MultiplayerManager.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/NavMeshAreas.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/PackageManagerSettings.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/Physics2DSettings.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/PresetManager.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/ProjectSettings.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/ProjectVersion.txt create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/QualitySettings.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/SceneTemplateSettings.json create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/ScriptableBuildPipeline.json create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/ShaderGraphSettings.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/SymbolicLinkerSettings.json create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/TagManager.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/TimeManager.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/URPProjectSettings.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/UnityConnectSettings.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/VFXManager.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/VersionControlSettings.asset create mode 100644 ParticleEffectForUGUI_URP/ProjectSettings/XRSettings.asset diff --git a/.github/workflows/test-urp.yml b/.github/workflows/test-urp.yml new file mode 100644 index 0000000..ac8f55c --- /dev/null +++ b/.github/workflows/test-urp.yml @@ -0,0 +1,126 @@ +# Required secrets +# UNITY_LICENSE: The contents of Unity license file +# UNITY_EMAIL: Unity user email to login +# UNITY_PASSWORD: Unity user password to login +name: πŸ§ͺ Test URP +run-name: πŸ§ͺ Test URP (${{ github.event.pull_request.title || github.ref_name }}) + +env: + # MINIMUM_VERSION: The minimum version of Unity. + MINIMUM_VERSION: 6000.1 + # EXCLUDE_FILTER: The excluded versions of Unity. + EXCLUDE_FILTER: '(2020.2.0|2021.1|2023.3)' + PROJECT_PATH: ParticleEffectForUGUI_URP + +on: + workflow_dispatch: + inputs: + usePeriodVersions: + description: "Use the period versions (.0f1, .10f1, 20f1, ...)." + required: false + default: "true" + push: + branches: + - develop + - "develop-*" + tags: + - "!*" + paths-ignore: + - "**.md" + pull_request: + types: + - opened + - reopened + - synchronize + paths-ignore: + - "**.md" + +jobs: + setup: + name: βš™οΈ Setup + runs-on: ubuntu-latest + permissions: {} # No permissions needed for setup job + outputs: + unityVersions: ${{ steps.setup.outputs.unityVersions }} + steps: + - name: πŸ”‘ Secrets check + run: | + echo "Checking secrets for ${{ github.actor }} ..." + if [ -z "$UNITY_EMAIL" ] || [ -z "$UNITY_PASSWORD" ] || [ -z "$UNITY_LICENSE" ]; then + echo "Error: UNITY_EMAIL, UNITY_PASSWORD, and UNITY_LICENSE secrets must be set." | tee -a $GITHUB_STEP_SUMMARY >&2 + echo "Error: See https://game.ci/docs/github/test-runner#basic-setup" | tee -a $GITHUB_STEP_SUMMARY >&2 + echo "Error: Set the secrets at ${{ github.server_url }}/${{ github.repository }}/settings/secrets/actions" | tee -a $GITHUB_STEP_SUMMARY >&2 + exit 1 + fi + env: + UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} + UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} + UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} + - name: βš™οΈ Find target Unity versions + id: setup + run: | + echo "==== Target Unity Versions ====" + LATEST_VERSIONS=`npx -y unity-changeset@latest list --json --versions --all --latest-patch --ignore-alpha --min ${MINIMUM_VERSION}` + if [ "${{ inputs.usePeriodVersions }}" = "true" ]; then + ADDITIONAL_VERSIONS=`npx -y unity-changeset@latest list --json --versions --ignore-alpha --min ${MINIMUM_VERSION} --grep '0f'` + else + ADDITIONAL_VERSIONS=[] + fi + + VERSIONS=`echo "[${LATEST_VERSIONS}, ${ADDITIONAL_VERSIONS}]" \ + | jq -c '[ flatten | sort | unique | .[] | select( test("${{ env.EXCLUDE_FILTER }}") | not ) ]'` + echo "unityVersions=${VERSIONS}" | tee $GITHUB_OUTPUT + + test: + name: πŸ§ͺ Run tests + runs-on: ubuntu-latest + permissions: + checks: write + contents: read + needs: setup + strategy: + fail-fast: false + max-parallel: 8 + matrix: + unityVersion: ${{ fromJson(needs.setup.outputs.unityVersions) }} + steps: + - name: 🚚 Checkout ($${{ github.ref }}) + uses: actions/checkout@v6 + + - name: πŸ“₯ Cache library + uses: actions/cache@v5 + with: + path: ${{ env.PROJECT_PATH }}/Library + key: ${{ env.PROJECT_PATH }}-Library-${{ matrix.unityVersion }}-${{ github.event.pull_request.head.sha || github.sha }} + restore-keys: | + ${{ env.PROJECT_PATH }}-Library-${{ matrix.unityVersion }}- + ${{ env.PROJECT_PATH }}-Library- + + - name: πŸ› οΈ Build Unity Project (Test) + uses: game-ci/unity-builder@v5 + timeout-minutes: 45 + with: + customImage: ghcr.io/mob-sakai/unity3d:${{ matrix.unityVersion }} + targetPlatform: StandaloneLinux64 + allowDirtyBuild: true + customParameters: -nographics + projectPath: ${{ env.PROJECT_PATH }} + env: + UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} + UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} + UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} + + # - name: πŸ§ͺ Run tests + # uses: game-ci/unity-test-runner@v4 + # timeout-minutes: 45 + # with: + # customImage: ghcr.io/mob-sakai/unity3d:${{ matrix.unityVersion }} + # # unityVersion: ${{ matrix.unityVersion }} + # customParameters: -nographics + # checkName: ${{ matrix.unityVersion }} Test Results + # githubToken: ${{ github.token }} + # projectPath: ${{ env.PROJECT_PATH }} + # env: + # UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} + # UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} + # UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} diff --git a/ParticleEffectForUGUI_URP/.gitignore b/ParticleEffectForUGUI_URP/.gitignore new file mode 100644 index 0000000..1984e0a --- /dev/null +++ b/ParticleEffectForUGUI_URP/.gitignore @@ -0,0 +1,31 @@ +# Windows +Thumbs.db +Desktop.ini +/*.csproj +/*.sln + +# macOS +.DS_Store + +# Vim +*.swp + +# Unity +/Logs +/Library +/Temp +Assets/Plugins.meta +Assets/Plugins/ + +# VS +.vs/ +.vscode/ +.idea/ +obj/ +bin/ +UserSettings/ +*.app/ +Build/ +Assets/TextMeshPro Support* +Assets/Demo* +Assets/Samples* diff --git a/ParticleEffectForUGUI_URP/Assets/DefaultVolumeProfile.asset b/ParticleEffectForUGUI_URP/Assets/DefaultVolumeProfile.asset new file mode 100644 index 0000000..c3bb649 --- /dev/null +++ b/ParticleEffectForUGUI_URP/Assets/DefaultVolumeProfile.asset @@ -0,0 +1,795 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-8318763489275339696 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 558a8e2b6826cf840aae193990ba9f2e, type: 3} + m_Name: ShadowsMidtonesHighlights + m_EditorClassIdentifier: + active: 1 + shadows: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + midtones: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + highlights: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + shadowsStart: + m_OverrideState: 1 + m_Value: 0 + shadowsEnd: + m_OverrideState: 1 + m_Value: 0.3 + highlightsStart: + m_OverrideState: 1 + m_Value: 0.55 + highlightsEnd: + m_OverrideState: 1 + m_Value: 1 +--- !u!114 &-7339262701197741020 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6bd486065ce11414fa40e631affc4900, type: 3} + m_Name: ProbeVolumesOptions + m_EditorClassIdentifier: + active: 1 + normalBias: + m_OverrideState: 1 + m_Value: 0.05 + viewBias: + m_OverrideState: 1 + m_Value: 0.1 + scaleBiasWithMinProbeDistance: + m_OverrideState: 1 + m_Value: 0 + samplingNoise: + m_OverrideState: 1 + m_Value: 0.1 + animateSamplingNoise: + m_OverrideState: 1 + m_Value: 1 + leakReductionMode: + m_OverrideState: 1 + m_Value: 2 + minValidDotProductValue: + m_OverrideState: 1 + m_Value: 0.1 + occlusionOnlyReflectionNormalization: + m_OverrideState: 1 + m_Value: 1 + intensityMultiplier: + m_OverrideState: 1 + m_Value: 1 + skyOcclusionIntensityMultiplier: + m_OverrideState: 1 + m_Value: 1 + worldOffset: + m_OverrideState: 1 + m_Value: {x: 0, y: 0, z: 0} +--- !u!114 &-7189973299047171609 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f335fb1ffd8684294ad653bf1c7564, type: 3} + m_Name: ColorAdjustments + m_EditorClassIdentifier: + active: 1 + postExposure: + m_OverrideState: 1 + m_Value: 0 + contrast: + m_OverrideState: 1 + m_Value: 0 + colorFilter: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + hueShift: + m_OverrideState: 1 + m_Value: 0 + saturation: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-7042646093870109111 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb60a22f311433c4c962b888d1393f88, type: 3} + m_Name: PaniniProjection + m_EditorClassIdentifier: + active: 1 + distance: + m_OverrideState: 1 + m_Value: 0 + cropToFit: + m_OverrideState: 1 + m_Value: 1 +--- !u!114 &-6342799205188895270 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5485954d14dfb9a4c8ead8edb0ded5b1, type: 3} + m_Name: LiftGammaGain + m_EditorClassIdentifier: + active: 1 + lift: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + gamma: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + gain: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} +--- !u!114 &-4327564031979092193 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3} + m_Name: Bloom + m_EditorClassIdentifier: + active: 1 + skipIterations: + m_OverrideState: 1 + m_Value: 1 + threshold: + m_OverrideState: 1 + m_Value: 0.9 + intensity: + m_OverrideState: 1 + m_Value: 0 + scatter: + m_OverrideState: 1 + m_Value: 0.7 + clamp: + m_OverrideState: 1 + m_Value: 65472 + tint: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + highQualityFiltering: + m_OverrideState: 1 + m_Value: 0 + downscale: + m_OverrideState: 1 + m_Value: 0 + maxIterations: + m_OverrideState: 1 + m_Value: 6 + dirtTexture: + m_OverrideState: 1 + m_Value: {fileID: 0} + dimension: 1 + dirtIntensity: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-3385833699382731533 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 70afe9e12c7a7ed47911bb608a23a8ff, type: 3} + m_Name: SplitToning + m_EditorClassIdentifier: + active: 1 + shadows: + m_OverrideState: 1 + m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} + highlights: + m_OverrideState: 1 + m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} + balance: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-2878483998703988821 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 29fa0085f50d5e54f8144f766051a691, type: 3} + m_Name: FilmGrain + m_EditorClassIdentifier: + active: 1 + type: + m_OverrideState: 1 + m_Value: 0 + intensity: + m_OverrideState: 1 + m_Value: 0 + response: + m_OverrideState: 1 + m_Value: 0.8 + texture: + m_OverrideState: 1 + m_Value: {fileID: 0} +--- !u!114 &-2588988503245798775 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 81180773991d8724ab7f2d216912b564, type: 3} + m_Name: ChromaticAberration + m_EditorClassIdentifier: + active: 1 + intensity: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-1963650184611373373 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3} + m_Name: Tonemapping + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 0 + neutralHDRRangeReductionMode: + m_OverrideState: 1 + m_Value: 2 + acesPreset: + m_OverrideState: 1 + m_Value: 3 + hueShiftAmount: + m_OverrideState: 1 + m_Value: 0 + detectPaperWhite: + m_OverrideState: 1 + m_Value: 0 + paperWhite: + m_OverrideState: 1 + m_Value: 300 + detectBrightnessLimits: + m_OverrideState: 1 + m_Value: 1 + minNits: + m_OverrideState: 1 + m_Value: 0.005 + maxNits: + m_OverrideState: 1 + m_Value: 1000 +--- !u!114 &-1487602244048861803 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e021b4c809a781e468c2988c016ebbea, type: 3} + m_Name: ColorLookup + m_EditorClassIdentifier: + active: 1 + texture: + m_OverrideState: 1 + m_Value: {fileID: 0} + dimension: 1 + contribution: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-492533495062911916 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cdfbdbb87d3286943a057f7791b43141, type: 3} + m_Name: ChannelMixer + m_EditorClassIdentifier: + active: 1 + redOutRedIn: + m_OverrideState: 1 + m_Value: 100 + redOutGreenIn: + m_OverrideState: 1 + m_Value: 0 + redOutBlueIn: + m_OverrideState: 1 + m_Value: 0 + greenOutRedIn: + m_OverrideState: 1 + m_Value: 0 + greenOutGreenIn: + m_OverrideState: 1 + m_Value: 100 + greenOutBlueIn: + m_OverrideState: 1 + m_Value: 0 + blueOutRedIn: + m_OverrideState: 1 + m_Value: 0 + blueOutGreenIn: + m_OverrideState: 1 + m_Value: 0 + blueOutBlueIn: + m_OverrideState: 1 + m_Value: 100 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} + m_Name: DefaultVolumeProfile + m_EditorClassIdentifier: + components: + - {fileID: -2588988503245798775} + - {fileID: -1487602244048861803} + - {fileID: 6617088795044913050} + - {fileID: 7841562022953569295} + - {fileID: -1963650184611373373} + - {fileID: -8318763489275339696} + - {fileID: 2040204716414217230} + - {fileID: -7189973299047171609} + - {fileID: 4140008567339043299} + - {fileID: -492533495062911916} + - {fileID: -6342799205188895270} + - {fileID: -4327564031979092193} + - {fileID: 3383548271486537075} + - {fileID: -7042646093870109111} + - {fileID: -2878483998703988821} + - {fileID: 7071260261873318014} + - {fileID: 6539365348424866883} + - {fileID: -3385833699382731533} + - {fileID: -7339262701197741020} +--- !u!114 &2040204716414217230 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c01700fd266d6914ababb731e09af2eb, type: 3} + m_Name: DepthOfField + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 0 + gaussianStart: + m_OverrideState: 1 + m_Value: 10 + gaussianEnd: + m_OverrideState: 1 + m_Value: 30 + gaussianMaxRadius: + m_OverrideState: 1 + m_Value: 1 + highQualitySampling: + m_OverrideState: 1 + m_Value: 0 + focusDistance: + m_OverrideState: 1 + m_Value: 10 + aperture: + m_OverrideState: 1 + m_Value: 5.6 + focalLength: + m_OverrideState: 1 + m_Value: 50 + bladeCount: + m_OverrideState: 1 + m_Value: 5 + bladeCurvature: + m_OverrideState: 1 + m_Value: 1 + bladeRotation: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &3383548271486537075 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3eb4b772797da9440885e8bd939e9560, type: 3} + m_Name: ColorCurves + m_EditorClassIdentifier: + active: 1 + master: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + red: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + green: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + blue: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + hueVsHue: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 1 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + hueVsSat: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 1 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + satVsSat: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 0 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + lumVsSat: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 0 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!114 &4140008567339043299 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3} + m_Name: Vignette + m_EditorClassIdentifier: + active: 1 + color: + m_OverrideState: 1 + m_Value: {r: 0, g: 0, b: 0, a: 1} + center: + m_OverrideState: 1 + m_Value: {x: 0.5, y: 0.5} + intensity: + m_OverrideState: 1 + m_Value: 0 + smoothness: + m_OverrideState: 1 + m_Value: 0.2 + rounded: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &6539365348424866883 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 06437c1ff663d574d9447842ba0a72e4, type: 3} + m_Name: ScreenSpaceLensFlare + m_EditorClassIdentifier: + active: 1 + intensity: + m_OverrideState: 1 + m_Value: 0 + tintColor: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + bloomMip: + m_OverrideState: 1 + m_Value: 1 + firstFlareIntensity: + m_OverrideState: 1 + m_Value: 1 + secondaryFlareIntensity: + m_OverrideState: 1 + m_Value: 1 + warpedFlareIntensity: + m_OverrideState: 1 + m_Value: 1 + warpedFlareScale: + m_OverrideState: 1 + m_Value: {x: 1, y: 1} + samples: + m_OverrideState: 1 + m_Value: 1 + sampleDimmer: + m_OverrideState: 1 + m_Value: 0.5 + vignetteEffect: + m_OverrideState: 1 + m_Value: 1 + startingPosition: + m_OverrideState: 1 + m_Value: 1.25 + scale: + m_OverrideState: 1 + m_Value: 1.5 + streaksIntensity: + m_OverrideState: 1 + m_Value: 0 + streaksLength: + m_OverrideState: 1 + m_Value: 0.5 + streaksOrientation: + m_OverrideState: 1 + m_Value: 0 + streaksThreshold: + m_OverrideState: 1 + m_Value: 0.25 + resolution: + m_OverrideState: 1 + m_Value: 4 + chromaticAbberationIntensity: + m_OverrideState: 1 + m_Value: 0.5 +--- !u!114 &6617088795044913050 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 221518ef91623a7438a71fef23660601, type: 3} + m_Name: WhiteBalance + m_EditorClassIdentifier: + active: 1 + temperature: + m_OverrideState: 1 + m_Value: 0 + tint: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &7071260261873318014 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c5e1dc532bcb41949b58bc4f2abfbb7e, type: 3} + m_Name: LensDistortion + m_EditorClassIdentifier: + active: 1 + intensity: + m_OverrideState: 1 + m_Value: 0 + xMultiplier: + m_OverrideState: 1 + m_Value: 1 + yMultiplier: + m_OverrideState: 1 + m_Value: 1 + center: + m_OverrideState: 1 + m_Value: {x: 0.5, y: 0.5} + scale: + m_OverrideState: 1 + m_Value: 1 +--- !u!114 &7841562022953569295 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ccf1aba9553839d41ae37dd52e9ebcce, type: 3} + m_Name: MotionBlur + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 0 + quality: + m_OverrideState: 1 + m_Value: 0 + intensity: + m_OverrideState: 1 + m_Value: 0 + clamp: + m_OverrideState: 1 + m_Value: 0.05 diff --git a/ParticleEffectForUGUI_URP/Assets/DefaultVolumeProfile.asset.meta b/ParticleEffectForUGUI_URP/Assets/DefaultVolumeProfile.asset.meta new file mode 100644 index 0000000..c829545 --- /dev/null +++ b/ParticleEffectForUGUI_URP/Assets/DefaultVolumeProfile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 207c8d2dae5ad4617b1ede35b0aa78f1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/ParticleEffectForUGUI_URP/Assets/ProjectSettings.meta b/ParticleEffectForUGUI_URP/Assets/ProjectSettings.meta new file mode 100644 index 0000000..d3bace3 --- /dev/null +++ b/ParticleEffectForUGUI_URP/Assets/ProjectSettings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0753c4ecd66f04a5ea9e97e3c63cfdf1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ParticleEffectForUGUI_URP/Assets/ProjectSettings/NanoMonitorProjectSettings.asset b/ParticleEffectForUGUI_URP/Assets/ProjectSettings/NanoMonitorProjectSettings.asset new file mode 100644 index 0000000..a56d76c --- /dev/null +++ b/ParticleEffectForUGUI_URP/Assets/ProjectSettings/NanoMonitorProjectSettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 194d2f2eb25c64ec0af5c323c74eb518, type: 3} + m_Name: NanoMonitorProjectSettings + m_EditorClassIdentifier: Coffee.NanoMonitor::Coffee.NanoMonitor.NanoMonitorProjectSettings + m_PreLoadSettingsInBuild: 1 + m_NanoMonitorEnabled: 1 + m_BootSceneNameRegex: .* + m_DevelopmentBuildOnly: 0 + m_EnabledInEditor: 1 + m_AlwaysIncludeAssembly: 0 + m_InstantiateOnLoad: 1 + m_Prefab: {fileID: 4567906826058368312, guid: 7cebff2d255b9433cbe23b243c193329, + type: 3} + m_Interval: 0.5 + m_Anchor: 1 + m_Width: 800 + m_HelpUrl: https://github.com/mob-sakai/Coffee.Internal + m_CustomMonitorItems: + - m_Format: Screen:{0}x{1} + m_Arg0: + m_Path: UnityEngine.Screen, UnityEngine.CoreModule;width + m_Arg1: + m_Path: UnityEngine.Screen, UnityEngine.CoreModule;height + m_Arg2: + m_Path: diff --git a/ParticleEffectForUGUI_URP/Assets/ProjectSettings/NanoMonitorProjectSettings.asset.meta b/ParticleEffectForUGUI_URP/Assets/ProjectSettings/NanoMonitorProjectSettings.asset.meta new file mode 100644 index 0000000..a38a900 --- /dev/null +++ b/ParticleEffectForUGUI_URP/Assets/ProjectSettings/NanoMonitorProjectSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7eec1f5e86f9b4e2588fc4488f9d18b7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/ParticleEffectForUGUI_URP/Assets/ProjectSettings/New Universal Render Pipeline Asset.asset b/ParticleEffectForUGUI_URP/Assets/ProjectSettings/New Universal Render Pipeline Asset.asset new file mode 100644 index 0000000..df1de63 --- /dev/null +++ b/ParticleEffectForUGUI_URP/Assets/ProjectSettings/New Universal Render Pipeline Asset.asset @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} + m_Name: New Universal Render Pipeline Asset + m_EditorClassIdentifier: + k_AssetVersion: 12 + k_AssetPreviousVersion: 12 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: b49879f926a5d493d9fc674f1d84b692, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 0 + m_RequireOpaqueTexture: 0 + m_OpaqueDownsampling: 1 + m_SupportsTerrainHoles: 1 + m_SupportsHDR: 1 + m_HDRColorBufferPrecision: 0 + m_MSAA: 1 + m_RenderScale: 1 + m_UpscalingFilter: 0 + m_FsrOverrideSharpness: 0 + m_FsrSharpness: 0.92 + m_EnableLODCrossFade: 1 + m_LODCrossFadeDitheringType: 1 + m_ShEvalMode: 0 + m_LightProbeSystem: 0 + m_ProbeVolumeMemoryBudget: 1024 + m_ProbeVolumeBlendingMemoryBudget: 256 + m_SupportProbeVolumeGPUStreaming: 0 + m_SupportProbeVolumeDiskStreaming: 0 + m_SupportProbeVolumeScenarios: 0 + m_SupportProbeVolumeScenarioBlending: 0 + m_ProbeVolumeSHBands: 1 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 1 + m_MainLightShadowmapResolution: 2048 + m_AdditionalLightsRenderingMode: 1 + m_AdditionalLightsPerObjectLimit: 4 + m_AdditionalLightShadowsSupported: 0 + m_AdditionalLightsShadowmapResolution: 2048 + m_AdditionalLightsShadowResolutionTierLow: 256 + m_AdditionalLightsShadowResolutionTierMedium: 512 + m_AdditionalLightsShadowResolutionTierHigh: 1024 + m_ReflectionProbeBlending: 0 + m_ReflectionProbeBoxProjection: 0 + m_ShadowDistance: 50 + m_ShadowCascadeCount: 1 + m_Cascade2Split: 0.25 + m_Cascade3Split: {x: 0.1, y: 0.3} + m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} + m_CascadeBorder: 0.2 + m_ShadowDepthBias: 1 + m_ShadowNormalBias: 1 + m_AnyShadowsSupported: 1 + m_SoftShadowsSupported: 0 + m_ConservativeEnclosingSphere: 1 + m_NumIterationsEnclosingSphere: 64 + m_SoftShadowQuality: 2 + m_AdditionalLightsCookieResolution: 2048 + m_AdditionalLightsCookieFormat: 3 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 1 + m_SupportsLightCookies: 1 + m_SupportsLightLayers: 0 + m_DebugLevel: 0 + m_StoreActionsOptimization: 0 + m_UseAdaptivePerformance: 1 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 32 + m_AllowPostProcessAlphaOutput: 0 + m_UseFastSRGBLinearConversion: 0 + m_SupportDataDrivenLensFlare: 1 + m_SupportScreenSpaceLensFlare: 1 + m_GPUResidentDrawerMode: 0 + m_SmallMeshScreenPercentage: 0 + m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0 + m_ShadowType: 1 + m_LocalShadowsSupported: 0 + m_LocalShadowsAtlasResolution: 256 + m_MaxPixelLights: 0 + m_ShadowAtlasResolution: 256 + m_VolumeFrameworkUpdateMode: 0 + m_VolumeProfile: {fileID: 0} + apvScenesData: + obsoleteSceneBounds: + m_Keys: [] + m_Values: [] + obsoleteHasProbeVolumes: + m_Keys: [] + m_Values: + m_PrefilteringModeMainLightShadows: 3 + m_PrefilteringModeAdditionalLight: 3 + m_PrefilteringModeAdditionalLightShadows: 0 + m_PrefilterXRKeywords: 1 + m_PrefilteringModeForwardPlus: 0 + m_PrefilteringModeDeferredRendering: 0 + m_PrefilteringModeScreenSpaceOcclusion: 0 + m_PrefilterDebugKeywords: 1 + m_PrefilterWriteRenderingLayers: 1 + m_PrefilterHDROutput: 1 + m_PrefilterAlphaOutput: 1 + m_PrefilterSSAODepthNormals: 1 + m_PrefilterSSAOSourceDepthLow: 1 + m_PrefilterSSAOSourceDepthMedium: 1 + m_PrefilterSSAOSourceDepthHigh: 1 + m_PrefilterSSAOInterleaved: 1 + m_PrefilterSSAOBlueNoise: 1 + m_PrefilterSSAOSampleCountLow: 1 + m_PrefilterSSAOSampleCountMedium: 1 + m_PrefilterSSAOSampleCountHigh: 1 + m_PrefilterDBufferMRT1: 1 + m_PrefilterDBufferMRT2: 1 + m_PrefilterDBufferMRT3: 1 + m_PrefilterSoftShadowsQualityLow: 1 + m_PrefilterSoftShadowsQualityMedium: 1 + m_PrefilterSoftShadowsQualityHigh: 1 + m_PrefilterSoftShadows: 0 + m_PrefilterScreenCoord: 1 + m_PrefilterNativeRenderPass: 1 + m_PrefilterUseLegacyLightmaps: 0 + m_PrefilterReflectionProbeBlending: 1 + m_PrefilterReflectionProbeBoxProjection: 1 + m_ShaderVariantLogLevel: 0 + m_ShadowCascades: 0 + m_Textures: + blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} diff --git a/ParticleEffectForUGUI_URP/Assets/ProjectSettings/New Universal Render Pipeline Asset.asset.meta b/ParticleEffectForUGUI_URP/Assets/ProjectSettings/New Universal Render Pipeline Asset.asset.meta new file mode 100644 index 0000000..48bb704 --- /dev/null +++ b/ParticleEffectForUGUI_URP/Assets/ProjectSettings/New Universal Render Pipeline Asset.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 59f174074c8744ddeb37077c0bd89a44 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/ParticleEffectForUGUI_URP/Assets/ProjectSettings/New Universal Render Pipeline Asset_Renderer.asset b/ParticleEffectForUGUI_URP/Assets/ProjectSettings/New Universal Render Pipeline Asset_Renderer.asset new file mode 100644 index 0000000..91d37fe --- /dev/null +++ b/ParticleEffectForUGUI_URP/Assets/ProjectSettings/New Universal Render Pipeline Asset_Renderer.asset @@ -0,0 +1,54 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} + m_Name: New Universal Render Pipeline Asset_Renderer + m_EditorClassIdentifier: + debugShaders: + debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, + type: 3} + hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3} + probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, + type: 3} + probeVolumeResources: + probeVolumeDebugShader: {fileID: 0} + probeVolumeFragmentationDebugShader: {fileID: 0} + probeVolumeOffsetDebugShader: {fileID: 0} + probeVolumeSamplingDebugShader: {fileID: 0} + probeSamplingDebugMesh: {fileID: 0} + probeSamplingDebugTexture: {fileID: 0} + probeVolumeBlendStatesCS: {fileID: 0} + m_RendererFeatures: [] + m_RendererFeatureMap: + m_UseNativeRenderPass: 0 + postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} + m_AssetVersion: 2 + m_OpaqueLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_TransparentLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_DefaultStencilState: + overrideStencilState: 0 + stencilReference: 0 + stencilCompareFunction: 8 + passOperation: 2 + failOperation: 0 + zFailOperation: 0 + m_ShadowTransparentReceive: 1 + m_RenderingMode: 0 + m_DepthPrimingMode: 0 + m_CopyDepthMode: 1 + m_DepthAttachmentFormat: 0 + m_DepthTextureFormat: 0 + m_AccurateGbufferNormals: 0 + m_IntermediateTextureMode: 1 diff --git a/ParticleEffectForUGUI_URP/Assets/ProjectSettings/New Universal Render Pipeline Asset_Renderer.asset.meta b/ParticleEffectForUGUI_URP/Assets/ProjectSettings/New Universal Render Pipeline Asset_Renderer.asset.meta new file mode 100644 index 0000000..adf515f --- /dev/null +++ b/ParticleEffectForUGUI_URP/Assets/ProjectSettings/New Universal Render Pipeline Asset_Renderer.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b49879f926a5d493d9fc674f1d84b692 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/ParticleEffectForUGUI_URP/Assets/ProjectSettings/UIParticleProjectSettings.asset b/ParticleEffectForUGUI_URP/Assets/ProjectSettings/UIParticleProjectSettings.asset new file mode 100644 index 0000000..113341f --- /dev/null +++ b/ParticleEffectForUGUI_URP/Assets/ProjectSettings/UIParticleProjectSettings.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f22a23b9d98e440478697f4adf30e61c, type: 3} + m_Name: UIParticleProjectSettings + m_EditorClassIdentifier: + m_PreLoadSettingsInBuild: 1 + m_AutoColorCorrection: 1 + m_DefaultViewSizeForBaking: 100 + m_HideGeneratedObjects: 1 + m_PreviewOnSelect: 1 diff --git a/ParticleEffectForUGUI_URP/Assets/ProjectSettings/UIParticleProjectSettings.asset.meta b/ParticleEffectForUGUI_URP/Assets/ProjectSettings/UIParticleProjectSettings.asset.meta new file mode 100644 index 0000000..a4eaa3b --- /dev/null +++ b/ParticleEffectForUGUI_URP/Assets/ProjectSettings/UIParticleProjectSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: df1eee9ef27c1480bbdb1f0b6af2b1f0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/ParticleEffectForUGUI_URP/Assets/UniversalRenderPipelineGlobalSettings.asset b/ParticleEffectForUGUI_URP/Assets/UniversalRenderPipelineGlobalSettings.asset new file mode 100644 index 0000000..628337e --- /dev/null +++ b/ParticleEffectForUGUI_URP/Assets/UniversalRenderPipelineGlobalSettings.asset @@ -0,0 +1,456 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2ec995e51a6e251468d2a3fd8a686257, type: 3} + m_Name: UniversalRenderPipelineGlobalSettings + m_EditorClassIdentifier: + m_ShaderStrippingSetting: + m_Version: 0 + m_ExportShaderVariants: 1 + m_ShaderVariantLogLevel: 0 + m_StripRuntimeDebugShaders: 1 + m_URPShaderStrippingSetting: + m_Version: 0 + m_StripUnusedPostProcessingVariants: 0 + m_StripUnusedVariants: 1 + m_StripScreenCoordOverrideVariants: 1 + m_ShaderVariantLogLevel: 0 + m_ExportShaderVariants: 1 + m_StripDebugVariants: 1 + m_StripUnusedPostProcessingVariants: 0 + m_StripUnusedVariants: 1 + m_StripScreenCoordOverrideVariants: 1 + supportRuntimeDebugDisplay: 0 + m_EnableRenderGraph: 0 + m_Settings: + m_SettingsList: + m_List: + - rid: 3828595718998720540 + - rid: 3828595718998720541 + - rid: 3828595718998720542 + - rid: 3828595718998720543 + - rid: 3828595718998720544 + - rid: 3828595718998720545 + - rid: 3828595718998720546 + - rid: 3828595718998720547 + - rid: 3828595718998720548 + - rid: 3828595718998720549 + - rid: 3828595718998720550 + - rid: 3828595718998720551 + - rid: 3828595718998720552 + - rid: 3828595718998720553 + - rid: 3828595718998720554 + - rid: 3828595718998720555 + - rid: 3828595718998720556 + - rid: 3828595718998720557 + - rid: 3828595718998720558 + - rid: 3828595718998720559 + - rid: 3828595718998720560 + - rid: 3828595718998720561 + - rid: 3828595718998720562 + - rid: 3828595718998720563 + - rid: 3828595718998720564 + - rid: 3828595718998720565 + m_RuntimeSettings: + m_List: + - rid: 3828595718998720542 + - rid: 3828595718998720546 + - rid: 3828595718998720547 + - rid: 3828595718998720549 + - rid: 3828595718998720551 + - rid: 3828595718998720552 + - rid: 3828595718998720554 + - rid: 3828595718998720557 + - rid: 3828595718998720558 + - rid: 3828595718998720562 + m_AssetVersion: 8 + m_ObsoleteDefaultVolumeProfile: {fileID: 0} + m_RenderingLayerNames: + - Default + m_ValidRenderingLayers: 0 + lightLayerName0: + lightLayerName1: + lightLayerName2: + lightLayerName3: + lightLayerName4: + lightLayerName5: + lightLayerName6: + lightLayerName7: + apvScenesData: + obsoleteSceneBounds: + m_Keys: [] + m_Values: [] + obsoleteHasProbeVolumes: + m_Keys: [] + m_Values: + references: + version: 2 + RefIds: + - rid: 3828595718998720540 + type: {class: PostProcessData/ShaderResources, ns: UnityEngine.Rendering.Universal, + asm: Unity.RenderPipelines.Universal.Runtime} + data: + stopNanPS: {fileID: 4800000, guid: 1121bb4e615ca3c48b214e79e841e823, type: 3} + subpixelMorphologicalAntialiasingPS: {fileID: 4800000, guid: 63eaba0ebfb82cc43bde059b4a8c65f6, + type: 3} + gaussianDepthOfFieldPS: {fileID: 4800000, guid: 5e7134d6e63e0bc47a1dd2669cedb379, + type: 3} + bokehDepthOfFieldPS: {fileID: 4800000, guid: 2aed67ad60045d54ba3a00c91e2d2631, + type: 3} + cameraMotionBlurPS: {fileID: 4800000, guid: 1edcd131364091c46a17cbff0b1de97a, + type: 3} + paniniProjectionPS: {fileID: 4800000, guid: a15b78cf8ca26ca4fb2090293153c62c, + type: 3} + lutBuilderLdrPS: {fileID: 4800000, guid: 65df88701913c224d95fc554db28381a, + type: 3} + lutBuilderHdrPS: {fileID: 4800000, guid: ec9fec698a3456d4fb18cf8bacb7a2bc, + type: 3} + bloomPS: {fileID: 4800000, guid: 5f1864addb451f54bae8c86d230f736e, type: 3} + temporalAntialiasingPS: {fileID: 4800000, guid: 9c70c1a35ff15f340b38ea84842358bf, + type: 3} + LensFlareDataDrivenPS: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92, + type: 3} + LensFlareScreenSpacePS: {fileID: 4800000, guid: 701880fecb344ea4c9cd0db3407ab287, + type: 3} + scalingSetupPS: {fileID: 4800000, guid: e8ee25143a34b8c4388709ea947055d1, + type: 3} + easuPS: {fileID: 4800000, guid: 562b7ae4f629f144aa97780546fce7c6, type: 3} + uberPostPS: {fileID: 4800000, guid: e7857e9d0c934dc4f83f270f8447b006, type: 3} + finalPostPassPS: {fileID: 4800000, guid: c49e63ed1bbcb334780a3bd19dfed403, + type: 3} + m_ShaderResourcesVersion: 0 + - rid: 3828595718998720541 + type: {class: ScreenSpaceAmbientOcclusionPersistentResources, ns: UnityEngine.Rendering.Universal, + asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Shader: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3} + m_Version: 0 + - rid: 3828595718998720542 + type: {class: UniversalRenderPipelineRuntimeShaders, ns: UnityEngine.Rendering.Universal, + asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_FallbackErrorShader: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, + type: 3} + m_BlitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, + type: 3} + m_CoreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} + m_CoreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, + type: 3} + m_SamplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} + m_TerrainDetailLit: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144, + type: 3} + m_TerrainDetailGrassBillboard: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90, + type: 3} + m_TerrainDetailGrass: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1, + type: 3} + - rid: 3828595718998720543 + type: {class: UniversalRenderPipelineEditorMaterials, ns: UnityEngine.Rendering.Universal, + asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_DefaultMaterial: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, + type: 2} + m_DefaultParticleMaterial: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, + type: 2} + m_DefaultLineMaterial: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, + type: 2} + m_DefaultTerrainMaterial: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, + type: 2} + m_DefaultDecalMaterial: {fileID: 2100000, guid: 31d0dcc6f2dd4e4408d18036a2c93862, + type: 2} + m_DefaultSpriteMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, + type: 2} + - rid: 3828595718998720544 + type: {class: PostProcessData/TextureResources, ns: UnityEngine.Rendering.Universal, + asm: Unity.RenderPipelines.Universal.Runtime} + data: + blueNoise16LTex: + - {fileID: 2800000, guid: 81200413a40918d4d8702e94db29911c, type: 3} + - {fileID: 2800000, guid: d50c5e07c9911a74982bddf7f3075e7b, type: 3} + - {fileID: 2800000, guid: 1134690bf9216164dbc75050e35b7900, type: 3} + - {fileID: 2800000, guid: 7ce2118f74614a94aa8a0cdf2e6062c3, type: 3} + - {fileID: 2800000, guid: 2ca97df9d1801e84a8a8f2c53cb744f0, type: 3} + - {fileID: 2800000, guid: e63eef8f54aa9dc4da9a5ac094b503b5, type: 3} + - {fileID: 2800000, guid: 39451254daebd6d40b52899c1f1c0c1b, type: 3} + - {fileID: 2800000, guid: c94ad916058dff743b0f1c969ddbe660, type: 3} + - {fileID: 2800000, guid: ed5ea7ce59ca8ec4f9f14bf470a30f35, type: 3} + - {fileID: 2800000, guid: 071e954febf155243a6c81e48f452644, type: 3} + - {fileID: 2800000, guid: 96aaab9cc247d0b4c98132159688c1af, type: 3} + - {fileID: 2800000, guid: fc3fa8f108657e14486697c9a84ccfc5, type: 3} + - {fileID: 2800000, guid: bfed3e498947fcb4890b7f40f54d85b9, type: 3} + - {fileID: 2800000, guid: d512512f4af60a442ab3458489412954, type: 3} + - {fileID: 2800000, guid: 47a45908f6db0cb44a0d5e961143afec, type: 3} + - {fileID: 2800000, guid: 4dcc0502f8586f941b5c4a66717205e8, type: 3} + - {fileID: 2800000, guid: 9d92991794bb5864c8085468b97aa067, type: 3} + - {fileID: 2800000, guid: 14381521ff11cb74abe3fe65401c23be, type: 3} + - {fileID: 2800000, guid: d36f0fe53425e08499a2333cf423634c, type: 3} + - {fileID: 2800000, guid: d4044ea2490d63b43aa1765f8efbf8a9, type: 3} + - {fileID: 2800000, guid: c9bd74624d8070f429e3f46d161f9204, type: 3} + - {fileID: 2800000, guid: d5c9b274310e5524ebe32a4e4da3df1f, type: 3} + - {fileID: 2800000, guid: f69770e54f2823f43badf77916acad83, type: 3} + - {fileID: 2800000, guid: 10b6c6d22e73dea46a8ab36b6eebd629, type: 3} + - {fileID: 2800000, guid: a2ec5cbf5a9b64345ad3fab0912ddf7b, type: 3} + - {fileID: 2800000, guid: 1c3c6d69a645b804fa232004b96b7ad3, type: 3} + - {fileID: 2800000, guid: d18a24d7b4ed50f4387993566d9d3ae2, type: 3} + - {fileID: 2800000, guid: c989e1ed85cf7154caa922fec53e6af6, type: 3} + - {fileID: 2800000, guid: ff47e5a0f105eb34883b973e51f4db62, type: 3} + - {fileID: 2800000, guid: fa042edbfc40fbd4bad0ab9d505b1223, type: 3} + - {fileID: 2800000, guid: 896d9004736809c4fb5973b7c12eb8b9, type: 3} + - {fileID: 2800000, guid: 179f794063d2a66478e6e726f84a65bc, type: 3} + filmGrainTex: + - {fileID: 2800000, guid: 654c582f7f8a5a14dbd7d119cbde215d, type: 3} + - {fileID: 2800000, guid: dd77ffd079630404e879388999033049, type: 3} + - {fileID: 2800000, guid: 1097e90e1306e26439701489f391a6c0, type: 3} + - {fileID: 2800000, guid: f0b67500f7fad3b4c9f2b13e8f41ba6e, type: 3} + - {fileID: 2800000, guid: 9930fb4528622b34687b00bbe6883de7, type: 3} + - {fileID: 2800000, guid: bd9e8c758250ef449a4b4bfaad7a2133, type: 3} + - {fileID: 2800000, guid: 510a2f57334933e4a8dbabe4c30204e4, type: 3} + - {fileID: 2800000, guid: b4db8180660810945bf8d55ab44352ad, type: 3} + - {fileID: 2800000, guid: fd2fd78b392986e42a12df2177d3b89c, type: 3} + - {fileID: 2800000, guid: 5cdee82a77d13994f83b8fdabed7c301, type: 3} + smaaAreaTex: {fileID: 2800000, guid: d1f1048909d55cd4fa1126ab998f617e, type: 3} + smaaSearchTex: {fileID: 2800000, guid: 51eee22c2a633ef4aada830eed57c3fd, type: 3} + m_TexturesResourcesVersion: 0 + - rid: 3828595718998720545 + type: {class: Renderer2DResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_LightShader: {fileID: 4800000, guid: 3f6c848ca3d7bca4bbe846546ac701a1, type: 3} + m_ProjectedShadowShader: {fileID: 4800000, guid: ce09d4a80b88c5a4eb9768fab4f1ee00, + type: 3} + m_SpriteShadowShader: {fileID: 4800000, guid: 44fc62292b65ab04eabcf310e799ccf6, + type: 3} + m_SpriteUnshadowShader: {fileID: 4800000, guid: de02b375720b5c445afe83cd483bedf3, + type: 3} + m_GeometryShadowShader: {fileID: 4800000, guid: 19349a0f9a7ed4c48a27445bcf92e5e1, + type: 3} + m_GeometryUnshadowShader: {fileID: 4800000, guid: 77774d9009bb81447b048c907d4c6273, + type: 3} + m_FallOffLookup: {fileID: 2800000, guid: 5688ab254e4c0634f8d6c8e0792331ca, + type: 3} + m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} + m_DefaultLitMaterial: {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, + type: 2} + m_DefaultUnlitMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, + type: 2} + m_DefaultMaskMaterial: {fileID: 2100000, guid: 15d0c3709176029428a0da2f8cecf0b5, + type: 2} + - rid: 3828595718998720546 + type: {class: URPDefaultVolumeProfileSettings, ns: UnityEngine.Rendering.Universal, + asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_VolumeProfile: {fileID: 11400000, guid: 207c8d2dae5ad4617b1ede35b0aa78f1, + type: 2} + - rid: 3828595718998720547 + type: {class: UniversalRenderPipelineDebugShaders, ns: UnityEngine.Rendering.Universal, + asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_DebugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, + type: 3} + m_HdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, + type: 3} + m_ProbeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, + type: 3} + - rid: 3828595718998720548 + type: {class: ScreenSpaceAmbientOcclusionDynamicResources, ns: UnityEngine.Rendering.Universal, + asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_BlueNoise256Textures: + - {fileID: 2800000, guid: 36f118343fc974119bee3d09e2111500, type: 3} + - {fileID: 2800000, guid: 4b7b083e6b6734e8bb2838b0b50a0bc8, type: 3} + - {fileID: 2800000, guid: c06cc21c692f94f5fb5206247191eeee, type: 3} + - {fileID: 2800000, guid: cb76dd40fa7654f9587f6a344f125c9a, type: 3} + - {fileID: 2800000, guid: e32226222ff144b24bf3a5a451de54bc, type: 3} + - {fileID: 2800000, guid: 3302065f671a8450b82c9ddf07426f3a, type: 3} + - {fileID: 2800000, guid: 56a77a3e8d64f47b6afe9e3c95cb57d5, type: 3} + m_Version: 0 + - rid: 3828595718998720549 + type: {class: RenderGraphSettings, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_EnableRenderCompatibilityMode: 0 + - rid: 3828595718998720550 + type: {class: UniversalRenderPipelineEditorAssets, ns: UnityEngine.Rendering.Universal, + asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_DefaultSettingsVolumeProfile: {fileID: 11400000, guid: eda47df5b85f4f249abf7abd73db2cb2, + type: 2} + - rid: 3828595718998720551 + type: {class: UniversalRendererResources, ns: UnityEngine.Rendering.Universal, + asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} + m_CameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, + type: 3} + m_StencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, + type: 3} + m_DBufferClear: {fileID: 4800000, guid: f056d8bd2a1c7e44e9729144b4c70395, + type: 3} + - rid: 3828595718998720552 + type: {class: UniversalRenderPipelineRuntimeXRResources, ns: UnityEngine.Rendering.Universal, + asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_xrOcclusionMeshPS: {fileID: 4800000, guid: 4431b1f1f743fbf4eb310a967890cbea, + type: 3} + m_xrMirrorViewPS: {fileID: 4800000, guid: d5a307c014552314b9f560906d708772, + type: 3} + m_xrMotionVector: {fileID: 4800000, guid: f89aac1e4f84468418fe30e611dff395, + type: 3} + - rid: 3828595718998720553 + type: {class: URPShaderStrippingSetting, ns: UnityEngine.Rendering.Universal, + asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_StripUnusedPostProcessingVariants: 0 + m_StripUnusedVariants: 1 + m_StripScreenCoordOverrideVariants: 1 + - rid: 3828595718998720554 + type: {class: UniversalRenderPipelineRuntimeTextures, ns: UnityEngine.Rendering.Universal, + asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 1 + m_BlueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, + type: 3} + m_BayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, + type: 3} + m_DebugFontTex: {fileID: 2800000, guid: 26a413214480ef144b2915d6ff4d0beb, + type: 3} + - rid: 3828595718998720555 + type: {class: UniversalRenderPipelineEditorShaders, ns: UnityEngine.Rendering.Universal, + asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_AutodeskInteractive: {fileID: 4800000, guid: 0e9d5a909a1f7e84882a534d0d11e49f, + type: 3} + m_AutodeskInteractiveTransparent: {fileID: 4800000, guid: 5c81372d981403744adbdda4433c9c11, + type: 3} + m_AutodeskInteractiveMasked: {fileID: 4800000, guid: 80aa867ac363ac043847b06ad71604cd, + type: 3} + m_TerrainDetailLit: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144, + type: 3} + m_TerrainDetailGrassBillboard: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90, + type: 3} + m_TerrainDetailGrass: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1, + type: 3} + m_DefaultSpeedTree7Shader: {fileID: 4800000, guid: 0f4122b9a743b744abe2fb6a0a88868b, + type: 3} + m_DefaultSpeedTree8Shader: {fileID: -6465566751694194690, guid: 9920c1f1781549a46ba081a2a15a16ec, + type: 3} + m_DefaultSpeedTree9Shader: {fileID: -6465566751694194690, guid: cbd3e1cc4ae141c42a30e33b4d666a61, + type: 3} + - rid: 3828595718998720556 + type: {class: GPUResidentDrawerResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.GPUDriven.Runtime} + data: + m_Version: 0 + m_InstanceDataBufferCopyKernels: {fileID: 7200000, guid: f984aeb540ded8b4fbb8a2047ab5b2e2, + type: 3} + m_InstanceDataBufferUploadKernels: {fileID: 7200000, guid: 53864816eb00f2343b60e1a2c5a262ef, + type: 3} + m_TransformUpdaterKernels: {fileID: 7200000, guid: 2a567b9b2733f8d47a700c3c85bed75b, + type: 3} + m_WindDataUpdaterKernels: {fileID: 7200000, guid: fde76746e4fd0ed418c224f6b4084114, + type: 3} + m_OccluderDepthPyramidKernels: {fileID: 7200000, guid: 08b2b5fb307b0d249860612774a987da, + type: 3} + m_InstanceOcclusionCullingKernels: {fileID: 7200000, guid: f6d223acabc2f974795a5a7864b50e6c, + type: 3} + m_OcclusionCullingDebugKernels: {fileID: 7200000, guid: b23e766bcf50ca4438ef186b174557df, + type: 3} + m_DebugOcclusionTestPS: {fileID: 4800000, guid: d3f0849180c2d0944bc71060693df100, + type: 3} + m_DebugOccluderPS: {fileID: 4800000, guid: b3c92426a88625841ab15ca6a7917248, + type: 3} + - rid: 3828595718998720557 + type: {class: RenderGraphGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_version: 0 + m_EnableCompilationCaching: 1 + m_EnableValidityChecks: 1 + - rid: 3828595718998720558 + type: {class: RenderGraphUtilsResources, ns: UnityEngine.Rendering.RenderGraphModule.Util, + asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 0 + m_CoreCopyPS: {fileID: 4800000, guid: 12dc59547ea167a4ab435097dd0f9add, type: 3} + - rid: 3828595718998720559 + type: {class: ProbeVolumeDebugResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 1 + probeVolumeDebugShader: {fileID: 4800000, guid: 3b21275fd12d65f49babb5286f040f2d, + type: 3} + probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 3a80877c579b9144ebdcc6d923bca303, + type: 3} + probeVolumeSamplingDebugShader: {fileID: 4800000, guid: bf54e6528c79a224e96346799064c393, + type: 3} + probeVolumeOffsetDebugShader: {fileID: 4800000, guid: db8bd7436dc2c5f4c92655307d198381, + type: 3} + probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 20be25aac4e22ee49a7db76fb3df6de2, + type: 3} + numbersDisplayTex: {fileID: 2800000, guid: 73fe53b428c5b3440b7e87ee830b608a, + type: 3} + - rid: 3828595718998720560 + type: {class: ProbeVolumeRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 1 + probeVolumeBlendStatesCS: {fileID: 7200000, guid: a3f7b8c99de28a94684cb1daebeccf5d, + type: 3} + probeVolumeUploadDataCS: {fileID: 7200000, guid: 0951de5992461754fa73650732c4954c, + type: 3} + probeVolumeUploadDataL2CS: {fileID: 7200000, guid: 6196f34ed825db14b81fb3eb0ea8d931, + type: 3} + - rid: 3828595718998720561 + type: {class: STP/RuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_setupCS: {fileID: 7200000, guid: 33be2e9a5506b2843bdb2bdff9cad5e1, type: 3} + m_preTaaCS: {fileID: 7200000, guid: a679dba8ec4d9ce45884a270b0e22dda, type: 3} + m_taaCS: {fileID: 7200000, guid: 3923900e2b41b5e47bc25bfdcbcdc9e6, type: 3} + - rid: 3828595718998720562 + type: {class: ShaderStrippingSetting, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 0 + m_ExportShaderVariants: 1 + m_ShaderVariantLogLevel: 0 + m_StripRuntimeDebugShaders: 1 + - rid: 3828595718998720563 + type: {class: ProbeVolumeBakingResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 1 + dilationShader: {fileID: 7200000, guid: 6bb382f7de370af41b775f54182e491d, + type: 3} + subdivideSceneCS: {fileID: 7200000, guid: bb86f1f0af829fd45b2ebddda1245c22, + type: 3} + voxelizeSceneShader: {fileID: 4800000, guid: c8b6a681c7b4e2e4785ffab093907f9e, + type: 3} + traceVirtualOffsetCS: {fileID: -6772857160820960102, guid: ff2cbab5da58bf04d82c5f34037ed123, + type: 3} + traceVirtualOffsetRT: {fileID: -5126288278712620388, guid: ff2cbab5da58bf04d82c5f34037ed123, + type: 3} + skyOcclusionCS: {fileID: -6772857160820960102, guid: 5a2a534753fbdb44e96c3c78b5a6999d, + type: 3} + skyOcclusionRT: {fileID: -5126288278712620388, guid: 5a2a534753fbdb44e96c3c78b5a6999d, + type: 3} + renderingLayerCS: {fileID: -6772857160820960102, guid: 94a070d33e408384bafc1dea4a565df9, + type: 3} + renderingLayerRT: {fileID: -5126288278712620388, guid: 94a070d33e408384bafc1dea4a565df9, + type: 3} + - rid: 3828595718998720564 + type: {class: ProbeVolumeGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 1 + m_ProbeVolumeDisableStreamingAssets: 0 + - rid: 3828595718998720565 + type: {class: IncludeAdditionalRPAssets, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_version: 0 + m_IncludeReferencedInScenes: 0 + m_IncludeAssetsByLabel: 0 + m_LabelToInclude: diff --git a/ParticleEffectForUGUI_URP/Assets/UniversalRenderPipelineGlobalSettings.asset.meta b/ParticleEffectForUGUI_URP/Assets/UniversalRenderPipelineGlobalSettings.asset.meta new file mode 100644 index 0000000..1d0d044 --- /dev/null +++ b/ParticleEffectForUGUI_URP/Assets/UniversalRenderPipelineGlobalSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a3ca42226a3c44798a737ae044d965c1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/ParticleEffectForUGUI_URP/Packages/manifest.json b/ParticleEffectForUGUI_URP/Packages/manifest.json new file mode 100644 index 0000000..1cd1f6a --- /dev/null +++ b/ParticleEffectForUGUI_URP/Packages/manifest.json @@ -0,0 +1,10 @@ +{ + "dependencies": { + "com.coffee.nano-monitor": "https://github.com/mob-sakai/Coffee.Internal.git?path=Packages/NanoMonitor", + "com.coffee.ui-particle": "file:../../Packages/src", + "com.coffee.symbolic-linker": "https://github.com/mob-sakai/Coffee.Internal.git?path=Packages/SymbolicLinker", + "com.unity.ide.rider": "3.0.40", + "com.unity.render-pipelines.universal": "17.3.0", + "com.unity.modules.animation": "1.0.0" + } +} diff --git a/ParticleEffectForUGUI_URP/Packages/packages-lock.json b/ParticleEffectForUGUI_URP/Packages/packages-lock.json new file mode 100644 index 0000000..331d928 --- /dev/null +++ b/ParticleEffectForUGUI_URP/Packages/packages-lock.json @@ -0,0 +1,211 @@ +{ + "dependencies": { + "com.coffee.nano-monitor": { + "version": "https://github.com/mob-sakai/Coffee.Internal.git?path=Packages/NanoMonitor", + "depth": 0, + "source": "git", + "dependencies": { + "com.unity.ugui": "1.0.0" + }, + "hash": "837a42e346860e230168db0803f53d0adf120c42" + }, + "com.coffee.symbolic-linker": { + "version": "https://github.com/mob-sakai/Coffee.Internal.git?path=Packages/SymbolicLinker", + "depth": 0, + "source": "git", + "dependencies": {}, + "hash": "837a42e346860e230168db0803f53d0adf120c42" + }, + "com.coffee.ui-particle": { + "version": "file:../../Packages/src", + "depth": 0, + "source": "local", + "dependencies": { + "com.unity.ugui": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0" + } + }, + "com.unity.burst": { + "version": "1.8.28", + "depth": 2, + "source": "registry", + "dependencies": { + "com.unity.mathematics": "1.2.1", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.collections": { + "version": "2.6.2", + "depth": 2, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.8.23", + "com.unity.mathematics": "1.3.2", + "com.unity.test-framework": "1.4.6", + "com.unity.nuget.mono-cecil": "1.11.5", + "com.unity.test-framework.performance": "3.0.3" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ext.nunit": { + "version": "2.0.5", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.ide.rider": { + "version": "3.0.40", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "1.0.6" + }, + "url": "https://packages.unity.com" + }, + "com.unity.mathematics": { + "version": "1.3.2", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.nuget.mono-cecil": { + "version": "1.11.5", + "depth": 3, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.render-pipelines.core": { + "version": "17.0.4", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.burst": "1.8.20", + "com.unity.mathematics": "1.3.2", + "com.unity.ugui": "2.0.0", + "com.unity.collections": "2.4.3", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.terrain": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.rendering.light-transport": "1.0.1" + } + }, + "com.unity.render-pipelines.universal": { + "version": "17.0.4", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.render-pipelines.core": "17.0.4", + "com.unity.shadergraph": "17.0.4", + "com.unity.render-pipelines.universal-config": "17.0.3" + } + }, + "com.unity.render-pipelines.universal-config": { + "version": "17.0.3", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.render-pipelines.core": "17.0.3" + } + }, + "com.unity.rendering.light-transport": { + "version": "1.0.1", + "depth": 2, + "source": "builtin", + "dependencies": { + "com.unity.collections": "2.2.0", + "com.unity.mathematics": "1.2.4", + "com.unity.modules.terrain": "1.0.0" + } + }, + "com.unity.searcher": { + "version": "4.9.3", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.shadergraph": { + "version": "17.0.4", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.render-pipelines.core": "17.0.4", + "com.unity.searcher": "4.9.3" + } + }, + "com.unity.test-framework": { + "version": "1.6.0", + "depth": 3, + "source": "builtin", + "dependencies": { + "com.unity.ext.nunit": "2.0.3", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.test-framework.performance": { + "version": "3.2.0", + "depth": 3, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.33", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ugui": { + "version": "2.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0" + } + }, + "com.unity.modules.animation": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 2, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 2, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.particlesystem": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics": { + "version": "1.0.0", + "depth": 2, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.terrain": { + "version": "1.0.0", + "depth": 2, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 2, + "source": "builtin", + "dependencies": {} + } + } +} diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/AudioManager.asset b/ParticleEffectForUGUI_URP/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..27287fe --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/AudioManager.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!11 &1 +AudioManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Volume: 1 + Rolloff Scale: 1 + Doppler Factor: 1 + Default Speaker Mode: 2 + m_SampleRate: 0 + m_DSPBufferSize: 1024 + m_VirtualVoiceCount: 512 + m_RealVoiceCount: 32 + m_SpatializerPlugin: + m_AmbisonicDecoderPlugin: + m_DisableAudio: 0 + m_VirtualizeEffects: 1 + m_RequestedDSPBufferSize: 0 diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/BurstAotSettings_StandaloneWindows.json b/ParticleEffectForUGUI_URP/ProjectSettings/BurstAotSettings_StandaloneWindows.json new file mode 100644 index 0000000..2144f6d --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/BurstAotSettings_StandaloneWindows.json @@ -0,0 +1,16 @@ +{ + "MonoBehaviour": { + "Version": 3, + "EnableBurstCompilation": true, + "EnableOptimisations": true, + "EnableSafetyChecks": false, + "EnableDebugInAllBuilds": false, + "UsePlatformSDKLinker": false, + "CpuMinTargetX32": 0, + "CpuMaxTargetX32": 0, + "CpuMinTargetX64": 0, + "CpuMaxTargetX64": 0, + "CpuTargetsX32": 6, + "CpuTargetsX64": 72 + } +} diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/ClusterInputManager.asset b/ParticleEffectForUGUI_URP/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..e7886b2 --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/CommonBurstAotSettings.json b/ParticleEffectForUGUI_URP/ProjectSettings/CommonBurstAotSettings.json new file mode 100644 index 0000000..a6a6297 --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/CommonBurstAotSettings.json @@ -0,0 +1,6 @@ +{ + "MonoBehaviour": { + "Version": 5, + "DisabledWarnings": "" + } +} diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/DynamicsManager.asset b/ParticleEffectForUGUI_URP/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..1596c42 --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/DynamicsManager.asset @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!55 &1 +PhysicsManager: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_Gravity: {x: 0, y: -9.81, z: 0} + m_DefaultMaterial: {fileID: 0} + m_BounceThreshold: 2 + m_SleepThreshold: 0.005 + m_DefaultContactOffset: 0.01 + m_DefaultSolverIterations: 6 + m_DefaultSolverVelocityIterations: 1 + m_QueriesHitBackfaces: 0 + m_QueriesHitTriggers: 1 + m_EnableAdaptiveForce: 0 + m_ClothInterCollisionDistance: 0.1 + m_ClothInterCollisionStiffness: 0.2 + m_ContactsGeneration: 1 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_AutoSimulation: 1 + m_AutoSyncTransforms: 0 + m_ReuseCollisionCallbacks: 0 + m_ClothInterCollisionSettingsToggle: 0 + m_ClothGravity: {x: 0, y: -9.81, z: 0} + m_ContactPairsMode: 0 + m_BroadphaseType: 0 + m_WorldBounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 250, y: 250, z: 250} + m_WorldSubdivisions: 8 + m_FrictionType: 0 + m_EnableEnhancedDeterminism: 0 + m_EnableUnifiedHeightmaps: 1 + m_SolverType: 0 + m_DefaultMaxAngularSpeed: 50 diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/EditorBuildSettings.asset b/ParticleEffectForUGUI_URP/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..6b885dd --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,11 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: + - enabled: 1 + path: Assets/Samples/Demo/UIParticle_Demo.unity + guid: 1fc4d0f41c2bd3745b97b439cca95c22 + m_configObjects: {} diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/EditorSettings.asset b/ParticleEffectForUGUI_URP/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..6d36519 --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/EditorSettings.asset @@ -0,0 +1,52 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 15 + m_SerializationMode: 2 + m_LineEndingsForNewScripts: 2 + m_DefaultBehaviorMode: 0 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} + m_SpritePackerMode: 5 + m_SpritePackerCacheSize: 10 + m_SpritePackerPaddingPower: 1 + m_Bc7TextureCompressor: 0 + m_EtcTextureCompressorBehavior: 1 + m_EtcTextureFastCompressor: 1 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 4 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp + m_ProjectGenerationRootNamespace: + m_EnableTextureStreamingInEditMode: 1 + m_EnableTextureStreamingInPlayMode: 1 + m_EnableEditorAsyncCPUTextureLoading: 0 + m_AsyncShaderCompilation: 1 + m_BlockShaders: 0 + m_UnlockBlockShaders: 0 + m_PrefabModeAllowAutoSave: 1 + m_EnterPlayModeOptionsEnabled: 1 + m_EnterPlayModeOptions: 0 + m_GameObjectNamingDigits: 1 + m_GameObjectNamingScheme: 0 + m_AssetNamingUsesSpace: 1 + m_InspectorUseIMGUIDefaultInspector: 0 + m_UseLegacyProbeSampleCount: 0 + m_SerializeInlineMappingsOnOneLine: 0 + m_DisableCookiesInLightmapper: 1 + m_ShadowmaskStitching: 0 + m_AssetPipelineMode: 1 + m_RefreshImportMode: 0 + m_CacheServerMode: 0 + m_CacheServerEndpoint: + m_CacheServerNamespacePrefix: default + m_CacheServerEnableDownload: 1 + m_CacheServerEnableUpload: 1 + m_CacheServerEnableTls: 0 + m_CacheServerValidationMode: 2 + m_CacheServerDownloadBatchSize: 128 + m_EnableEnlightenBakedGI: 0 + m_ReferencedClipsExactNaming: 0 + m_ForceAssetUnloadAndGCOnSceneLoad: 1 + m_HideBuildProfileClassicPlatforms: 0 diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/GraphicsSettings.asset b/ParticleEffectForUGUI_URP/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 0000000..8ce2f1a --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,70 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 16 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_VideoShadersIncludeMode: 2 + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_PreloadShadersBatchTimeLimit: -1 + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, + type: 0} + m_CustomRenderPipeline: {fileID: 11400000, guid: 59f174074c8744ddeb37077c0bd89a44, + type: 2} + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 0, z: 1} + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_InstancingStripping: 0 + m_BrgStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepShadowMask: 1 + m_LightmapKeepSubtractive: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 + m_AlbedoSwatchInfos: [] + m_RenderPipelineGlobalSettingsMap: + UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: a3ca42226a3c44798a737ae044d965c1, + type: 2} + m_LightsUseLinearIntensity: 1 + m_LightsUseColorTemperature: 1 + m_LogWhenShaderIsCompiled: 0 + m_LightProbeOutsideHullStrategy: 0 + m_CameraRelativeLightCulling: 0 + m_CameraRelativeShadowCulling: 0 diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/InputManager.asset b/ParticleEffectForUGUI_URP/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..b16147e --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/InputManager.asset @@ -0,0 +1,487 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!13 &1 +InputManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Axes: + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: a + altPositiveButton: d + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: s + altPositiveButton: w + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: mouse 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: mouse 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: mouse 2 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: space + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse X + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse Y + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse ScrollWheel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: enter + altNegativeButton: + altPositiveButton: space + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Cancel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Enable Debug Button 1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: joystick button 8 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Enable Debug Button 2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: backspace + altNegativeButton: + altPositiveButton: joystick button 9 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Reset + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Next + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: page down + altNegativeButton: + altPositiveButton: joystick button 5 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Previous + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: page up + altNegativeButton: + altPositiveButton: joystick button 4 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Validate + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Persistent + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: right shift + altNegativeButton: + altPositiveButton: joystick button 2 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Multiplier + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: joystick button 3 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 2 + axis: 6 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 2 + axis: 5 + joyNum: 0 diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/MemorySettings.asset b/ParticleEffectForUGUI_URP/ProjectSettings/MemorySettings.asset new file mode 100644 index 0000000..5b5face --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/MemorySettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!387306366 &1 +MemorySettings: + m_ObjectHideFlags: 0 + m_EditorMemorySettings: + m_MainAllocatorBlockSize: -1 + m_ThreadAllocatorBlockSize: -1 + m_MainGfxBlockSize: -1 + m_ThreadGfxBlockSize: -1 + m_CacheBlockSize: -1 + m_TypetreeBlockSize: -1 + m_ProfilerBlockSize: -1 + m_ProfilerEditorBlockSize: -1 + m_BucketAllocatorGranularity: -1 + m_BucketAllocatorBucketsCount: -1 + m_BucketAllocatorBlockSize: -1 + m_BucketAllocatorBlockCount: -1 + m_ProfilerBucketAllocatorGranularity: -1 + m_ProfilerBucketAllocatorBucketsCount: -1 + m_ProfilerBucketAllocatorBlockSize: -1 + m_ProfilerBucketAllocatorBlockCount: -1 + m_TempAllocatorSizeMain: -1 + m_JobTempAllocatorBlockSize: -1 + m_BackgroundJobTempAllocatorBlockSize: -1 + m_JobTempAllocatorReducedBlockSize: -1 + m_TempAllocatorSizeGIBakingWorker: -1 + m_TempAllocatorSizeNavMeshWorker: -1 + m_TempAllocatorSizeAudioWorker: -1 + m_TempAllocatorSizeCloudWorker: -1 + m_TempAllocatorSizeGfx: -1 + m_TempAllocatorSizeJobWorker: -1 + m_TempAllocatorSizeBackgroundWorker: -1 + m_TempAllocatorSizePreloadManager: -1 + m_PlatformMemorySettings: {} diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/MultiplayerManager.asset b/ParticleEffectForUGUI_URP/ProjectSettings/MultiplayerManager.asset new file mode 100644 index 0000000..8073753 --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/MultiplayerManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!655991488 &1 +MultiplayerManager: + m_ObjectHideFlags: 0 + m_EnableMultiplayerRoles: 0 + m_ActiveMultiplayerRole: 0 diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/NavMeshAreas.asset b/ParticleEffectForUGUI_URP/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..3b0b7c3 --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,91 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshProjectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + areas: + - name: Walkable + cost: 1 + - name: Not Walkable + cost: 1 + - name: Jump + cost: 2 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + m_LastAgentTypeID: -887442657 + m_Settings: + - serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.75 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_SettingNames: + - Humanoid diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/PackageManagerSettings.asset b/ParticleEffectForUGUI_URP/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 0000000..be4a797 --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_EnablePreviewPackages: 0 + m_EnablePackageDependencies: 0 + m_AdvancedSettingsExpanded: 1 + m_ScopedRegistriesSettingsExpanded: 1 + oneTimeWarningShown: 0 + m_Registries: + - m_Id: main + m_Name: + m_Url: https://packages.unity.com + m_Scopes: [] + m_IsDefault: 1 + m_Capabilities: 7 + m_UserSelectedRegistryName: + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_ErrorMessage: + m_Original: + m_Id: + m_Name: + m_Url: + m_Scopes: [] + m_IsDefault: 0 + m_Capabilities: 0 + m_Modified: 0 + m_Name: + m_Url: + m_Scopes: + - + m_SelectedScopeIndex: 0 diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/Physics2DSettings.asset b/ParticleEffectForUGUI_URP/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..6c5cf8a --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/Physics2DSettings.asset @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!19 &1 +Physics2DSettings: + m_ObjectHideFlags: 0 + serializedVersion: 4 + m_Gravity: {x: 0, y: -9.81} + m_DefaultMaterial: {fileID: 0} + m_VelocityIterations: 8 + m_PositionIterations: 3 + m_VelocityThreshold: 1 + m_MaxLinearCorrection: 0.2 + m_MaxAngularCorrection: 8 + m_MaxTranslationSpeed: 100 + m_MaxRotationSpeed: 360 + m_BaumgarteScale: 0.2 + m_BaumgarteTimeOfImpactScale: 0.75 + m_TimeToSleep: 0.5 + m_LinearSleepTolerance: 0.01 + m_AngularSleepTolerance: 2 + m_DefaultContactOffset: 0.01 + m_JobOptions: + serializedVersion: 2 + useMultithreading: 0 + useConsistencySorting: 0 + m_InterpolationPosesPerJob: 100 + m_NewContactsPerJob: 30 + m_CollideContactsPerJob: 100 + m_ClearFlagsPerJob: 200 + m_ClearBodyForcesPerJob: 200 + m_SyncDiscreteFixturesPerJob: 50 + m_SyncContinuousFixturesPerJob: 50 + m_FindNearestContactsPerJob: 100 + m_UpdateTriggerContactsPerJob: 100 + m_IslandSolverCostThreshold: 100 + m_IslandSolverBodyCostScale: 1 + m_IslandSolverContactCostScale: 10 + m_IslandSolverJointCostScale: 10 + m_IslandSolverBodiesPerJob: 50 + m_IslandSolverContactsPerJob: 50 + m_AutoSimulation: 1 + m_QueriesHitTriggers: 1 + m_QueriesStartInColliders: 1 + m_CallbacksOnDisable: 1 + m_ReuseCollisionCallbacks: 0 + m_AutoSyncTransforms: 0 + m_AlwaysShowColliders: 0 + m_ShowColliderSleep: 1 + m_ShowColliderContacts: 0 + m_ShowColliderAABB: 0 + m_ContactArrowScale: 0.2 + m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} + m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} + m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} + m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/PresetManager.asset b/ParticleEffectForUGUI_URP/ProjectSettings/PresetManager.asset new file mode 100644 index 0000000..67a94da --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/PresetManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1386491679 &1 +PresetManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_DefaultPresets: {} diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/ProjectSettings.asset b/ParticleEffectForUGUI_URP/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..1fd7a95 --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,956 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 28 + productGUID: e0435806c0dd0486e84f917d512b67c7 + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: DefaultCompany + productName: UniversalTestProject + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} + defaultScreenWidth: 1024 + defaultScreenHeight: 768 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 1 + unsupportedMSAAFallback: 0 + m_SpriteBatchMaxVertexCount: 65535 + m_SpriteBatchVertexThreshold: 300 + m_MTRendering: 1 + mipStripping: 0 + numberOfMipsStripped: 0 + numberOfMipsStrippedPerMipmapLimitGroup: {} + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + iosUseCustomAppBackgroundBehavior: 0 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 1 + androidUseSwappy: 0 + androidDisplayOptions: 1 + androidBlitType: 0 + androidResizeableActivity: 0 + androidDefaultWindowWidth: 1920 + androidDefaultWindowHeight: 1080 + androidMinimumWindowWidth: 400 + androidMinimumWindowHeight: 300 + androidFullscreenMode: 1 + androidAutoRotationBehavior: 1 + androidPredictiveBackSupport: 1 + androidApplicationEntry: 1 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 0 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + audioSpatialExperience: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + dedicatedServerOptimizations: 0 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + useFlipModelSwapchain: 1 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 1 + meshDeformation: 2 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + fullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOneEnableTypeOptimization: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 1048576 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + switchGpuScratchPoolGranularity: 2097152 + switchAllowGpuScratchShrinking: 0 + switchNVNMaxPublicTextureIDCount: 0 + switchNVNMaxPublicSamplerIDCount: 0 + switchMaxWorkerMultiple: 8 + switchNVNGraphicsFirmwareMemory: 32 + vulkanNumSwapchainBuffers: 3 + vulkanEnableSetSRGBWrite: 0 + vulkanEnablePreTransform: 1 + vulkanEnableLateAcquireNextImage: 0 + vulkanEnableCommandBufferRecycling: 1 + loadStoreDebugModeEnabled: 0 + visionOSBundleVersion: 1.0 + tvOSBundleVersion: 1.0 + bundleVersion: 0.1.0 + preloadedAssets: + - {fileID: 11400000, guid: 7eec1f5e86f9b4e2588fc4488f9d18b7, type: 2} + - {fileID: 11400000, guid: df1eee9ef27c1480bbdb1f0b6af2b1f0, type: 2} + metroInputSource: 0 + wsaTransparentSwapchain: 0 + m_HolographicPauseOnTrackingLoss: 1 + xboxOneDisableKinectGpuReservation: 1 + xboxOneEnable7thCore: 1 + vrSettings: + enable360StereoCapture: 0 + isWsaHolographicRemotingEnabled: 0 + enableFrameTimingStats: 0 + enableOpenGLProfilerGPURecorders: 1 + allowHDRDisplaySupport: 0 + useHDRDisplay: 0 + hdrBitDepth: 0 + m_ColorGamuts: 00000000 + targetPixelDensity: 30 + resolutionScalingMode: 0 + resetResolutionOnWindowResize: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.1 + androidMinAspectRatio: 1 + applicationIdentifier: + Android: com.UnityTechnologies.com.unity.template.urpblank + Standalone: com.Unity-Technologies.com.unity.template.urp-blank + iPhone: com.Unity-Technologies.com.unity.template.urp-blank + buildNumber: + Standalone: 0 + VisionOS: 0 + iPhone: 0 + tvOS: 0 + overrideDefaultApplicationIdentifier: 1 + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 25 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + androidSplitApplicationBinary: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 0 + strictShaderVariantMatching: 0 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSSimulatorArchitecture: 0 + iOSTargetOSVersionString: 15.0 + tvOSSdkVersion: 0 + tvOSSimulatorArchitecture: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 15.0 + VisionOSSdkVersion: 0 + VisionOSTargetOSVersionString: 1.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreenCustomStoryboardPath: + iOSLaunchScreeniPadCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + macOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + metalCompileShaderBinary: 0 + iOSRenderExtraFrameOnPause: 0 + iosCopyPluginsCodeInsteadOfSymlink: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + VisionOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + VisionOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + shaderPrecisionModel: 0 + clonedFromGUID: 3c72c65a16f0acb438eed22b8b16c24a + templatePackageId: com.unity.template.urp-blank@3.0.2 + templateDefaultScene: Assets/Scenes/SampleScene.unity + useCustomMainManifest: 0 + useCustomLauncherManifest: 0 + useCustomMainGradleTemplate: 0 + useCustomLauncherGradleManifest: 0 + useCustomBaseGradleTemplate: 0 + useCustomGradlePropertiesTemplate: 0 + useCustomGradleSettingsTemplate: 0 + useCustomProguardFile: 0 + AndroidTargetArchitectures: 2 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidEnableArmv9SecurityFeatures: 0 + AndroidEnableArm64MTE: 0 + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + androidAppCategory: 3 + useAndroidAppCategory: 1 + androidAppCategoryOther: + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + androidUseCustomKeystore: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + AndroidMinifyRelease: 0 + AndroidMinifyDebug: 0 + AndroidValidateAppBundleSize: 1 + AndroidAppBundleSizeToValidate: 150 + AndroidReportGooglePlayAppDependencies: 1 + androidSymbolsSizeThreshold: 800 + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: + - m_BuildTarget: iPhone + m_Icons: + - m_Textures: [] + m_Width: 180 + m_Height: 180 + m_Kind: 0 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 120 + m_Height: 120 + m_Kind: 0 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 167 + m_Height: 167 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 152 + m_Height: 152 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 76 + m_Height: 76 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 120 + m_Height: 120 + m_Kind: 3 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 80 + m_Height: 80 + m_Kind: 3 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 80 + m_Height: 80 + m_Kind: 3 + m_SubKind: iPad + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 3 + m_SubKind: iPad + - m_Textures: [] + m_Width: 87 + m_Height: 87 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 58 + m_Height: 58 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 29 + m_Height: 29 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 58 + m_Height: 58 + m_Kind: 1 + m_SubKind: iPad + - m_Textures: [] + m_Width: 29 + m_Height: 29 + m_Kind: 1 + m_SubKind: iPad + - m_Textures: [] + m_Width: 60 + m_Height: 60 + m_Kind: 2 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 2 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 2 + m_SubKind: iPad + - m_Textures: [] + m_Width: 20 + m_Height: 20 + m_Kind: 2 + m_SubKind: iPad + - m_Textures: [] + m_Width: 1024 + m_Height: 1024 + m_Kind: 4 + m_SubKind: App Store + - m_BuildTarget: Android + m_Icons: + - m_Textures: [] + m_Width: 432 + m_Height: 432 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 324 + m_Height: 324 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 216 + m_Height: 216 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 162 + m_Height: 162 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 108 + m_Height: 108 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 81 + m_Height: 81 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 0 + m_SubKind: + - m_BuildTarget: tvOS + m_Icons: + - m_Textures: [] + m_Width: 1280 + m_Height: 768 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 800 + m_Height: 480 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 400 + m_Height: 240 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 4640 + m_Height: 1440 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 2320 + m_Height: 720 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 3840 + m_Height: 1440 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 1920 + m_Height: 720 + m_Kind: 1 + m_SubKind: + m_BuildTargetBatching: [] + m_BuildTargetShaderSettings: [] + m_BuildTargetGraphicsJobs: [] + m_BuildTargetGraphicsJobMode: [] + m_BuildTargetGraphicsAPIs: + - m_BuildTarget: iOSSupport + m_APIs: 10000000 + m_Automatic: 1 + - m_BuildTarget: AndroidPlayer + m_APIs: 150000000b000000 + m_Automatic: 0 + m_BuildTargetVRSettings: [] + m_DefaultShaderChunkSizeInMB: 16 + m_DefaultShaderChunkCount: 0 + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + openGLRequireES32: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: + - serializedVersion: 2 + m_BuildTarget: Android + m_EncodingQuality: 1 + m_BuildTargetGroupHDRCubemapEncodingQuality: + - serializedVersion: 2 + m_BuildTarget: Android + m_EncodingQuality: 1 + m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetGroupLoadStoreDebugModeSettings: [] + m_BuildTargetNormalMapEncoding: + - m_BuildTarget: Android + m_Encoding: 1 + m_BuildTargetDefaultTextureCompressionFormat: + - serializedVersion: 3 + m_BuildTarget: Android + m_Formats: 03000000 + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + editorGfxJobOverride: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + bluetoothUsageDescription: + macOSTargetOSVersion: 12.0 + switchNMETAOverride: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchEnableFileSystemTrace: 0 + switchLTOSetting: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchCompilerFlags: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchTitleNames_15: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchPublisherNames_15: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchIcons_15: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchSmallIcons_15: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchRatingsInt_12: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 22 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 0 + switchSupportedNpadCount: 8 + switchEnableTouchScreen: 1 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchDisableHTCSPlayerConnection: 0 + switchUseNewStyleFilepaths: 0 + switchUseLegacyFmodPriorities: 0 + switchUseMicroSleepForYield: 1 + switchEnableRamDiskSupport: 0 + switchMicroSleepForYieldTime: 25 + switchRamDiskSpaceSize: 12 + switchUpgradedPlayerSettingsToNMETA: 0 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4ExtraSceSysFile: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 2 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + playerPrefsMaxSize: 32768 + ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4UseLowGarlicFragmentationMode: 1 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 2 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4CompatibilityPS5: 0 + ps4AllowPS5Detection: 0 + ps4GPU800MHz: 1 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + ps4attribVROutputEnabled: 0 + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + blurSplashScreenBackground: 1 + spritePackerPolicy: + webGLMemorySize: 32 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLShowDiagnostics: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 0 + webGLWasmArithmeticExceptions: 0 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + webGLDecompressionFallback: 0 + webGLInitialMemorySize: 32 + webGLMaximumMemorySize: 2048 + webGLMemoryGrowthMode: 2 + webGLMemoryLinearGrowthStep: 16 + webGLMemoryGeometricGrowthStep: 0.2 + webGLMemoryGeometricGrowthCap: 96 + webGLEnableWebGPU: 0 + webGLPowerPreference: 2 + webGLWebAssemblyTable: 0 + webGLWebAssemblyBigInt: 0 + webGLCloseOnQuit: 0 + webWasm2023: 0 + scriptingDefineSymbols: + Standalone: URP_COMPATIBILITY_MODE + additionalCompilerArguments: {} + platformArchitecture: {} + scriptingBackend: + Android: 1 + il2cppCompilerConfiguration: {} + il2cppCodeGeneration: {} + il2cppStacktraceInformation: {} + managedStrippingLevel: + Android: 1 + EmbeddedLinux: 1 + GameCoreScarlett: 1 + GameCoreXboxOne: 1 + Nintendo Switch: 1 + PS4: 1 + PS5: 1 + QNX: 1 + WebGL: 1 + Windows Store Apps: 1 + XboxOne: 1 + iPhone: 1 + tvOS: 1 + incrementalIl2cppBuild: {} + suppressCommonWarnings: 1 + allowUnsafeCode: 0 + useDeterministicCompilation: 1 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + gcIncremental: 0 + gcWBarrierValidation: 0 + apiCompatibilityLevelPerPlatform: {} + editorAssembliesCompatibilityLevel: 1 + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: UniversalTestProject + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: UniversalTestProject + wsaImages: {} + metroTileShortName: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, + a: 1} + metroSplashScreenUseBackgroundColor: 0 + syncCapabilities: 0 + platformCapabilities: {} + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + vcxProjDefaultLanguage: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnhancedXboxCompatibilityMode: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + XboxOneOverrideIdentityName: + XboxOneOverrideIdentityPublisher: + vrEditorSettings: {} + cloudServicesEnabled: {} + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_SignPackage: 1 + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + hmiPlayerDataPath: + hmiForceSRGBBlit: 1 + embeddedLinuxEnableGamepadInput: 1 + hmiCpuConfiguration: + hmiLogStartupTiming: 0 + qnxGraphicConfPath: + apiCompatibilityLevel: 6 + captureStartupLogs: {} + activeInputHandler: 0 + windowsGamepadBackendHint: 0 + cloudProjectId: + framebufferDepthMemorylessMode: 0 + qualitySettingsNames: [] + projectName: + organizationId: + cloudEnabled: 0 + legacyClampBlendShapeWeights: 0 + hmiLoadingImage: {fileID: 0} + platformRequiresReadableAssets: 0 + virtualTexturingSupportEnabled: 0 + insecureHttpOption: 0 + androidVulkanDenyFilterList: [] + androidVulkanAllowFilterList: [] diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/ProjectVersion.txt b/ParticleEffectForUGUI_URP/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..2a4aacd --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/ProjectVersion.txt @@ -0,0 +1,2 @@ +m_EditorVersion: 6000.0.71f1 +m_EditorVersionWithRevision: 6000.0.71f1 (907bc2d768b5) diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/QualitySettings.asset b/ParticleEffectForUGUI_URP/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..36a52ae --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/QualitySettings.asset @@ -0,0 +1,80 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 0 + m_QualitySettings: + - serializedVersion: 4 + name: Default + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 255 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 1 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 2 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 2048 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 11400000, guid: 59f174074c8744ddeb37077c0bd89a44, + type: 2} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] + m_TextureMipmapLimitGroupNames: [] + m_PerPlatformDefaultQuality: + Android: 0 + CloudRendering: 0 + GameCoreScarlett: 0 + GameCoreXboxOne: 0 + Lumin: 0 + Nintendo Switch: 0 + Nintendo Switch 2: 0 + PS4: 0 + PS5: 0 + Server: 0 + Stadia: 0 + Standalone: 0 + WebGL: 0 + Windows Store Apps: 0 + XboxOne: 0 + iPhone: 0 + tvOS: 0 diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/SceneTemplateSettings.json b/ParticleEffectForUGUI_URP/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 0000000..6ed312a --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,126 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicMaterial", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "defaultInstantiationMode": 0 + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "defaultInstantiationMode": 1 + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/ScriptableBuildPipeline.json b/ParticleEffectForUGUI_URP/ProjectSettings/ScriptableBuildPipeline.json new file mode 100644 index 0000000..dfa4f08 --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/ScriptableBuildPipeline.json @@ -0,0 +1,14 @@ +{ + "useBuildCacheServer": false, + "cacheServerHost": "", + "cacheServerPort": 8126, + "threadedArchiving": true, + "logCacheMiss": false, + "logAssetWarnings": true, + "slimWriteResults": true, + "maximumCacheSize": 20, + "useDetailedBuildLog": false, + "useV2Hasher": true, + "fileIDHashSeed": 0, + "prefabPackedHeaderSize": 2 +} \ No newline at end of file diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/ShaderGraphSettings.asset b/ParticleEffectForUGUI_URP/ProjectSettings/ShaderGraphSettings.asset new file mode 100644 index 0000000..fa811f5 --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/ShaderGraphSettings.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de02f9e1d18f588468e474319d09a723, type: 3} + m_Name: + m_EditorClassIdentifier: + shaderVariantLimit: 2048 + overrideShaderVariantLimit: 0 + customInterpolatorErrorThreshold: 32 + customInterpolatorWarningThreshold: 16 + customHeatmapValues: {fileID: 0} diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/SymbolicLinkerSettings.json b/ParticleEffectForUGUI_URP/ProjectSettings/SymbolicLinkerSettings.json new file mode 100644 index 0000000..cb00140 --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/SymbolicLinkerSettings.json @@ -0,0 +1,20 @@ +{ + "MonoBehaviour": { + "m_Enabled": true, + "m_EditorHideFlags": 0, + "m_Name": "", + "m_EditorClassIdentifier": "", + "m_SymbolicLinks": [ + { + "m_From": "Assets/Samples", + "m_To": "../../Packages/src/Samples~", + "m_Define": "" + }, + { + "m_From": "Assets/Demo", + "m_To": "../../Assets/Demo", + "m_Define": "" + } + ] + } +} \ No newline at end of file diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/TagManager.asset b/ParticleEffectForUGUI_URP/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..1c92a78 --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/TagManager.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!78 &1 +TagManager: + serializedVersion: 2 + tags: [] + layers: + - Default + - TransparentFX + - Ignore Raycast + - + - Water + - UI + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + m_SortingLayers: + - name: Default + uniqueID: 0 + locked: 0 diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/TimeManager.asset b/ParticleEffectForUGUI_URP/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..558a017 --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/TimeManager.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + Fixed Timestep: 0.02 + Maximum Allowed Timestep: 0.33333334 + m_TimeScale: 1 + Maximum Particle Timestep: 0.03 diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/URPProjectSettings.asset b/ParticleEffectForUGUI_URP/ProjectSettings/URPProjectSettings.asset new file mode 100644 index 0000000..6ad5631 --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/URPProjectSettings.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LastMaterialVersion: 10 + m_ProjectSettingFolderPath: URPDefaultResources diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/UnityConnectSettings.asset b/ParticleEffectForUGUI_URP/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..a88bee0 --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 1 + m_Enabled: 0 + m_TestMode: 0 + m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events + m_EventUrl: https://cdp.cloud.unity3d.com/v1/events + m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_DashboardUrl: https://dashboard.unity3d.com + m_TestInitMode: 0 + CrashReportingSettings: + m_EventUrl: https://perf-events.cloud.unity3d.com + m_Enabled: 0 + m_LogBufferSize: 10 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_TestMode: 0 + m_InitializeOnStartup: 1 + m_PackageRequiringCoreStatsPresent: 0 + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_IosGameId: + m_AndroidGameId: + m_GameIds: {} + m_GameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/VFXManager.asset b/ParticleEffectForUGUI_URP/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..3a95c98 --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/VFXManager.asset @@ -0,0 +1,12 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/VersionControlSettings.asset b/ParticleEffectForUGUI_URP/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 0000000..dca2881 --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_CollabEditorSettings: + inProgressEnabled: 1 diff --git a/ParticleEffectForUGUI_URP/ProjectSettings/XRSettings.asset b/ParticleEffectForUGUI_URP/ProjectSettings/XRSettings.asset new file mode 100644 index 0000000..482590c --- /dev/null +++ b/ParticleEffectForUGUI_URP/ProjectSettings/XRSettings.asset @@ -0,0 +1,10 @@ +{ + "m_SettingKeys": [ + "VR Device Disabled", + "VR Device User Alert" + ], + "m_SettingValues": [ + "False", + "False" + ] +} \ No newline at end of file From 09ca328ebd528df67fc83e817c85d0491961d005 Mon Sep 17 00:00:00 2001 From: mob-sakai <12690315+mob-sakai@users.noreply.github.com> Date: Thu, 25 Jun 2026 12:51:51 +0900 Subject: [PATCH 10/13] chore: compile warning --- .../Demo/Cartoon FX & War FX Demo/CFX_Demo_With_UIParticle.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Assets/Demo/Cartoon FX & War FX Demo/CFX_Demo_With_UIParticle.cs b/Assets/Demo/Cartoon FX & War FX Demo/CFX_Demo_With_UIParticle.cs index c5f84ee..14412d3 100644 --- a/Assets/Demo/Cartoon FX & War FX Demo/CFX_Demo_With_UIParticle.cs +++ b/Assets/Demo/Cartoon FX & War FX Demo/CFX_Demo_With_UIParticle.cs @@ -80,8 +80,8 @@ namespace Coffee.UIExtensions.Demo .SelectMany(x => x.GetTypes()) .FirstOrDefault(x => x.Name == typeName); -#if UNITY_2023_2_OR_NEWER - return type == null ? null : FindFirstObjectByType(type); +#if UNITY_2023_1_OR_NEWER + return type == null ? null : FindAnyObjectByType(type, FindObjectsInactive.Include); #else return type == null ? null : FindObjectOfType(type); #endif From 8e0ff10c7344d9f53d2f4f096ddeb7392b67f930 Mon Sep 17 00:00:00 2001 From: mob-sakai <12690315+mob-sakai@users.noreply.github.com> Date: Thu, 25 Jun 2026 12:58:14 +0900 Subject: [PATCH 11/13] feat: project-wide default view size for baking close #360 --- Packages/src/Editor/UIParticleEditor.cs | 23 +++++++++++++------ Packages/src/README.md | 3 ++- Packages/src/Runtime/UIParticle.cs | 11 +++++++-- .../src/Runtime/UIParticleProjectSettings.cs | 19 +++++++++++++++ 4 files changed, 46 insertions(+), 10 deletions(-) diff --git a/Packages/src/Editor/UIParticleEditor.cs b/Packages/src/Editor/UIParticleEditor.cs index 815a8c6..14e0162 100644 --- a/Packages/src/Editor/UIParticleEditor.cs +++ b/Packages/src/Editor/UIParticleEditor.cs @@ -49,6 +49,7 @@ namespace Coffee.UIExtensions private static readonly GUIContent s_ContentRandom = new GUIContent("Random"); private static readonly GUIContent s_ContentScale = new GUIContent("Scale"); private static readonly GUIContent s_ContentPrimary = new GUIContent("Primary"); + private static readonly GUIContent s_ViewSize = new GUIContent("View Size"); private static readonly Regex s_RegexBuiltInGuid = new Regex(@"^0{16}.0{15}$", RegexOptions.Compiled); private static readonly List s_TempMaterials = new List(); @@ -246,16 +247,24 @@ namespace Coffee.UIExtensions // Custom View Size EditorGUILayout.PropertyField(_useCustomView); - EditorGUI.BeginChangeCheck(); - EditorGUI.BeginDisabledGroup(!_useCustomView.boolValue); EditorGUI.indentLevel++; - EditorGUILayout.PropertyField(_customViewSize); - EditorGUI.indentLevel--; - EditorGUI.EndDisabledGroup(); - if (EditorGUI.EndChangeCheck()) + if (_useCustomView.boolValue) { - _customViewSize.floatValue = Mathf.Max(0.1f, _customViewSize.floatValue); + EditorGUI.BeginChangeCheck(); + EditorGUILayout.PropertyField(_customViewSize); + if (EditorGUI.EndChangeCheck()) + { + _customViewSize.floatValue = Mathf.Max(0.1f, _customViewSize.floatValue); + } } + else + { + EditorGUI.BeginDisabledGroup(!_useCustomView.boolValue); + EditorGUILayout.FloatField(s_ViewSize, UIParticleProjectSettings.defaultViewSizeForBaking); + EditorGUI.EndDisabledGroup(); + } + + EditorGUI.indentLevel--; // Time Scale Multiplier EditorGUILayout.PropertyField(_timeScaleMultiplier); diff --git a/Packages/src/README.md b/Packages/src/README.md index 7825e4f..76766be 100644 --- a/Packages/src/README.md +++ b/Packages/src/README.md @@ -282,11 +282,12 @@ uiParticle.Stop(); You can adjust the project-wide settings for `UI Particle`. (`Edit > Project Settings > UI > UI Particle`) -![](https://github.com/mob-sakai/mob-sakai/releases/download/docs/1782270746550.png) +![](https://github.com/mob-sakai/mob-sakai/releases/download/docs/1782360274340.png) #### Settings - **Enable Linear To Gamma**: Automatically correct the color space of the mesh. +- **Default View Size For Baking**: Default view size for baking particle systems. #### Editor diff --git a/Packages/src/Runtime/UIParticle.cs b/Packages/src/Runtime/UIParticle.cs index 27a29a8..01d11f0 100644 --- a/Packages/src/Runtime/UIParticle.cs +++ b/Packages/src/Runtime/UIParticle.cs @@ -263,6 +263,13 @@ namespace Coffee.UIExtensions set => m_CustomViewSize = Mathf.Max(0.1f, value); } + /// + /// View size for Baking. + /// + public float viewSizeForBaking => useCustomView + ? m_CustomViewSize + : UIParticleProjectSettings.defaultViewSizeForBaking; + /// /// Time scale multiplier. /// @@ -718,7 +725,7 @@ namespace Coffee.UIExtensions if (_bakeCamera != null) { - _bakeCamera.orthographicSize = useCustomView ? customViewSize : 10; + _bakeCamera.orthographicSize = viewSizeForBaking; return _bakeCamera; } @@ -745,7 +752,7 @@ namespace Coffee.UIExtensions // Setup baking camera. _bakeCamera.enabled = false; - _bakeCamera.orthographicSize = useCustomView ? customViewSize : 10; + _bakeCamera.orthographicSize = viewSizeForBaking; _bakeCamera.transform.SetPositionAndRotation(new Vector3(0, 0, -1000), Quaternion.identity); _bakeCamera.orthographic = true; _bakeCamera.farClipPlane = 2000f; diff --git a/Packages/src/Runtime/UIParticleProjectSettings.cs b/Packages/src/Runtime/UIParticleProjectSettings.cs index 3b61337..48b84bc 100644 --- a/Packages/src/Runtime/UIParticleProjectSettings.cs +++ b/Packages/src/Runtime/UIParticleProjectSettings.cs @@ -20,6 +20,15 @@ namespace Coffee.UIExtensions set => instance.m_AutoColorCorrection = value; } + [SerializeField] + [Tooltip("Default view size for baking particle systems.")] + private float m_DefaultViewSizeForBaking = 10; + + public static float defaultViewSizeForBaking + { + get => instance.m_DefaultViewSizeForBaking; + set => instance.m_DefaultViewSizeForBaking = value; + } [Header("Editor")] [Tooltip("Hide the automatically generated objects.\n" + @@ -44,6 +53,16 @@ namespace Coffee.UIExtensions { return new PreloadedProjectSettingsProvider("Project/UI/UI Particle"); } + + [CustomEditor(typeof(UIParticleProjectSettings))] + private class UIParticleProjectSettingsEditor : Editor + { + public override void OnInspectorGUI() + { + EditorGUIUtility.labelWidth = 180; + base.OnInspectorGUI(); + } + } #endif } } From ea2fcfd8099a24b92624d34600beb519fb9d2b38 Mon Sep 17 00:00:00 2001 From: mob-sakai <12690315+mob-sakai@users.noreply.github.com> Date: Thu, 25 Jun 2026 16:20:37 +0900 Subject: [PATCH 12/13] feat: add fields located outside the `Properties` block in the shader as `Animatable Properties` close #399 --- .../src/Editor/AnimatablePropertyEditor.cs | 113 ++++++++++--- Packages/src/README.md | 6 + Packages/src/Runtime/AnimatableProperty.cs | 28 ++- .../Demo/Animations/ColorArrayInjection.cs | 32 ++++ .../Animations/ColorArrayInjection.cs.meta | 11 ++ .../Demo/Materials/UIAdditive+Color.shader | 160 ++++++++++++++++++ .../Materials/UIAdditive+Color.shader.meta | 9 + .../UIParticle_Demo_Animatable+Color.mat | 90 ++++++++++ .../UIParticle_Demo_Animatable+Color.mat.meta | 8 + .../Materials/UIParticle_Demo_Animatable.mat | 4 +- .../Prefabs/UIParticle_Demo_Animatable.prefab | 21 +++ 11 files changed, 454 insertions(+), 28 deletions(-) create mode 100644 Packages/src/Samples~/Demo/Animations/ColorArrayInjection.cs create mode 100644 Packages/src/Samples~/Demo/Animations/ColorArrayInjection.cs.meta create mode 100644 Packages/src/Samples~/Demo/Materials/UIAdditive+Color.shader create mode 100644 Packages/src/Samples~/Demo/Materials/UIAdditive+Color.shader.meta create mode 100644 Packages/src/Samples~/Demo/Materials/UIParticle_Demo_Animatable+Color.mat create mode 100644 Packages/src/Samples~/Demo/Materials/UIParticle_Demo_Animatable+Color.mat.meta diff --git a/Packages/src/Editor/AnimatablePropertyEditor.cs b/Packages/src/Editor/AnimatablePropertyEditor.cs index f3e5de1..b71db83 100644 --- a/Packages/src/Editor/AnimatablePropertyEditor.cs +++ b/Packages/src/Editor/AnimatablePropertyEditor.cs @@ -3,15 +3,19 @@ using System.Linq; using System.Text; using UnityEditor; using UnityEngine; +using ShaderPropertyType = Coffee.UIExtensions.AnimatableProperty.ShaderPropertyType; namespace Coffee.UIExtensions { internal static class AnimatablePropertyEditor { private static readonly GUIContent s_ContentNothing = new GUIContent("Nothing"); + private static readonly GUIContent s_ContentCustom = new GUIContent("Add Custom..."); private static readonly List s_ActiveNames = new List(); private static readonly StringBuilder s_Sb = new StringBuilder(); private static readonly HashSet s_Names = new HashSet(); + private static ShaderProperty s_CustomProperty = new ShaderProperty("", ShaderPropertyType.None); + private static bool s_ShowCustomProperty = false; private static string CollectActiveNames(SerializedProperty sp, List result) { @@ -51,8 +55,19 @@ namespace Coffee.UIExtensions ? "-" : CollectActiveNames(sp, s_ActiveNames); - if (!GUI.Button(rect, text, EditorStyles.popup)) return; + if (GUI.Button(rect, text, EditorStyles.popup)) + { + ShowMenu(sp, mats); + } + if (s_ShowCustomProperty) + { + DrawCustomProperty(sp, ref s_CustomProperty); + } + } + + private static void ShowMenu(SerializedProperty sp, List mats) + { var gm = new GenericMenu(); gm.AddItem(s_ContentNothing, s_ActiveNames.Count == 0, x => { @@ -61,13 +76,20 @@ namespace Coffee.UIExtensions current.serializedObject.ApplyModifiedProperties(); }, sp); + gm.AddItem(s_ContentCustom, s_ShowCustomProperty, () => + { + s_ShowCustomProperty = !s_ShowCustomProperty; + s_CustomProperty.Reset(); + }); + gm.AddSeparator(""); + if (!sp.hasMultipleDifferentValues) { for (var i = 0; i < sp.arraySize; i++) { var p = sp.GetArrayElementAtIndex(i); var name = p.FindPropertyRelative("m_Name").stringValue; - var type = (AnimatableProperty.ShaderPropertyType)p.FindPropertyRelative("m_Type").intValue; + var type = (ShaderPropertyType)p.FindPropertyRelative("m_Type").intValue; AddMenu(gm, sp, new ShaderProperty(name, type), false); } } @@ -86,16 +108,16 @@ namespace Coffee.UIExtensions { #if UNITY_6000_5_OR_NEWER var name = mat.shader.GetPropertyName(i); - var type = (AnimatableProperty.ShaderPropertyType)mat.shader.GetPropertyType(i); + var type = (ShaderPropertyType)mat.shader.GetPropertyType(i); #else var name = ShaderUtil.GetPropertyName(mat.shader, i); - var type = (AnimatableProperty.ShaderPropertyType)ShaderUtil.GetPropertyType(mat.shader, i); + var type = (ShaderPropertyType)ShaderUtil.GetPropertyType(mat.shader, i); #endif if (!s_Names.Add(name)) continue; AddMenu(gm, sp, new ShaderProperty(name, type), true); - if (type != AnimatableProperty.ShaderPropertyType.Texture) continue; + if (type != ShaderPropertyType.Texture) continue; AddMenu(gm, sp, new ShaderProperty($"{name}_ST"), true); AddMenu(gm, sp, new ShaderProperty($"{name}_HDR"), true); @@ -111,41 +133,82 @@ namespace Coffee.UIExtensions if (add && s_ActiveNames.Contains(prop.name)) return; var label = new GUIContent($"{prop.name} ({prop.type})"); - menu.AddItem(label, s_ActiveNames.Contains(prop.name), () => - { - var index = s_ActiveNames.IndexOf(prop.name); - if (0 <= index) - { - sp.DeleteArrayElementAtIndex(index); - } - else - { - sp.InsertArrayElementAtIndex(sp.arraySize); - var p = sp.GetArrayElementAtIndex(sp.arraySize - 1); - p.FindPropertyRelative("m_Name").stringValue = prop.name; - p.FindPropertyRelative("m_Type").intValue = (int)prop.type; - } + menu.AddItem(label, s_ActiveNames.Contains(prop.name), () => AddProp(sp, prop)); + } - sp.serializedObject.ApplyModifiedProperties(); - }); + private static void DrawCustomProperty(SerializedProperty sp, ref ShaderProperty prop) + { + var r = EditorGUILayout.GetControlRect(false, EditorGUIUtility.singleLineHeight + 8); + r.xMin += 60; + GUI.Label(r, (Texture)null, EditorStyles.helpBox); + + r = new Rect(r.x + 4, r.y + 4, r.width - 8 - 100 - 16, r.height - 8); + prop.name = EditorGUI.TextField(r, prop.name); + r.x += r.width + 2; + r.width = 100 - 2; + prop.type = (ShaderPropertyType)EditorGUI.EnumPopup(r, prop.type); + r.x += r.width; + r.width = 16; + + EditorGUI.BeginDisabledGroup(!prop.IsValid(s_ActiveNames)); + if (GUI.Button(r, EditorGUIUtility.IconContent("Toolbar Plus"), EditorStyles.label)) + { + GUI.FocusControl(""); + AddProp(sp, prop); + prop.Reset(); + } + + EditorGUI.EndDisabledGroup(); + } + + private static void AddProp(SerializedProperty sp, ShaderProperty prop) + { + var index = s_ActiveNames.IndexOf(prop.name); + if (0 <= index) + { + sp.DeleteArrayElementAtIndex(index); + } + else + { + sp.InsertArrayElementAtIndex(sp.arraySize); + var p = sp.GetArrayElementAtIndex(sp.arraySize - 1); + p.FindPropertyRelative("m_Name").stringValue = prop.name; + p.FindPropertyRelative("m_Type").intValue = (int)prop.type; + } + + sp.serializedObject.ApplyModifiedProperties(); } private struct ShaderProperty { - public readonly string name; - public readonly AnimatableProperty.ShaderPropertyType type; + public string name; + public ShaderPropertyType type; public ShaderProperty(string name) { this.name = name; - type = AnimatableProperty.ShaderPropertyType.Vector; + type = ShaderPropertyType.Vector; } - public ShaderProperty(string name, AnimatableProperty.ShaderPropertyType type) + public ShaderProperty(string name, ShaderPropertyType type) { this.name = name; this.type = type; } + + public void Reset() + { + name = ""; + type = ShaderPropertyType.None; + } + + public bool IsValid(List activeNames) + { + if (string.IsNullOrEmpty(name)) return false; + if (type == ShaderPropertyType.None) return false; + if (activeNames.Contains(name)) return false; + return true; + } } } } diff --git a/Packages/src/README.md b/Packages/src/README.md index 76766be..d5c6271 100644 --- a/Packages/src/README.md +++ b/Packages/src/README.md @@ -164,6 +164,12 @@ _This package requires **Unity 2018.3 or later**._ - **Scale**: Scale the rendering particles. When the `3D` toggle is enabled, 3D scale (x, y, z) is supported. - **Animatable Properties**: If you want to update material properties (e.g., `_MainTex_ST`, `_Color`) in AnimationClip, use this to mark as animatable. + +> [!TIPS] +> (Unity 2021.1 or later) **Custom Animatable Properties** +> From the `Add Custom...` menu in `Animatable Properties`, you can add fields located outside the `Properties` block in the shader as `Animatable Properties`. +> This allows `Matrix`, `Matrix Array`, `Float Array`, and `Vector Array` values modified by the `ParticleSystemRenderer.SetPropertyBlock` method to be automatically reflected in UIParticle. + - **Mesh Sharing**: Particle simulation results are shared within the same group. A large number of the same effects can be displayed with a small load. When the `Random` toggle is enabled, it will be grouped randomly. - **None:** Disable mesh sharing. diff --git a/Packages/src/Runtime/AnimatableProperty.cs b/Packages/src/Runtime/AnimatableProperty.cs index bbcbe65..ede5c5d 100644 --- a/Packages/src/Runtime/AnimatableProperty.cs +++ b/Packages/src/Runtime/AnimatableProperty.cs @@ -8,11 +8,18 @@ namespace Coffee.UIExtensions { public enum ShaderPropertyType { + None = -1, Color, Vector, Float, Range, - Texture + Texture, + Int, + + Matrix = 100, + MatrixArray = 101, + FloatArray = 102, + VectorArray = 103, } [SerializeField] private string m_Name = ""; @@ -32,7 +39,11 @@ namespace Coffee.UIExtensions public void UpdateMaterialProperties(Material material, MaterialPropertyBlock mpb) { +#if UNITY_2021_1_OR_NEWER + if (!mpb.HasProperty(id)) return; +#else if (!material.HasProperty(id)) return; +#endif switch (type) { @@ -49,6 +60,21 @@ namespace Coffee.UIExtensions case ShaderPropertyType.Texture: material.SetTexture(id, mpb.GetTexture(id)); break; + case ShaderPropertyType.Int: + material.SetInt(id, mpb.GetInt(id)); + break; + case ShaderPropertyType.Matrix: + material.SetMatrix(id, mpb.GetMatrix(id)); + break; + case ShaderPropertyType.MatrixArray: + material.SetMatrixArray(id, mpb.GetMatrixArray(id)); + break; + case ShaderPropertyType.FloatArray: + material.SetFloatArray(id, mpb.GetFloatArray(id)); + break; + case ShaderPropertyType.VectorArray: + material.SetVectorArray(id, mpb.GetVectorArray(id)); + break; } } } diff --git a/Packages/src/Samples~/Demo/Animations/ColorArrayInjection.cs b/Packages/src/Samples~/Demo/Animations/ColorArrayInjection.cs new file mode 100644 index 0000000..c628506 --- /dev/null +++ b/Packages/src/Samples~/Demo/Animations/ColorArrayInjection.cs @@ -0,0 +1,32 @@ +using System.Linq; +using UnityEngine; + +[RequireComponent(typeof(ParticleSystemRenderer))] +public class ColorArrayInjection : MonoBehaviour +{ + [SerializeField] private string m_PropertyName = "_Color2"; + + [SerializeField] private Color[] m_Colors = new Color[4] + { + Color.red, + Color.green, + Color.blue, + Color.yellow + }; + + private void OnEnable() + { + if (TryGetComponent(out var psr)) + { + var mpb = new MaterialPropertyBlock(); + psr.GetPropertyBlock(mpb); + mpb.SetVectorArray(m_PropertyName, m_Colors.Select(x => new Vector4(x.r, x.g, x.b, 1.0f)).ToArray()); + psr.SetPropertyBlock(mpb); + } + } + + private void OnValidate() + { + OnEnable(); + } +} diff --git a/Packages/src/Samples~/Demo/Animations/ColorArrayInjection.cs.meta b/Packages/src/Samples~/Demo/Animations/ColorArrayInjection.cs.meta new file mode 100644 index 0000000..16c9c9c --- /dev/null +++ b/Packages/src/Samples~/Demo/Animations/ColorArrayInjection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: da4c2e90ecd3d4dd4a520099c08cf493 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/src/Samples~/Demo/Materials/UIAdditive+Color.shader b/Packages/src/Samples~/Demo/Materials/UIAdditive+Color.shader new file mode 100644 index 0000000..8234412 --- /dev/null +++ b/Packages/src/Samples~/Demo/Materials/UIAdditive+Color.shader @@ -0,0 +1,160 @@ +ο»ΏShader "UI/Additive And Color" +{ + Properties + { + _MainTex ("Sprite Texture", 2D) = "white" {} + _Color ("Tint", Color) = (1,1,1,1) + + _StencilComp ("Stencil Comparison", Float) = 8 + _Stencil ("Stencil ID", Float) = 0 + _StencilOp ("Stencil Operation", Float) = 0 + _StencilWriteMask ("Stencil Write Mask", Float) = 255 + _StencilReadMask ("Stencil Read Mask", Float) = 255 + + _ColorMask ("Color Mask", Float) = 15 + + [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0 + } + + SubShader + { + Tags + { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + "PreviewType"="Plane" + "CanUseSpriteAtlas"="True" + } + + Stencil + { + Ref [_Stencil] + Comp [_StencilComp] + Pass [_StencilOp] + ReadMask [_StencilReadMask] + WriteMask [_StencilWriteMask] + } + + Cull Off + Lighting Off + ZWrite Off + ZTest [unity_GUIZTestMode] + Fog { Mode Off } + Blend One One + ColorMask [_ColorMask] + + Pass + { + Name "Default" + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 2.0 + + #include "UnityCG.cginc" + #include "UnityUI.cginc" + + #pragma multi_compile __ UNITY_UI_CLIP_RECT + #pragma multi_compile __ UNITY_UI_ALPHACLIP + + struct appdata_t + { + float4 vertex : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD0; + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct v2f + { + float4 vertex : SV_POSITION; + fixed4 color : COLOR; + float2 texcoord : TEXCOORD0; + float4 worldPosition : TEXCOORD1; + float4 mask : TEXCOORD2; + UNITY_VERTEX_OUTPUT_STEREO + }; + + fixed4 _Color; + sampler2D _MainTex; + float4 _MainTex_ST; + fixed4 _TextureSampleAdd; + float4 _ClipRect; + float _UIMaskSoftnessX; + float _UIMaskSoftnessY; + int _UIVertexColorAlwaysGammaSpace; + #define LENGTH 4 + float4 _Color2[4]; + + half3 _UIGammaToLinear(half3 value) + { + half3 low = 0.0849710 * value - 0.000163029; + half3 high = value * (value * (value * 0.265885 + 0.736584) - 0.00980184) + 0.00319697; + + // We should be 0.5 away from any actual gamma value stored in an 8 bit channel + const half3 split = (half3)0.0725490; // Equals 18.5 / 255 + return (value < split) ? low : high; + } + + v2f vert(appdata_t v) + { + v2f OUT; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT); + float4 vPosition = UnityObjectToClipPos(v.vertex); + OUT.worldPosition = v.vertex; + OUT.vertex = vPosition; + + float2 pixelSize = vPosition.w; + pixelSize /= float2(1, 1) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy)); + + float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); + float2 maskUV = (v.vertex.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); + OUT.texcoord = TRANSFORM_TEX(v.texcoord.xy, _MainTex); + OUT.mask = float4(v.vertex.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_UIMaskSoftnessX, _UIMaskSoftnessY) + abs(pixelSize.xy))); + + if (_UIVertexColorAlwaysGammaSpace) + { + #ifndef UNITY_COLORSPACE_GAMMA + v.color.rgb = _UIGammaToLinear(v.color.rgb); + #endif + } + + OUT.color = v.color * _Color; + return OUT; + } + + fixed4 frag(v2f IN) : SV_Target + { + //Round up the alpha color coming from the interpolator (to 1.0/256.0 steps) + //The incoming alpha could have numerical instability, which makes it very sensible to + //HDR color transparency blend, when it blends with the world's texture. + const half alphaPrecision = half(0xff); + const half invAlphaPrecision = half(1.0 / alphaPrecision); + IN.color.a = round(IN.color.a * alphaPrecision) * invAlphaPrecision; + + half4 color = IN.color * (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd); + + #ifdef UNITY_UI_CLIP_RECT + half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw); + color.a *= m.x * m.y; + #endif + + #ifdef UNITY_UI_ALPHACLIP + clip(color.a - 0.001); + #endif + + fixed3 fc = _Color2[floor(color.r*LENGTH-0.01)].rgb; + if (0.1 < fc.r || 0.1 < fc.g || 0.1 < fc.b) + { + color.rgb = fc; + } + color.rgb *= color.a; + + return color; + } + ENDCG + } + } +} \ No newline at end of file diff --git a/Packages/src/Samples~/Demo/Materials/UIAdditive+Color.shader.meta b/Packages/src/Samples~/Demo/Materials/UIAdditive+Color.shader.meta new file mode 100644 index 0000000..f2ff119 --- /dev/null +++ b/Packages/src/Samples~/Demo/Materials/UIAdditive+Color.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9cc9ed37ff19d40e684526abbc1d44a6 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/src/Samples~/Demo/Materials/UIParticle_Demo_Animatable+Color.mat b/Packages/src/Samples~/Demo/Materials/UIParticle_Demo_Animatable+Color.mat new file mode 100644 index 0000000..b74852d --- /dev/null +++ b/Packages/src/Samples~/Demo/Materials/UIParticle_Demo_Animatable+Color.mat @@ -0,0 +1,90 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: UIParticle_Demo_Animatable+Color + m_Shader: {fileID: 4800000, guid: 9cc9ed37ff19d40e684526abbc1d44a6, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 10300, guid: 0000000000000000f000000000000000, type: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _ColorMask: 15 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _UVSec: 0 + - _UseUIAlphaClip: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Packages/src/Samples~/Demo/Materials/UIParticle_Demo_Animatable+Color.mat.meta b/Packages/src/Samples~/Demo/Materials/UIParticle_Demo_Animatable+Color.mat.meta new file mode 100644 index 0000000..175a639 --- /dev/null +++ b/Packages/src/Samples~/Demo/Materials/UIParticle_Demo_Animatable+Color.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 81f29a831022a4756b17daa366d67e10 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/src/Samples~/Demo/Materials/UIParticle_Demo_Animatable.mat b/Packages/src/Samples~/Demo/Materials/UIParticle_Demo_Animatable.mat index 78a38fd..5681995 100644 --- a/Packages/src/Samples~/Demo/Materials/UIParticle_Demo_Animatable.mat +++ b/Packages/src/Samples~/Demo/Materials/UIParticle_Demo_Animatable.mat @@ -8,8 +8,8 @@ Material: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: UIParticle_Demo_Animatable - m_Shader: {fileID: 4800000, guid: ecfa8f5732b504ef98fba10aa18d0326, type: 3} - m_ShaderKeywords: + m_Shader: {fileID: 4800000, guid: 9cc9ed37ff19d40e684526abbc1d44a6, type: 3} + m_Parent: {fileID: 0} m_LightmapFlags: 4 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 diff --git a/Packages/src/Samples~/Demo/Prefabs/UIParticle_Demo_Animatable.prefab b/Packages/src/Samples~/Demo/Prefabs/UIParticle_Demo_Animatable.prefab index affd98d..32cb58f 100644 --- a/Packages/src/Samples~/Demo/Prefabs/UIParticle_Demo_Animatable.prefab +++ b/Packages/src/Samples~/Demo/Prefabs/UIParticle_Demo_Animatable.prefab @@ -69,6 +69,8 @@ MonoBehaviour: m_AnimatableProperties: - m_Name: _MainTex_ST m_Type: 1 + - m_Name: _Color2 + m_Type: 103 m_Particles: - {fileID: 198637387440798640} m_MeshSharing: 0 @@ -88,6 +90,7 @@ GameObject: - component: {fileID: 199176884810573912} - component: {fileID: 222047182059782320} - component: {fileID: 95475093951880840} + - component: {fileID: 3543952012814938654} m_Layer: 0 m_Name: UvAnimParticle m_TagString: Untagged @@ -4864,3 +4867,21 @@ Animator: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 m_KeepAnimatorControllerStateOnDisable: 0 +--- !u!114 &3543952012814938654 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1349193913114882} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da4c2e90ecd3d4dd4a520099c08cf493, type: 3} + m_Name: + m_EditorClassIdentifier: + m_PropertyName: _Color2 + m_Colors: + - {r: 1, g: 0, b: 0, a: 1} + - {r: 0, g: 1, b: 0, a: 1} + - {r: 0, g: 0, b: 1, a: 1} + - {r: 1, g: 0.92156863, b: 0.015686275, a: 1} From 42e4aa20e00a64646a2e38d3da445eaa411950ac Mon Sep 17 00:00:00 2001 From: mob-sakai <12690315+mob-sakai@users.noreply.github.com> Date: Thu, 25 Jun 2026 16:45:19 +0900 Subject: [PATCH 13/13] docs: update doc --- Packages/src/LICENSE.md | 2 +- Packages/src/README.md | 22 ++++++++++++++-------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/Packages/src/LICENSE.md b/Packages/src/LICENSE.md index 81b9060..c86501d 100644 --- a/Packages/src/LICENSE.md +++ b/Packages/src/LICENSE.md @@ -1,4 +1,4 @@ -Copyright 2018-2024 mob-sakai +Copyright 2018-2026 mob-sakai Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/Packages/src/README.md b/Packages/src/README.md index d5c6271..c1102f0 100644 --- a/Packages/src/README.md +++ b/Packages/src/README.md @@ -364,33 +364,39 @@ You can adjust the project-wide settings for `UI Particle`. (`Edit > Project Set ### πŸ” FAQ: Why Are My UIParticles Not Displayed Correctly? +See [this issue](https://github.com/mob-sakai/ParticleEffectForUGUI/issues/270). + If `ParticleSystem` alone displays particles correctly but `UIParticle` does not, please check the following points: -- [Shader Limitation](#shader-limitation) - - `UIParticle` does not support all built-in shaders except for `UI/Default`. +- [Shader Limitation](https://github.com/mob-sakai/ParticleEffectForUGUI#shader-limitation) - Most cases can be solved by using `UI/Additive` or `UI/Default`. - Particles are not masked - `UIParticle` is maskable. + - Use maskable/clipable shader (such as `UI/Additive` or `UI/Default`) - Set `Mask` or `RectMask2D` component properly. - - [Use maskable/clipable shader](#how-to-make-a-custom-shader-to-support-maskrectmask2d-component) (such - as `UI/Additive` or `UI/Default`) - Particles are too small - If particles are small enough, they will not appear on the screen. - Increase the `Scale` value. - If you don't want to change the apparent size depending on the resolution, try the `Auto Scaling` option. - Particles are too many - No more than 65535 vertices can be displayed (for mesh combination limitations). - - Please set `Emission` module and `Max Particles` of ParticleSystem properly. + - Please set `Emission` module and `Max Particles` of `ParticleSystem` properly. - Particles are emitted off-screen. - - When `Position Mode = Relative`, particles are emitted from the scaled position of the ParticleSystem, not from - the screen point of the ParticleSystem. - - Place the ParticleSystem in the proper position or try `Position Mode = Absolute`. + - When `Position Mode = Relative`, particles are emitted from the scaled position of the `ParticleSystem`, not from + the screen point of the `ParticleSystem`. + - Place the `ParticleSystem` in the proper position or try `Position Mode = Absolute`. - Attaching `UIParticle` to the same object as `ParticleSystem` - `Transform.localScale` will be overridden by the `Auto Scaling` option. - It is recommended to place `ParticleSystem` under `UIParticle`. - If `Transform.localScale` contains 0, rendering will be skipped. +- If you are using `Shape` module, please check whether the scale includes 0. - Displayed particles are in the correct position but too large/too small - Adjust `ParticleSystem.renderer.Min/MaxParticleSize`. +- If `Trails.RibbonCount` is greater than 1, the following error occurs frequently. + - `Failed setting triangles. Some indices are referencing out of bounds vertices. IndexCount: 660, VertexCount: 222` +- Adding a `UIParticle` to the parent is the recommended setup rather than attaching it directly to the `ParticleSystem`. + - When using `ParticleSystem.emission.rateOverDistance`, it is recommended to move the transform of `UIParticle` rather than the `ParticleSystem`. +- (v4.13.0, v5.0.0-preview.18) Try changing the `Default View Size For Baking` setting under `ProjectSettings > UI > UI Particle` to a value such as 100 or 1000.