가챠 연출

This commit is contained in:
Ino 2025-09-20 13:36:23 +09:00
parent 1133c52be7
commit 23830fd660
3 changed files with 173 additions and 136 deletions

View File

@ -29,7 +29,7 @@ AnimationClip:
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 1.25
time: 1.9166666
value: {x: 0, y: 0, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
@ -38,7 +38,7 @@ AnimationClip:
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 1.5
time: 2.1666667
value: {x: 1, y: 1, z: 1}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
@ -73,27 +73,9 @@ AnimationClip:
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.5833333
value: 500
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.6666667
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.75
value: 300
value: 500
inSlope: 0
outSlope: 0
tangentMode: 136
@ -110,8 +92,8 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.9166667
value: 100
time: 1
value: 300
inSlope: 0
outSlope: 0
tangentMode: 136
@ -119,7 +101,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1
time: 1.1666666
value: 0
inSlope: 0
outSlope: 0
@ -128,7 +110,25 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.0833334
time: 1.3333334
value: 100
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.5
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.6666666
value: 50
inSlope: 0
outSlope: 0
@ -158,7 +158,7 @@ AnimationClip:
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1.1666666
time: 1.8333334
value: 1
inSlope: Infinity
outSlope: Infinity
@ -188,7 +188,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.25
time: 1.9166666
value: 0
inSlope: 0
outSlope: 0
@ -197,7 +197,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.5
time: 2.1666667
value: 250
inSlope: 0
outSlope: 0
@ -206,7 +206,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 2
time: 2.6666667
value: 200
inSlope: 0
outSlope: 0
@ -215,7 +215,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 2.5
time: 3.1666667
value: 250
inSlope: 0
outSlope: 0
@ -224,7 +224,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 3
time: 3.6666667
value: 200
inSlope: 0
outSlope: 0
@ -233,7 +233,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 3.5
time: 4.1666665
value: 250
inSlope: 0
outSlope: 0
@ -242,7 +242,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 4
time: 4.6666665
value: 200
inSlope: 0
outSlope: 0
@ -250,15 +250,6 @@ AnimationClip:
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 4.5
value: 250
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
@ -281,7 +272,7 @@ AnimationClip:
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1.1666666
time: 1.8333334
value: 0
inSlope: Infinity
outSlope: Infinity
@ -297,6 +288,27 @@ AnimationClip:
classID: 114
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_IsActive
path: i_chest
classID: 1
script: {fileID: 0}
flags: 0
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
@ -311,7 +323,7 @@ AnimationClip:
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 4.5
m_StopTime: 4.6666665
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
@ -349,27 +361,9 @@ AnimationClip:
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.5833333
value: 500
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.6666667
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.75
value: 300
value: 500
inSlope: 0
outSlope: 0
tangentMode: 136
@ -386,8 +380,8 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.9166667
value: 100
time: 1
value: 300
inSlope: 0
outSlope: 0
tangentMode: 136
@ -395,7 +389,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1
time: 1.1666666
value: 0
inSlope: 0
outSlope: 0
@ -404,7 +398,25 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.0833334
time: 1.3333334
value: 100
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.5
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.6666666
value: 50
inSlope: 0
outSlope: 0
@ -434,7 +446,7 @@ AnimationClip:
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1.1666666
time: 1.8333334
value: 1
inSlope: Infinity
outSlope: Infinity
@ -464,7 +476,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.25
time: 1.9166666
value: 0
inSlope: 0
outSlope: 0
@ -473,7 +485,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.5
time: 2.1666667
value: 1
inSlope: 0
outSlope: 0
@ -503,7 +515,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.25
time: 1.9166666
value: 0
inSlope: 0
outSlope: 0
@ -512,7 +524,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.5
time: 2.1666667
value: 1
inSlope: 0
outSlope: 0
@ -542,7 +554,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.25
time: 1.9166666
value: 0
inSlope: 0
outSlope: 0
@ -551,7 +563,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.5
time: 2.1666667
value: 1
inSlope: 0
outSlope: 0
@ -581,7 +593,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.25
time: 1.9166666
value: 0
inSlope: 0
outSlope: 0
@ -590,7 +602,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.5
time: 2.1666667
value: 250
inSlope: 0
outSlope: 0
@ -599,7 +611,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 2
time: 2.6666667
value: 200
inSlope: 0
outSlope: 0
@ -608,7 +620,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 2.5
time: 3.1666667
value: 250
inSlope: 0
outSlope: 0
@ -617,7 +629,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 3
time: 3.6666667
value: 200
inSlope: 0
outSlope: 0
@ -626,7 +638,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 3.5
time: 4.1666665
value: 250
inSlope: 0
outSlope: 0
@ -635,7 +647,7 @@ AnimationClip:
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 4
time: 4.6666665
value: 200
inSlope: 0
outSlope: 0
@ -643,15 +655,6 @@ AnimationClip:
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 4.5
value: 250
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
@ -674,7 +677,7 @@ AnimationClip:
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1.1666666
time: 1.8333334
value: 0
inSlope: Infinity
outSlope: Infinity
@ -690,6 +693,27 @@ AnimationClip:
classID: 114
script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_IsActive
path: i_chest
classID: 1
script: {fileID: 0}
flags: 0
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0

View File

@ -11250,7 +11250,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: 0, y: -25.000015}
m_AnchoredPosition: {x: 0, y: -25}
m_SizeDelta: {x: 0, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!61 &420248622
@ -11297,7 +11297,7 @@ BoxCollider2D:
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
m_Size: {x: 640, y: 50}
m_Size: {x: 1080, y: 50}
m_EdgeRadius: 0
--- !u!114 &420248623
MonoBehaviour:
@ -15244,15 +15244,15 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 8912696977846966682, guid: 9a1f774d1ec1bcf4792fe2e48bd16d1c, type: 3}
propertyPath: m_LocalScale.x
value: 50
value: 75
objectReference: {fileID: 0}
- target: {fileID: 8912696977846966682, guid: 9a1f774d1ec1bcf4792fe2e48bd16d1c, type: 3}
propertyPath: m_LocalScale.y
value: 50
value: 75
objectReference: {fileID: 0}
- target: {fileID: 8912696977846966682, guid: 9a1f774d1ec1bcf4792fe2e48bd16d1c, type: 3}
propertyPath: m_LocalScale.z
value: 50
value: 75
objectReference: {fileID: 0}
- target: {fileID: 8912696977846966682, guid: 9a1f774d1ec1bcf4792fe2e48bd16d1c, type: 3}
propertyPath: m_LocalPosition.x
@ -15264,7 +15264,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 8912696977846966682, guid: 9a1f774d1ec1bcf4792fe2e48bd16d1c, type: 3}
propertyPath: m_LocalPosition.z
value: 0
value: -500
objectReference: {fileID: 0}
- target: {fileID: 8912696977846966682, guid: 9a1f774d1ec1bcf4792fe2e48bd16d1c, type: 3}
propertyPath: m_LocalRotation.w
@ -40191,7 +40191,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -55.77272}
m_AnchoredPosition: {x: 0, y: -55.772705}
m_SizeDelta: {x: 0, y: -111.5455}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &1630921640
@ -50088,6 +50088,8 @@ MonoBehaviour:
- {fileID: 1745868383}
go_CanEnterLuckyGame: {fileID: 833106249}
go_autocharge: {fileID: 1017439549}
m_GachaAnim: {fileID: 1861711113}
i_GachaReward: {fileID: 1604177966}
--- !u!1 &2017171800
GameObject:
m_ObjectHideFlags: 0

View File

@ -16,6 +16,8 @@ public class GachaUI : uScrollViewMgr
public TextMeshProUGUI[] texts; // 0 럭키 %, 1 광고 충전량, 2 가챠 필요량, 3 충전 시간
public TextMeshProUGUI[] texts_luckypoint; // 획득한 럭키 포인트들
public GameObject go_CanEnterLuckyGame, go_autocharge;
public Animation m_GachaAnim;
public Image i_GachaReward;
DateTime GachaAutoRefillTime;
List<(eMoney, int)> list_log = new List<(eMoney, int)>();
@ -50,6 +52,7 @@ public class GachaUI : uScrollViewMgr
DSUtil.InActivateGameObjects(gos_grade);
for (int i = 0; i < texts_luckypoint.Length; i++)
texts_luckypoint[i].alpha = 0f;
m_GachaAnim.Play("Gacha_Init");
Set_UI(false);
}
@ -162,45 +165,53 @@ public class GachaUI : uScrollViewMgr
public void OnClick_Gacha()
{
if (SaveMgr.Ins.Check_Money(eMoney.Gacha, table_GlobalValue.Ins.Get_Int("GachaAmount")))
{
SoundInfo.Ins.Play_OneShot((eSound)Random.Range(12, 14));
SaveMgr.Ins.Add_Money(eMoney.Gacha, -table_GlobalValue.Ins.Get_Int("GachaAmount"));
var gradedata = table_gacharateconfig.Ins.Get_RadomData();
DSUtil.InActivateGameObjects(gos_grade, gradedata.n_GachaGrade - 1);
var reward = table_gachareward.Ins.Get_Reward(gradedata.n_GachaGrade);
switch (reward.Item1)
{
case eMoney.AlbumOpen:
SoundInfo.Ins.Play_OneShot(eSound.s006_MiniGameGetHeart);
break;
case eMoney.Chat:
SoundInfo.Ins.Play_OneShot(eSound.s007_MiniGameGetChatCoint);
break;
case eMoney.Gacha:
SoundInfo.Ins.Play_OneShot(eSound.s008_MiniGameGetGachaCoin);
break;
}
SaveMgr.Ins.Add_Money(reward.Item1, reward.Item2);
SaveMgr.Ins.Add_Money(eMoney.Lucky, reward.Item3);
SaveMgr.Ins.Save();
list_log.Add((reward.Item1, reward.Item2));
if (reward.Item3 > 0)
for (int i = 0; i < texts_luckypoint.Length; i++)
{
if (texts_luckypoint[i].alpha <= 0f)
{
texts_luckypoint[i].text = reward.Item3.ToString();
texts_luckypoint[i].GetComponent<Animation>().Play();
break;
}
}
//list_log.Add((eMoney.Lucky, reward.Item3));
Set_ScrollView(list_log);
Set_Vertical_ScrollEnd(0);
Set_UI(true);
if (!m_GachaAnim.isPlaying && SaveMgr.Ins.Check_Money(eMoney.Gacha, table_GlobalValue.Ins.Get_Int("GachaAmount")))
StartCoroutine(Co_Gacha());
}
GachaAutoRefillTime = InternetTime.Ins.Time.AddSeconds(table_GlobalValue.Ins.Get_Float("GachaAutoRefill_DelayTime"));
IEnumerator Co_Gacha()
{
m_GachaAnim.Play("Gacha");
SoundInfo.Ins.Play_OneShot((eSound)Random.Range(12, 14));
yield return new WaitForSeconds(1.75f);
SaveMgr.Ins.Add_Money(eMoney.Gacha, -table_GlobalValue.Ins.Get_Int("GachaAmount"));
var gradedata = table_gacharateconfig.Ins.Get_RadomData();
DSUtil.InActivateGameObjects(gos_grade, gradedata.n_GachaGrade - 1);
var reward = table_gachareward.Ins.Get_Reward(gradedata.n_GachaGrade);
i_GachaReward.sprite = UIAtlasMgr.Ins.Get_Sprite(reward.Item1);
switch (reward.Item1)
{
case eMoney.AlbumOpen:
SoundInfo.Ins.Play_OneShot(eSound.s006_MiniGameGetHeart);
break;
case eMoney.Chat:
SoundInfo.Ins.Play_OneShot(eSound.s007_MiniGameGetChatCoint);
break;
case eMoney.Gacha:
SoundInfo.Ins.Play_OneShot(eSound.s008_MiniGameGetGachaCoin);
break;
}
SaveMgr.Ins.Add_Money(reward.Item1, reward.Item2);
SaveMgr.Ins.Add_Money(eMoney.Lucky, reward.Item3);
SaveMgr.Ins.Save();
list_log.Add((reward.Item1, reward.Item2));
if (reward.Item3 > 0)
for (int i = 0; i < texts_luckypoint.Length; i++)
{
if (texts_luckypoint[i].alpha <= 0f)
{
texts_luckypoint[i].text = reward.Item3.ToString();
texts_luckypoint[i].GetComponent<Animation>().Play();
break;
}
}
//list_log.Add((eMoney.Lucky, reward.Item3));
Set_ScrollView(list_log);
Set_Vertical_ScrollEnd(0);
Set_UI(true);
GachaAutoRefillTime = InternetTime.Ins.Time.AddSeconds(table_GlobalValue.Ins.Get_Float("GachaAutoRefill_DelayTime"));
}
}