fix: 스킬 쿨타임 dimd 영역이 정상적으로 동작하지 않는 오류 수정
This commit is contained in:
@@ -142,8 +142,8 @@ MonoBehaviour:
|
|||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_text:
|
m_text:
|
||||||
m_isRightToLeft: 0
|
m_isRightToLeft: 0
|
||||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
m_fontAsset: {fileID: 11400000, guid: 5d9cd0b39cc658540aa28f3dcb744199, type: 2}
|
||||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
m_sharedMaterial: {fileID: -3388310998712943579, guid: 5d9cd0b39cc658540aa28f3dcb744199, type: 2}
|
||||||
m_fontSharedMaterials: []
|
m_fontSharedMaterials: []
|
||||||
m_fontMaterial: {fileID: 0}
|
m_fontMaterial: {fileID: 0}
|
||||||
m_fontMaterials: []
|
m_fontMaterials: []
|
||||||
@@ -550,8 +550,8 @@ MonoBehaviour:
|
|||||||
m_MethodName: OnClickSkillButton
|
m_MethodName: OnClickSkillButton
|
||||||
m_Mode: 2
|
m_Mode: 2
|
||||||
m_Arguments:
|
m_Arguments:
|
||||||
m_ObjectArgument: {fileID: 0}
|
m_ObjectArgument: {fileID: 5964648352921021872}
|
||||||
m_ObjectArgumentAssemblyTypeName: TON.ControllerUI_SkillButton, Assembly-CSharp
|
m_ObjectArgumentAssemblyTypeName: TON.SkillButtonItem, Assembly-CSharp
|
||||||
m_IntArgument: 0
|
m_IntArgument: 0
|
||||||
m_FloatArgument: 0
|
m_FloatArgument: 0
|
||||||
m_StringArgument:
|
m_StringArgument:
|
||||||
@@ -573,17 +573,6 @@ MonoBehaviour:
|
|||||||
coolTimeDimd: {fileID: 561526979871276618}
|
coolTimeDimd: {fileID: 561526979871276618}
|
||||||
skillIcon: {fileID: 4450630482936255251}
|
skillIcon: {fileID: 4450630482936255251}
|
||||||
lockImage: {fileID: 9104780789004064627}
|
lockImage: {fileID: 9104780789004064627}
|
||||||
skillBase:
|
|
||||||
<SkillData>k__BackingField:
|
|
||||||
id:
|
|
||||||
name:
|
|
||||||
mpConsumption: 0
|
|
||||||
damage: 0
|
|
||||||
coolDown: 0
|
|
||||||
slotNumber: 0
|
|
||||||
requiredLevel: 0
|
|
||||||
maxHitCount: 0
|
|
||||||
<CurrentCoolDown>k__BackingField: 0
|
|
||||||
--- !u!1 &9104780789004064627
|
--- !u!1 &9104780789004064627
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ GameObject:
|
|||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 0
|
||||||
--- !u!224 &5417560988456393388
|
--- !u!224 &5417560988456393388
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -557,7 +557,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||||
propertyPath: m_AnchorMin.x
|
propertyPath: m_AnchorMin.x
|
||||||
@@ -565,7 +565,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||||
propertyPath: m_AnchorMin.y
|
propertyPath: m_AnchorMin.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||||
propertyPath: m_SizeDelta.x
|
propertyPath: m_SizeDelta.x
|
||||||
@@ -605,7 +605,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||||
propertyPath: m_AnchoredPosition.x
|
propertyPath: m_AnchoredPosition.x
|
||||||
value: 0
|
value: 120
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
@@ -714,7 +714,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||||
propertyPath: m_AnchorMin.x
|
propertyPath: m_AnchorMin.x
|
||||||
@@ -722,7 +722,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||||
propertyPath: m_AnchorMin.y
|
propertyPath: m_AnchorMin.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||||
propertyPath: m_SizeDelta.x
|
propertyPath: m_SizeDelta.x
|
||||||
@@ -762,7 +762,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||||
propertyPath: m_AnchoredPosition.x
|
propertyPath: m_AnchoredPosition.x
|
||||||
value: 0
|
value: 442.5
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
@@ -933,7 +933,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||||
propertyPath: m_AnchorMin.x
|
propertyPath: m_AnchorMin.x
|
||||||
@@ -941,7 +941,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||||
propertyPath: m_AnchorMin.y
|
propertyPath: m_AnchorMin.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||||
propertyPath: m_SizeDelta.x
|
propertyPath: m_SizeDelta.x
|
||||||
@@ -981,7 +981,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||||
propertyPath: m_AnchoredPosition.x
|
propertyPath: m_AnchoredPosition.x
|
||||||
value: 0
|
value: 207.5
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
- target: {fileID: 7442045083355200288, guid: c4604ffc09f28ed4c8f733a3ba91d6e4, type: 3}
|
||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
@@ -1124,7 +1124,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3622686016877026920, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
- target: {fileID: 3622686016877026920, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3622686016877026920, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
- target: {fileID: 3622686016877026920, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
||||||
propertyPath: m_AnchorMin.x
|
propertyPath: m_AnchorMin.x
|
||||||
@@ -1132,7 +1132,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3622686016877026920, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
- target: {fileID: 3622686016877026920, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
||||||
propertyPath: m_AnchorMin.y
|
propertyPath: m_AnchorMin.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3622686016877026920, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
- target: {fileID: 3622686016877026920, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
||||||
propertyPath: m_SizeDelta.x
|
propertyPath: m_SizeDelta.x
|
||||||
@@ -1172,7 +1172,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3622686016877026920, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
- target: {fileID: 3622686016877026920, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
||||||
propertyPath: m_AnchoredPosition.x
|
propertyPath: m_AnchoredPosition.x
|
||||||
value: 0
|
value: 500
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3622686016877026920, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
- target: {fileID: 3622686016877026920, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
@@ -1202,14 +1202,6 @@ PrefabInstance:
|
|||||||
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
|
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: -4577297331876422106}
|
objectReference: {fileID: -4577297331876422106}
|
||||||
- target: {fileID: 8637807277690663409, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
|
||||||
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgument
|
|
||||||
value:
|
|
||||||
objectReference: {fileID: 169483457724555279}
|
|
||||||
- target: {fileID: 8637807277690663409, guid: f023329ca96ab444ca7c60781e310d59, type: 3}
|
|
||||||
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
|
|
||||||
value: TON.SkillButtonItem, Assembly-CSharp
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_RemovedGameObjects: []
|
m_RemovedGameObjects: []
|
||||||
m_AddedGameObjects: []
|
m_AddedGameObjects: []
|
||||||
@@ -1375,7 +1367,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||||
propertyPath: m_AnchorMin.x
|
propertyPath: m_AnchorMin.x
|
||||||
@@ -1383,7 +1375,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||||
propertyPath: m_AnchorMin.y
|
propertyPath: m_AnchorMin.y
|
||||||
value: 0
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||||
propertyPath: m_SizeDelta.x
|
propertyPath: m_SizeDelta.x
|
||||||
@@ -1423,7 +1415,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||||
propertyPath: m_AnchoredPosition.x
|
propertyPath: m_AnchoredPosition.x
|
||||||
value: 0
|
value: 260
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
- target: {fileID: 1465902235892889161, guid: c8f2e3092439b7f409834ac140c97a78, type: 3}
|
||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
|
|||||||
@@ -257,11 +257,13 @@ namespace TON
|
|||||||
callback?.Invoke(true);
|
callback?.Invoke(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SkillAttack(string skillId)
|
public void SkillAttack(SkillBase skillBase)
|
||||||
{
|
{
|
||||||
SkillBase skillBase = SkillDataManager.Singleton.GetSkillInstance(skillId);
|
if (skillBase == null) return;
|
||||||
|
|
||||||
|
string skillId = skillBase.SkillData.id;
|
||||||
|
|
||||||
// 스킬을 사용할 수 있는 스킬포인트가 있는지 판단
|
// 스킬을 사용할 수 있는 스킬포인트가 있는지 판단
|
||||||
// 스킬 포인트가 부족하다면 스킬을 수행하지 못함
|
|
||||||
if (currentSP < skillBase.SkillData.mpConsumption) return;
|
if (currentSP < skillBase.SkillData.mpConsumption) return;
|
||||||
|
|
||||||
// 스킬 매니저에서 스킬을 쏠 수 있는지 여부를 판단
|
// 스킬 매니저에서 스킬을 쏠 수 있는지 여부를 판단
|
||||||
@@ -278,7 +280,7 @@ namespace TON
|
|||||||
// 스킬 매니저에 스킬 발사 요청
|
// 스킬 매니저에 스킬 발사 요청
|
||||||
SkillDataManager.Singleton.ExecuteSkill(skillId, firePoint, lastDirection);
|
SkillDataManager.Singleton.ExecuteSkill(skillId, firePoint, lastDirection);
|
||||||
|
|
||||||
// RecoverSP 가 이미 진행중인 경우 이중으로 코루틴을 실행하지 않도록 함함
|
// RecoverSP 가 이미 진행중인 경우 이중으로 코루틴을 실행하지 않도록 함
|
||||||
if (!isRecovering)
|
if (!isRecovering)
|
||||||
{
|
{
|
||||||
StartCoroutine(RecoverSP());
|
StartCoroutine(RecoverSP());
|
||||||
|
|||||||
@@ -14,20 +14,13 @@ namespace TON
|
|||||||
[SerializeField] private GameObject skillIcon;
|
[SerializeField] private GameObject skillIcon;
|
||||||
[SerializeField] private GameObject lockImage;
|
[SerializeField] private GameObject lockImage;
|
||||||
|
|
||||||
public SkillBase skillBase;
|
public SkillBase skillBase { get; private set; }
|
||||||
|
|
||||||
|
|
||||||
public void Initalize(SkillBase skillData)
|
public void Initalize(SkillBase skillData)
|
||||||
{
|
{
|
||||||
if (skillData != null)
|
// 직접 주어진 skillData 인스턴스 사용
|
||||||
{
|
|
||||||
skillData.OnSkillExecuted -= OnSkillExecuted;
|
|
||||||
// skillData.OnCooldownCompleted -= OnCooldownCompleted;
|
|
||||||
}
|
|
||||||
|
|
||||||
skillBase = skillData;
|
skillBase = skillData;
|
||||||
skillData.OnSkillExecuted += OnSkillExecuted;
|
|
||||||
// skillData.OnCooldownCompleted += OnCooldownCompleted;
|
|
||||||
|
|
||||||
skillIcon.SetActive(true);
|
skillIcon.SetActive(true);
|
||||||
|
|
||||||
@@ -36,12 +29,6 @@ namespace TON
|
|||||||
skillIcon.GetComponent<Image>().sprite = loadedSkillImage;
|
skillIcon.GetComponent<Image>().sprite = loadedSkillImage;
|
||||||
lockImage.SetActive(false);
|
lockImage.SetActive(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnSkillExecuted()
|
|
||||||
{
|
|
||||||
UpdateCooldownUI();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateCooldownUI()
|
private void UpdateCooldownUI()
|
||||||
@@ -50,13 +37,27 @@ namespace TON
|
|||||||
{
|
{
|
||||||
return; // UI가 삭제되었으면 업데이트 중단
|
return; // UI가 삭제되었으면 업데이트 중단
|
||||||
}
|
}
|
||||||
|
if (skillBase == null)
|
||||||
coolTimeText.gameObject.SetActive(skillBase.CurrentCoolDown > 0); // 남은 쿨타임이 있을 때만 표시
|
|
||||||
|
|
||||||
if (coolTimeText.IsActive())
|
|
||||||
{
|
{
|
||||||
coolTimeText.text = $"{skillBase.CurrentCoolDown: 0}s"; // 정수 초단위 표시
|
return;
|
||||||
coolTimeDimd.fillAmount = skillBase.CurrentCoolDown / skillBase.SkillCoolDown; // 1 → 0 으로 감소
|
}
|
||||||
|
|
||||||
|
SkillBase targetSkill = SkillDataManager.Singleton.GetEquippedSkillFromId(skillBase.SkillData.id);
|
||||||
|
|
||||||
|
// 현재 쿨타임 상태 로그
|
||||||
|
// Debug.Log($"Skill: {skillBase.SkillData.id}, CurrentCoolDown: {targetSkill.CurrentCoolDown}, SkillCoolDown: {targetSkill.SkillCoolDown}");
|
||||||
|
|
||||||
|
// 남은 쿨타임이 있을 때만 표시
|
||||||
|
coolTimeText.gameObject.SetActive(targetSkill.CurrentCoolDown > 0);
|
||||||
|
|
||||||
|
if (targetSkill.CurrentCoolDown > 0)
|
||||||
|
{
|
||||||
|
coolTimeText.text = $"{targetSkill.CurrentCoolDown:0.0}s"; // 소수점 한 자리까지 표시
|
||||||
|
coolTimeDimd.fillAmount = targetSkill.CurrentCoolDown / targetSkill.SkillCoolDown; // 1 → 0 으로 감소
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
coolTimeDimd.fillAmount = 0; // 쿨타임이 없으면 딤드 효과 제거
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Threading.Tasks;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Assertions;
|
|
||||||
|
|
||||||
namespace TON
|
namespace TON
|
||||||
{
|
{
|
||||||
@@ -52,7 +50,12 @@ namespace TON
|
|||||||
|
|
||||||
foreach (var skill in equippedSkills)
|
foreach (var skill in equippedSkills)
|
||||||
{
|
{
|
||||||
UpdateSkillCoolDown(skill.SkillData.id);
|
if (skill != null)
|
||||||
|
{
|
||||||
|
UpdateSkillCoolDown(skill.SkillData.id);
|
||||||
|
Debug.Log($"Updating cooldown for skill {skill.SkillData.id}: {skill.CurrentCoolDown}");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -169,39 +172,55 @@ namespace TON
|
|||||||
return equippedSkills;
|
return equippedSkills;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SkillBase GetEquippedSkillFromId(string skillId)
|
||||||
|
{
|
||||||
|
SkillBase targetSkillBase = null;
|
||||||
|
foreach (SkillBase skill in equippedSkills)
|
||||||
|
{
|
||||||
|
if (skill != null && skill.SkillData.id == skillId)
|
||||||
|
{
|
||||||
|
targetSkillBase = skill;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return targetSkillBase;
|
||||||
|
}
|
||||||
|
|
||||||
// 스킬 슬롯에 적용될 스킬 리스트 초기화 및 업데이트에 사용
|
// 스킬 슬롯에 적용될 스킬 리스트 초기화 및 업데이트에 사용
|
||||||
public List<SkillBase> GetActiveSkillInstance()
|
public List<SkillBase> GetActiveSkillInstance()
|
||||||
{
|
{
|
||||||
if (equippedSkills != null)
|
if (equippedSkills == null)
|
||||||
|
{
|
||||||
|
equippedSkills = new List<SkillBase>();
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
equippedSkills.Clear();
|
equippedSkills.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (SkillData skill in skillDatas)
|
for (int slot = 1; slot <= 3; slot++)
|
||||||
{
|
{
|
||||||
if (skill.slotNumber == 1 || skill.slotNumber == 2 || skill.slotNumber == 3)
|
SkillData skill = skillDatas.Find(s => s.slotNumber == slot);
|
||||||
|
if (skill != null && skillInstances.ContainsKey(skill.id))
|
||||||
{
|
{
|
||||||
// Debug.Log("GetActiveSkillInstance() : " + skill.id);
|
// 바로 skillInstances에서 가져옴
|
||||||
equippedSkills.Add(skillInstances.GetValueOrDefault(skill.id));
|
equippedSkills.Add(skillInstances[skill.id]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
equippedSkills.Add(null); // 빈 슬롯을 위해 null 추가
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
equippedSkills.Sort((a, b) => a.SkillData.slotNumber.CompareTo(b.SkillData.slotNumber));
|
|
||||||
return equippedSkills;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 스킬 쿨타임 설정하는 메소드
|
return equippedSkills;
|
||||||
public void SetCoolTime(string skillId)
|
|
||||||
{
|
|
||||||
if (skillInstances.TryGetValue(skillId, out SkillBase skillBase))
|
|
||||||
{
|
|
||||||
skillBase.SetCurrentCoolDown();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 스킬 쿨타임 업데이트 메소드
|
// 스킬 쿨타임 업데이트 메소드
|
||||||
public void UpdateSkillCoolDown(string skillId)
|
public void UpdateSkillCoolDown(string skillId)
|
||||||
{
|
{
|
||||||
if (skillInstances.TryGetValue(skillId, out SkillBase skillBase))
|
SkillBase skillBase = equippedSkills.Find(skill => skill != null && skill.SkillData.id == skillId);
|
||||||
|
if (skillBase != null)
|
||||||
{
|
{
|
||||||
skillBase.UpdateSkill(Time.deltaTime);
|
skillBase.UpdateSkill(Time.deltaTime);
|
||||||
}
|
}
|
||||||
@@ -226,10 +245,13 @@ namespace TON
|
|||||||
// 스킬 생성
|
// 스킬 생성
|
||||||
GameObject effectGameObject = ObjectPoolManager.Instance.GetEffect(skillId);
|
GameObject effectGameObject = ObjectPoolManager.Instance.GetEffect(skillId);
|
||||||
Projectile projectile = effectGameObject.GetComponent<Projectile>();
|
Projectile projectile = effectGameObject.GetComponent<Projectile>();
|
||||||
SkillBase targetSkillBase = GetSkillInstance(skillId);
|
|
||||||
|
// equippedSkills에서 해당 스킬 찾기
|
||||||
|
SkillBase targetSkillBase = GetEquippedSkillFromId(skillId);
|
||||||
|
|
||||||
// 현재 스킬의 쿨타임 시작
|
// 현재 스킬의 쿨타임 시작
|
||||||
targetSkillBase.SetCurrentCoolDown();
|
targetSkillBase.SetCurrentCoolDown();
|
||||||
|
// Debug.Log($"스킬 쿨타임 설정: {skillId}, 쿨타임: {targetSkillBase.CurrentCoolDown}");
|
||||||
|
|
||||||
// 스킬 투사체 초기화
|
// 스킬 투사체 초기화
|
||||||
projectile.Init(targetSkillBase.SkillData.damage, targetSkillBase.SkillData.maxHitCount);
|
projectile.Init(targetSkillBase.SkillData.damage, targetSkillBase.SkillData.maxHitCount);
|
||||||
@@ -245,16 +267,10 @@ namespace TON
|
|||||||
Rigidbody2D skillRb = effectGameObject.GetComponent<Rigidbody2D>();
|
Rigidbody2D skillRb = effectGameObject.GetComponent<Rigidbody2D>();
|
||||||
skillRb.velocity = new Vector2(lastDirection * 5f, 0f);
|
skillRb.velocity = new Vector2(lastDirection * 5f, 0f);
|
||||||
|
|
||||||
|
// 이벤트 발생
|
||||||
targetSkillBase.OnSkillExecuted?.Invoke();
|
targetSkillBase.OnSkillExecuted?.Invoke();
|
||||||
}
|
}
|
||||||
|
|
||||||
public SkillBase GetSkillInstance(string skillId)
|
|
||||||
{
|
|
||||||
// 스킬 베이스가 null일때 방어로직 추가
|
|
||||||
SkillBase result = skillInstances.GetValueOrDefault(skillId);
|
|
||||||
Assert.IsNotNull(result, "SkillDataManager.ExecuteSkill() : targetSkillBase is null");
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,9 +61,11 @@ namespace TON
|
|||||||
SkillButtonItem newSkillButton = Instantiate(skillButtonPrefab, skillButtonGroup);
|
SkillButtonItem newSkillButton = Instantiate(skillButtonPrefab, skillButtonGroup);
|
||||||
newSkillButton.gameObject.SetActive(true);
|
newSkillButton.gameObject.SetActive(true);
|
||||||
|
|
||||||
if (i < activatedSkills.Count) // 해당 인덱스에 활성화된 스킬이 있을 경우
|
if (i < activatedSkills.Count && activatedSkills[i] != null) // 해당 인덱스에 활성화된 스킬이 있을 경우
|
||||||
{
|
{
|
||||||
|
// 직접 equippedSkills의 인스턴스를 전달
|
||||||
newSkillButton.Initalize(activatedSkills[i]);
|
newSkillButton.Initalize(activatedSkills[i]);
|
||||||
|
newSkillButton.GetComponent<Button>().interactable = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -79,7 +81,7 @@ namespace TON
|
|||||||
{
|
{
|
||||||
userItem = PlayerDataManager.Singleton.userItem;
|
userItem = PlayerDataManager.Singleton.userItem;
|
||||||
|
|
||||||
// 게임 진입 시 포션 초기 수량 세팅팅
|
// 게임 진입 시 포션 초기 수량 세팅
|
||||||
hpPotion = userItem.hpPotion >= potionLimit ? potionLimit : userItem.hpPotion;
|
hpPotion = userItem.hpPotion >= potionLimit ? potionLimit : userItem.hpPotion;
|
||||||
mpPotion = userItem.mpPotion >= potionLimit ? potionLimit : userItem.mpPotion;
|
mpPotion = userItem.mpPotion >= potionLimit ? potionLimit : userItem.mpPotion;
|
||||||
|
|
||||||
@@ -141,7 +143,10 @@ namespace TON
|
|||||||
|
|
||||||
public void OnClickSkillButton(SkillButtonItem button)
|
public void OnClickSkillButton(SkillButtonItem button)
|
||||||
{
|
{
|
||||||
linkedCharactor.SkillAttack(button.skillBase.SkillData.id);
|
if (button.skillBase != null)
|
||||||
|
{
|
||||||
|
linkedCharactor.SkillAttack(button.skillBase);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,7 +68,10 @@ namespace TON
|
|||||||
Dictionary<int, SkillBase> skillMap = new Dictionary<int, SkillBase>();
|
Dictionary<int, SkillBase> skillMap = new Dictionary<int, SkillBase>();
|
||||||
foreach (var skill in activatedSkills)
|
foreach (var skill in activatedSkills)
|
||||||
{
|
{
|
||||||
skillMap[skill.SkillData.slotNumber - 1] = skill;
|
if (skill != null)
|
||||||
|
{
|
||||||
|
skillMap[skill.SkillData.slotNumber - 1] = skill;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 3; i++)
|
for (int i = 0; i < 3; i++)
|
||||||
|
|||||||
Reference in New Issue
Block a user