This commit is contained in:
Mausham
2026-05-27 19:39:26 +05:45
parent efb6cdb3e6
commit c1118b3271
10 changed files with 19778 additions and 1729 deletions

View File

@@ -222,8 +222,8 @@ ParticleSystem:
startColor: startColor:
serializedVersion: 2 serializedVersion: 2
minMaxState: 2 minMaxState: 2
minColor: {r: 1, g: 0.960782, b: 0.504717, a: 1} minColor: {r: 0.5766447, g: 1, b: 0.5058824, a: 1}
maxColor: {r: 1, g: 0.8388864, b: 0.0141509175, a: 1} maxColor: {r: 0.17530738, g: 1, b: 0.015686274, a: 1}
maxGradient: maxGradient:
serializedVersion: 2 serializedVersion: 2
key0: {r: 1, g: 1, b: 1, a: 1} key0: {r: 1, g: 1, b: 1, a: 1}
@@ -4888,7 +4888,7 @@ ParticleSystem:
vectorLabel1_3: W vectorLabel1_3: W
--- !u!199 &5285646635033452282 --- !u!199 &5285646635033452282
ParticleSystemRenderer: ParticleSystemRenderer:
serializedVersion: 6 serializedVersion: 7
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
@@ -4907,6 +4907,8 @@ ParticleSystemRenderer:
m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1 m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1 m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1 m_RenderingLayerMask: 1
m_RendererPriority: 0 m_RendererPriority: 0
m_Materials: m_Materials:
@@ -4928,9 +4930,11 @@ ParticleSystemRenderer:
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0} m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0 m_SortingLayerID: 0
m_SortingLayer: 0 m_SortingLayer: 0
m_SortingOrder: 0 m_SortingOrder: 0
m_MaskInteraction: 0
m_RenderMode: 0 m_RenderMode: 0
m_MeshDistribution: 0 m_MeshDistribution: 0
m_SortMode: 0 m_SortMode: 0
@@ -4962,7 +4966,6 @@ ParticleSystemRenderer:
m_MeshWeighting1: 1 m_MeshWeighting1: 1
m_MeshWeighting2: 1 m_MeshWeighting2: 1
m_MeshWeighting3: 1 m_MeshWeighting3: 1
m_MaskInteraction: 0
--- !u!1 &2114415160723529283 --- !u!1 &2114415160723529283
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -5188,8 +5191,8 @@ ParticleSystem:
startColor: startColor:
serializedVersion: 2 serializedVersion: 2
minMaxState: 2 minMaxState: 2
minColor: {r: 1, g: 0.960782, b: 0.504717, a: 1} minColor: {r: 0.59607846, g: 0.9176471, b: 0.15686275, a: 1}
maxColor: {r: 1, g: 0.8388864, b: 0.0141509175, a: 1} maxColor: {r: 0.4431373, g: 0.7843138, b: 0.13333334, a: 1}
maxGradient: maxGradient:
serializedVersion: 2 serializedVersion: 2
key0: {r: 1, g: 1, b: 1, a: 1} key0: {r: 1, g: 1, b: 1, a: 1}
@@ -9724,7 +9727,7 @@ ParticleSystem:
vectorLabel1_3: W vectorLabel1_3: W
--- !u!199 &4180933505945455149 --- !u!199 &4180933505945455149
ParticleSystemRenderer: ParticleSystemRenderer:
serializedVersion: 6 serializedVersion: 7
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
@@ -9743,6 +9746,8 @@ ParticleSystemRenderer:
m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1 m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1 m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1 m_RenderingLayerMask: 1
m_RendererPriority: 0 m_RendererPriority: 0
m_Materials: m_Materials:
@@ -9764,9 +9769,11 @@ ParticleSystemRenderer:
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0} m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0 m_SortingLayerID: 0
m_SortingLayer: 0 m_SortingLayer: 0
m_SortingOrder: 0 m_SortingOrder: 0
m_MaskInteraction: 0
m_RenderMode: 0 m_RenderMode: 0
m_MeshDistribution: 0 m_MeshDistribution: 0
m_SortMode: 0 m_SortMode: 0
@@ -9798,7 +9805,6 @@ ParticleSystemRenderer:
m_MeshWeighting1: 1 m_MeshWeighting1: 1
m_MeshWeighting2: 1 m_MeshWeighting2: 1
m_MeshWeighting3: 1 m_MeshWeighting3: 1
m_MaskInteraction: 0
--- !u!1 &6645571033960280413 --- !u!1 &6645571033960280413
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -10021,8 +10027,8 @@ ParticleSystem:
startColor: startColor:
serializedVersion: 2 serializedVersion: 2
minMaxState: 2 minMaxState: 2
minColor: {r: 1, g: 0.960782, b: 0.504717, a: 1} minColor: {r: 0.5071181, g: 1, b: 0.5058824, a: 1}
maxColor: {r: 1, g: 0.8388864, b: 0.0141509175, a: 1} maxColor: {r: 0.2311385, g: 1, b: 0.015686274, a: 1}
maxGradient: maxGradient:
serializedVersion: 2 serializedVersion: 2
key0: {r: 1, g: 1, b: 1, a: 1} key0: {r: 1, g: 1, b: 1, a: 1}
@@ -14615,7 +14621,7 @@ ParticleSystem:
vectorLabel1_3: W vectorLabel1_3: W
--- !u!199 &3640578483788987625 --- !u!199 &3640578483788987625
ParticleSystemRenderer: ParticleSystemRenderer:
serializedVersion: 6 serializedVersion: 7
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
@@ -14634,6 +14640,8 @@ ParticleSystemRenderer:
m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1 m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1 m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1 m_RenderingLayerMask: 1
m_RendererPriority: 0 m_RendererPriority: 0
m_Materials: m_Materials:
@@ -14655,9 +14663,11 @@ ParticleSystemRenderer:
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0} m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0 m_SortingLayerID: 0
m_SortingLayer: 0 m_SortingLayer: 0
m_SortingOrder: 0 m_SortingOrder: 0
m_MaskInteraction: 0
m_RenderMode: 0 m_RenderMode: 0
m_MeshDistribution: 0 m_MeshDistribution: 0
m_SortMode: 0 m_SortMode: 0
@@ -14689,7 +14699,6 @@ ParticleSystemRenderer:
m_MeshWeighting1: 1 m_MeshWeighting1: 1
m_MeshWeighting2: 1 m_MeshWeighting2: 1
m_MeshWeighting3: 1 m_MeshWeighting3: 1
m_MaskInteraction: 0
--- !u!1 &8019872819181951081 --- !u!1 &8019872819181951081
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -14912,8 +14921,8 @@ ParticleSystem:
startColor: startColor:
serializedVersion: 2 serializedVersion: 2
minMaxState: 2 minMaxState: 2
minColor: {r: 1, g: 0.960782, b: 0.504717, a: 1} minColor: {r: 0.62127614, g: 1, b: 0.5058824, a: 1}
maxColor: {r: 1, g: 0.8388864, b: 0.0141509175, a: 1} maxColor: {r: 0.1546962, g: 1, b: 0.015686274, a: 1}
maxGradient: maxGradient:
serializedVersion: 2 serializedVersion: 2
key0: {r: 1, g: 1, b: 1, a: 1} key0: {r: 1, g: 1, b: 1, a: 1}
@@ -19507,7 +19516,7 @@ ParticleSystem:
vectorLabel1_3: W vectorLabel1_3: W
--- !u!199 &3389323591799672497 --- !u!199 &3389323591799672497
ParticleSystemRenderer: ParticleSystemRenderer:
serializedVersion: 6 serializedVersion: 7
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
@@ -19526,6 +19535,8 @@ ParticleSystemRenderer:
m_RayTracingAccelStructBuildFlagsOverride: 0 m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1 m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1 m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1 m_RenderingLayerMask: 1
m_RendererPriority: 0 m_RendererPriority: 0
m_Materials: m_Materials:
@@ -19548,9 +19559,11 @@ ParticleSystemRenderer:
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0} m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0 m_SortingLayerID: 0
m_SortingLayer: 0 m_SortingLayer: 0
m_SortingOrder: 0 m_SortingOrder: 0
m_MaskInteraction: 0
m_RenderMode: 0 m_RenderMode: 0
m_MeshDistribution: 0 m_MeshDistribution: 0
m_SortMode: 0 m_SortMode: 0
@@ -19582,4 +19595,3 @@ ParticleSystemRenderer:
m_MeshWeighting1: 1 m_MeshWeighting1: 1
m_MeshWeighting2: 1 m_MeshWeighting2: 1
m_MeshWeighting3: 1 m_MeshWeighting3: 1
m_MaskInteraction: 0

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 69d4557372f902f448f5acb3b8e3cbeb
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,126 +0,0 @@
using System;
using System.Threading;
using Cysharp.Threading.Tasks;
using PrimeTween;
using UnityEngine;
using UnityEngine.UI;
namespace Darkmatter.Features.Mainmenu.Buttons
{
public enum ButtonEffectType
{
None,
Scale,
PunchScale,
ShakePosition,
ShakeRotation,
Bounce,
Pulse,
Wobble,
Flip,
Spin
}
[RequireComponent(typeof(Button))]
[DisallowMultipleComponent]
public class ButtonEffect : MonoBehaviour
{
[SerializeField] private ButtonEffectType effect = ButtonEffectType.Scale;
[SerializeField] private RectTransform target;
[Header("Shared")]
[SerializeField, Min(0.01f)] private float duration = 0.3f;
[SerializeField] private Ease ease = Ease.OutBack;
[SerializeField, Min(0f)] private float loopInterval = 0.5f;
[Header("Effect Tuning")]
[SerializeField] private float scaleAmount = 1.15f;
[SerializeField] private float shakeStrength = 10f;
[SerializeField] private float rotationStrength = 15f;
private Vector3 baseScale;
private Vector3 baseEuler;
private Vector3 baseLocalPosition;
private Tween currentTween;
private CancellationTokenSource loopCts;
private void Awake()
{
if (target == null) target = transform as RectTransform;
baseScale = target.localScale;
baseEuler = target.localEulerAngles;
baseLocalPosition = target.localPosition;
}
private void OnEnable()
{
loopCts = CancellationTokenSource.CreateLinkedTokenSource(this.GetCancellationTokenOnDestroy());
PlayLoopAsync(loopCts.Token).Forget();
}
private void OnDisable()
{
loopCts?.Cancel();
loopCts?.Dispose();
loopCts = null;
currentTween.Stop();
}
private async UniTaskVoid PlayLoopAsync(CancellationToken token)
{
while (!token.IsCancellationRequested)
{
Play();
if (currentTween.isAlive)
{
await UniTask.WaitWhile(() => currentTween.isAlive, cancellationToken: token);
}
if (loopInterval > 0f)
{
await UniTask.Delay(TimeSpan.FromSeconds(loopInterval), cancellationToken: token);
}
}
}
public void Play()
{
currentTween.Stop();
target.localScale = baseScale;
target.localEulerAngles = baseEuler;
target.localPosition = baseLocalPosition;
switch (effect)
{
case ButtonEffectType.None:
break;
case ButtonEffectType.Scale:
currentTween = Tween.Scale(target, baseScale * scaleAmount, duration, ease, 2, CycleMode.Yoyo);
break;
case ButtonEffectType.PunchScale:
currentTween = Tween.PunchScale(target, Vector3.one * (scaleAmount - 1f), duration);
break;
case ButtonEffectType.ShakePosition:
currentTween = Tween.ShakeLocalPosition(target, Vector3.one * shakeStrength, duration);
break;
case ButtonEffectType.ShakeRotation:
currentTween = Tween.ShakeLocalRotation(target, new Vector3(0f, 0f, rotationStrength), duration);
break;
case ButtonEffectType.Bounce:
currentTween = Tween.Scale(target, baseScale * scaleAmount, duration, Ease.OutBounce, 2, CycleMode.Yoyo);
break;
case ButtonEffectType.Pulse:
currentTween = Tween.Scale(target, baseScale * scaleAmount, duration * 0.5f, Ease.InOutSine, 4, CycleMode.Yoyo);
break;
case ButtonEffectType.Wobble:
currentTween = Tween.LocalEulerAngles(target, baseEuler, baseEuler + new Vector3(0f, 0f, rotationStrength), duration * 0.25f, Ease.InOutSine, 4, CycleMode.Yoyo);
break;
case ButtonEffectType.Flip:
currentTween = Tween.LocalEulerAngles(target, baseEuler, baseEuler + new Vector3(0f, 360f, 0f), duration, ease);
break;
case ButtonEffectType.Spin:
currentTween = Tween.LocalEulerAngles(target, baseEuler, baseEuler + new Vector3(0f, 0f, 360f), duration, ease);
break;
}
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 0e5e02a6b9f322a4d893b3e45a3a2967

View File

@@ -9,7 +9,10 @@ namespace Darkmatter.Features.Mainmenu
{ {
public class MainmenuView : MonoBehaviour public class MainmenuView : MonoBehaviour
{ {
[Header("UI Elements")]
[SerializeField] private Button playBtn; [SerializeField] private Button playBtn;
[SerializeField] private ParticleSystem playBtnParticle;
[SerializeField] private SkeletonGraphic mascotSkeletonGraphic; [SerializeField] private SkeletonGraphic mascotSkeletonGraphic;
[Header("Mascot Animations")] [Header("Mascot Animations")]
@@ -58,6 +61,14 @@ namespace Darkmatter.Features.Mainmenu
private void OnPlayBtnClicked() private void OnPlayBtnClicked()
{ {
playBtn.interactable = false;
PlayBtnSequenceAsync(this.GetCancellationTokenOnDestroy()).Forget();
}
private async UniTaskVoid PlayBtnSequenceAsync(CancellationToken token)
{
playBtnParticle.Play();
await UniTask.WaitUntil(() => !playBtnParticle.IsAlive(true), cancellationToken: token);
OnPlayBtnClickedEvent?.Invoke(); OnPlayBtnClickedEvent?.Invoke();
} }
} }

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 6cc101d67503b4fc09ebcac4fecbcea9

File diff suppressed because one or more lines are too long

View File

@@ -8,7 +8,7 @@ ScriptedImporter:
assetBundleName: assetBundleName:
assetBundleVariant: assetBundleVariant:
script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3} script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3}
generateWrapperCode: 1 generateWrapperCode: 0
wrapperCodePath: Assets/Darkmatter/Code/Services/Inputs/Generated/GameInputs.cs wrapperCodePath: Assets/Darkmatter/Code/Services/Inputs/Generated/GameInputs.cs
wrapperClassName: wrapperClassName:
wrapperCodeNamespace: wrapperCodeNamespace:

File diff suppressed because it is too large Load Diff