diff --git a/Assets/OneShotOneKill.txt b/Assets/OneShotOneKill.txt index faacdf3..43ab34f 100644 --- a/Assets/OneShotOneKill.txt +++ b/Assets/OneShotOneKill.txt @@ -1,19 +1,6 @@ -스킬 15종 -//HpUp 적에게 버틸 수 있는 성벽의 생명력이 증가합니다. -//AttackUp 공격력이 +1 증가합니다. -//PreviousArrow 투사체 타격 횟수가 +1 증가합니다. -//DiagonalArrow 발사 된 투사체 방향으로 사선 방향의 투사체 1개가 추가됩니다. -//ProjectilePierce 투사체가 적을 관통하는 횟수가 증가합니다. -//Reflect 투사체 반사 횟수가 +1 증가합니다. -//Knockback 타격 된 적을 일정 거리 만큼 밀쳐냅니다. -//DoubleShot 같은 방향으로 발사되는 투사체의 수량이 증가합니다. (※연속 발사) -Explosion 피격 된 대상을 처치하면 일정 범위에 피해를 입힙니다. (중첩 시 피해량과 범위가 증가) -//Stun 피해를 입힌 적을 일정 시간(=0.5초) 기절 시킵니다. (※보스 몬스터에게는 적용 안됨) -//Bounce 피격 된 대상이 있을 경우, 일정 범위 내 적에게 투사체 1개가 추가로 발사됩니다. -//ArrowUpDown 투사체에 적이 명중할 경우 상/하 방향으로 투사체가 1개씩 발사됩니다. -//ArrowLeftRight 투사체에 적이 명중할 경우 좌/우 방향으로 투사체가 1개씩 발사됩니다. -//ImpactArrow 투사체가 적의 방어막에 막혀도 +1의 피해를 고정으로 입힙니다. -//AttackSpeedUp 공격 속도가 0.1초 감소합니다. + +액티브 스킬 1종 +서포터 스킬 카드에 별 표시 diff --git a/Assets/SampleScene.unity b/Assets/SampleScene.unity index d07cf63..4c9d410 100644 --- a/Assets/SampleScene.unity +++ b/Assets/SampleScene.unity @@ -17747,7 +17747,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4111377606588400911, guid: 7a72290f58c260649a424bb4dd1d8726, type: 3} propertyPath: m_IsActive - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4111377606602774470, guid: 7a72290f58c260649a424bb4dd1d8726, type: 3} propertyPath: m_AnchorMax.x @@ -242594,6 +242594,53 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1062613226} m_CullTransparentMesh: 1 +--- !u!1 &1062674780 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1062674782} + - component: {fileID: 1062674781} + m_Layer: 0 + m_Name: Aim + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1062674781 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1062674780} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 33c406c4b0a3f094788620547f4662dd, type: 3} + m_Name: + m_EditorClassIdentifier: + arrow: {fileID: 1266197614} + maxLength: 4 + minLength: 0.5 +--- !u!4 &1062674782 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1062674780} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1063580642 GameObject: m_ObjectHideFlags: 0 @@ -248985,6 +249032,10 @@ PrefabInstance: propertyPath: m_Name value: LobbyMain objectReference: {fileID: 0} + - target: {fileID: 3870252441292929781, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 3870252441292929782, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -249065,6 +249116,202 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 3870252441327064298, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252441327064298, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252441327064298, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252441327064298, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252441415760153, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252441415760153, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252441415760153, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252441415760153, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252441415760153, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252441922134966, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252441922134966, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252441922134966, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252441922134966, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252441922134966, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252442227498291, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252442227498291, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252442227498291, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252442227498291, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252442227498291, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252442430380713, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252442430380713, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252442430380713, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252442430380713, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252442447498800, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252442447498800, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252442705969345, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252442836674193, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252442836674193, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252442836674193, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252442836674193, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252442836674193, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252443103098970, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252443103098970, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252443103098970, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252443103098970, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252443197352168, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252443197352168, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252443197352168, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252443197352168, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252443355992691, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252443355992691, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252443355992691, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252443355992691, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3870252443355992691, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4676119018393763309, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4676119018520855926, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4676119018520855926, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4676119018520855926, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4676119018520855926, guid: 114e4b3312c28a44b8b5f060dcb7a01c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -494049,3 +494296,4 @@ SceneRoots: - {fileID: 1293320786} - {fileID: 2318160772376801329} - {fileID: 1266197615} + - {fileID: 1062674782} diff --git a/Assets/Script/InGame/Actor/AimArrowController.cs b/Assets/Script/InGame/Actor/AimArrowController.cs index aae8a62..4bc287f 100644 --- a/Assets/Script/InGame/Actor/AimArrowController.cs +++ b/Assets/Script/InGame/Actor/AimArrowController.cs @@ -109,18 +109,26 @@ public class AimArrowController : MonoBehaviour } } - public float m_AngleSpeed = 1.5f; void UpdateArrow(Vector2 screenPos) { - Debug.Log(screenPos); arrow.enabled = true; - Vector2 baseScreenPos = Camera.main.WorldToScreenPoint(projectileParent.position); - Vector2 dir = screenPos - baseScreenPos; - dir.y = Mathf.Abs(dir.y); - float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg - 90f; - angle *= m_AngleSpeed; + Vector2 touchWorldPos = Camera.main.ScreenToWorldPoint(screenPos); + Vector2 dir = touchWorldPos - (Vector2)arrow.transform.position; + + if (dir.sqrMagnitude < 0.001f) + return; + + // 1. 방향 → 각도 (위 기준) + float angle = Mathf.Atan2(dir.x, dir.y) * Mathf.Rad2Deg; + // ↑ x,y 순서 중요 (up 기준) + + // 2. 각도 제한 angle = Mathf.Clamp(angle, -80f, 80f); - arrow.rectTransform.rotation = Quaternion.Euler(0, 0, angle); + + // 3. 각도 → 방향 + Vector2 clampedDir = Quaternion.Euler(0, 0, -angle) * Vector2.up; + + arrow.transform.up = clampedDir; } } \ No newline at end of file diff --git a/Assets/Script/InGame/Actor/MobActor.cs b/Assets/Script/InGame/Actor/MobActor.cs index 1ee4f22..216c8bb 100644 --- a/Assets/Script/InGame/Actor/MobActor.cs +++ b/Assets/Script/InGame/Actor/MobActor.cs @@ -77,7 +77,10 @@ public class MobActor : MonoBehaviour case eMobState.Attack: if (f_stunTime > 0) return; - Attack(); + if (distToFence <= m_Data.f_AttackRange) + Attack(); + else + m_State = eMobState.Move; break; }