diff --git a/Assets/_Game/Data/Skills/Data_Skill_Player_구르기.asset b/Assets/_Game/Data/Skills/Data_Skill_Player_구르기.asset index 315a0784..bd268336 100644 --- a/Assets/_Game/Data/Skills/Data_Skill_Player_구르기.asset +++ b/Assets/_Game/Data/Skills/Data_Skill_Player_구르기.asset @@ -14,7 +14,7 @@ MonoBehaviour: m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData skillName: "\uAD6C\uB974\uAE30" description: - icon: {fileID: 21300000, guid: 2b3889a2bb9beb444adf6734821e1c02, type: 3} + icon: {fileID: 21300000, guid: eafcc94eae3865944b93e64c4e281aa0, type: 3} skillClip: {fileID: -14460799136228694, guid: d6d51384d6dd17a419c1d8e2a1c0c875, type: 3} endClip: {fileID: 0} useRootMotion: 1 diff --git a/Assets/_Game/Data/Skills/Data_Skill_Player_베기.asset b/Assets/_Game/Data/Skills/Data_Skill_Player_베기.asset index 5649e451..7e2d4654 100644 --- a/Assets/_Game/Data/Skills/Data_Skill_Player_베기.asset +++ b/Assets/_Game/Data/Skills/Data_Skill_Player_베기.asset @@ -23,5 +23,3 @@ MonoBehaviour: manaCost: 5 effects: - {fileID: 11400000, guid: e23fca57309ab2b4faa5c380118cd07e, type: 2} - - {fileID: 11400000, guid: 75bac55a016a0da46899806f58b76ce3, type: 2} - - {fileID: 11400000, guid: 0e496b26a1dbf40488ce54cb4fe9c27b, type: 2} diff --git a/Assets/_Game/Data/Weapons/Data_Weapon_검.asset b/Assets/_Game/Data/Weapons/Data_Weapon_검.asset index ca6b16ea..5accc40c 100644 --- a/Assets/_Game/Data/Weapons/Data_Weapon_검.asset +++ b/Assets/_Game/Data/Weapons/Data_Weapon_검.asset @@ -16,7 +16,7 @@ MonoBehaviour: description: icon: {fileID: 21300000, guid: 70e07ab1b9f326b4bae30fe839d609ea, type: 3} weaponSlot: 0 - weaponPrefab: {fileID: 1631607032641582, guid: 92cfe4029ea2b754caa0b3f00d52d41a, type: 3} + weaponPrefab: {fileID: 1631607032641582, guid: 888f3d986f4ea1a4491c1ffca7e660c9, type: 3} positionOffset: {x: 0, y: 0, z: 0} rotationOffset: {x: 0, y: 0, z: 0} scale: {x: 1, y: 1, z: 1} diff --git a/Assets/_Game/Models/Model_Weapon_검.fbx b/Assets/_Game/Models/Model_Weapon_검.fbx deleted file mode 100644 index bf3bdc13..00000000 Binary files a/Assets/_Game/Models/Model_Weapon_검.fbx and /dev/null differ diff --git a/Assets/_Game/Models/Model_Weapon_검.fbx.meta b/Assets/_Game/Models/Model_Weapon_검.fbx.meta deleted file mode 100644 index 59bc8c28..00000000 --- a/Assets/_Game/Models/Model_Weapon_검.fbx.meta +++ /dev/null @@ -1,83 +0,0 @@ -fileFormatVersion: 2 -guid: c6e2f484ffcec214da9c765711b562f4 -timeCreated: 1554785616 -licenseType: Store -ModelImporter: - serializedVersion: 19 - fileIDToRecycleName: - 100000: //RootNode - 400000: //RootNode - 2300000: //RootNode - 3300000: //RootNode - 4300000: SM_Wep_Sword_01 - 9500000: //RootNode - materials: - importMaterials: 0 - materialName: 0 - materialSearch: 1 - animations: - legacyGenerateAnimations: 4 - bakeSimulation: 0 - resampleCurves: 1 - optimizeGameObjects: 0 - motionNodeName: - rigImportErrors: - rigImportWarnings: - animationImportErrors: - animationImportWarnings: - animationRetargetingWarnings: - animationDoRetargetingWarnings: 0 - animationCompression: 1 - animationRotationError: 0.5 - animationPositionError: 0.5 - animationScaleError: 0.5 - animationWrapMode: 0 - extraExposedTransformPaths: [] - clipAnimations: [] - isReadable: 0 - meshes: - lODScreenPercentages: [] - globalScale: 1 - meshCompression: 0 - addColliders: 0 - importBlendShapes: 0 - swapUVChannels: 0 - generateSecondaryUV: 0 - useFileUnits: 1 - optimizeMeshForGPU: 0 - keepQuads: 0 - weldVertices: 0 - secondaryUVAngleDistortion: 8 - secondaryUVAreaDistortion: 15.000001 - secondaryUVHardAngle: 88 - secondaryUVPackMargin: 4 - useFileScale: 1 - tangentSpace: - normalSmoothAngle: 0 - normalImportMode: 1 - tangentImportMode: 3 - importAnimation: 0 - copyAvatar: 0 - humanDescription: - serializedVersion: 2 - human: [] - skeleton: [] - armTwist: 0.5 - foreArmTwist: 0.5 - upperLegTwist: 0.5 - legTwist: 0.5 - armStretch: 0.05 - legStretch: 0.05 - feetSpacing: 0 - rootMotionBoneName: - rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} - hasTranslationDoF: 0 - hasExtraRoot: 0 - skeletonHasParents: 1 - lastHumanDescriptionAvatarSource: {instanceID: 0} - animationType: 0 - humanoidOversampling: 1 - additionalBone: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/_Game/Models/Model_Weapon_검.prefab b/Assets/_Game/Models/Model_Weapon_검.prefab new file mode 100644 index 00000000..9b1e72f8 --- /dev/null +++ b/Assets/_Game/Models/Model_Weapon_검.prefab @@ -0,0 +1,81 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1631607032641582 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4561571508225656} + - component: {fileID: 33122181552623900} + - component: {fileID: 23019494539852092} + m_Layer: 0 + m_Name: "Model_Weapon_\uAC80" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4561571508225656 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1631607032641582} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &33122181552623900 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1631607032641582} + m_Mesh: {fileID: 4300000, guid: a29e10a78af23e243949a44795e2787f, type: 3} +--- !u!23 &23019494539852092 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1631607032641582} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: ea128b040f8b0af4c9d2de400aaff30a, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 diff --git a/Assets/_Game/Models/Model_Weapon_검.prefab.meta b/Assets/_Game/Models/Model_Weapon_검.prefab.meta new file mode 100644 index 00000000..2c6d312b --- /dev/null +++ b/Assets/_Game/Models/Model_Weapon_검.prefab.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 888f3d986f4ea1a4491c1ffca7e660c9 +timeCreated: 1554786157 +licenseType: Store +NativeFormatImporter: + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab b/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab index d0a85135..1ff62c44 100644 --- a/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab +++ b/Assets/_Game/Prefabs/Player/Prefab_Player_Default.prefab @@ -312,11 +312,12 @@ MonoBehaviour: ShowTopMostFoldoutHeaderGroup: 1 skillSlots: - {fileID: 11400000, guid: b7f09e0e899c8fc4bb2cc9204cc6eb4a, type: 2} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} - {fileID: 11400000, guid: 2ed15dca92a165046b6df17b28f64874, type: 2} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} skillController: {fileID: 6912018896034183004} networkController: {fileID: 0} weaponEquipment: {fileID: 0} diff --git a/Assets/_Game/Scripts/InputSystem_Actions.cs b/Assets/_Game/Scripts/InputSystem_Actions.cs index 3749319b..ea11c7c0 100644 --- a/Assets/_Game/Scripts/InputSystem_Actions.cs +++ b/Assets/_Game/Scripts/InputSystem_Actions.cs @@ -2,7 +2,7 @@ // // This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator // version 1.18.0 -// from Assets/Scripts/InputSystem_Actions.inputactions +// from Assets/_Game/Scripts/InputSystem_Actions.inputactions // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -16,7 +16,7 @@ using UnityEngine.InputSystem; using UnityEngine.InputSystem.Utilities; /// -/// Provides programmatic access to , , and instances defined in asset "Assets/Scripts/InputSystem_Actions.inputactions". +/// Provides programmatic access to , , and instances defined in asset "Assets/_Game/Scripts/InputSystem_Actions.inputactions". /// /// /// This class is source generated and any manual edits will be discarded if the associated asset is reimported or modified. @@ -208,6 +208,15 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable ""processors"": """", ""interactions"": """", ""initialStateCheck"": false + }, + { + ""name"": ""Evade"", + ""type"": ""Button"", + ""id"": ""e9ae2f2b-7ce7-4104-9394-f2f3f599e595"", + ""expectedControlType"": """", + ""processors"": """", + ""interactions"": """", + ""initialStateCheck"": false } ], ""bindings"": [ @@ -573,6 +582,17 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable ""action"": ""Skill 6"", ""isComposite"": false, ""isPartOfComposite"": false + }, + { + ""name"": """", + ""id"": ""f0f459a5-504a-425c-ae51-c6353269c277"", + ""path"": ""/ctrl"", + ""interactions"": """", + ""processors"": """", + ""groups"": """", + ""action"": ""Evade"", + ""isComposite"": false, + ""isPartOfComposite"": false } ] }, @@ -1171,6 +1191,7 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable m_Player_Skill4 = m_Player.FindAction("Skill 4", throwIfNotFound: true); m_Player_Skill5 = m_Player.FindAction("Skill 5", throwIfNotFound: true); m_Player_Skill6 = m_Player.FindAction("Skill 6", throwIfNotFound: true); + m_Player_Evade = m_Player.FindAction("Evade", throwIfNotFound: true); // UI m_UI = asset.FindActionMap("UI", throwIfNotFound: true); m_UI_Navigate = m_UI.FindAction("Navigate", throwIfNotFound: true); @@ -1277,6 +1298,7 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable private readonly InputAction m_Player_Skill4; private readonly InputAction m_Player_Skill5; private readonly InputAction m_Player_Skill6; + private readonly InputAction m_Player_Evade; /// /// Provides access to input actions defined in input action map "Player". /// @@ -1341,6 +1363,10 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable /// public InputAction @Skill6 => m_Wrapper.m_Player_Skill6; /// + /// Provides access to the underlying input action "Player/Evade". + /// + public InputAction @Evade => m_Wrapper.m_Player_Evade; + /// /// Provides access to the underlying input action map instance. /// public InputActionMap Get() { return m_Wrapper.m_Player; } @@ -1405,6 +1431,9 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable @Skill6.started += instance.OnSkill6; @Skill6.performed += instance.OnSkill6; @Skill6.canceled += instance.OnSkill6; + @Evade.started += instance.OnEvade; + @Evade.performed += instance.OnEvade; + @Evade.canceled += instance.OnEvade; } /// @@ -1455,6 +1484,9 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable @Skill6.started -= instance.OnSkill6; @Skill6.performed -= instance.OnSkill6; @Skill6.canceled -= instance.OnSkill6; + @Evade.started -= instance.OnEvade; + @Evade.performed -= instance.OnEvade; + @Evade.canceled -= instance.OnEvade; } /// @@ -1846,6 +1878,13 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable /// /// void OnSkill6(InputAction.CallbackContext context); + /// + /// Method invoked when associated input action "Evade" is either , or . + /// + /// + /// + /// + void OnEvade(InputAction.CallbackContext context); } /// /// Interface to implement callback methods for all input action callbacks associated with input actions defined by "UI" which allows adding and removing callbacks. diff --git a/Assets/_Game/Scripts/InputSystem_Actions.inputactions b/Assets/_Game/Scripts/InputSystem_Actions.inputactions index 0a289394..48d62b41 100644 --- a/Assets/_Game/Scripts/InputSystem_Actions.inputactions +++ b/Assets/_Game/Scripts/InputSystem_Actions.inputactions @@ -122,6 +122,15 @@ "processors": "", "interactions": "", "initialStateCheck": false + }, + { + "name": "Evade", + "type": "Button", + "id": "e9ae2f2b-7ce7-4104-9394-f2f3f599e595", + "expectedControlType": "", + "processors": "", + "interactions": "", + "initialStateCheck": false } ], "bindings": [ @@ -487,6 +496,17 @@ "action": "Skill 6", "isComposite": false, "isPartOfComposite": false + }, + { + "name": "", + "id": "f0f459a5-504a-425c-ae51-c6353269c277", + "path": "/ctrl", + "interactions": "", + "processors": "", + "groups": "", + "action": "Evade", + "isComposite": false, + "isPartOfComposite": false } ] }, diff --git a/Assets/_Game/Scripts/Player/PlayerSkillInput.cs b/Assets/_Game/Scripts/Player/PlayerSkillInput.cs index d5574d30..f44bc44f 100644 --- a/Assets/_Game/Scripts/Player/PlayerSkillInput.cs +++ b/Assets/_Game/Scripts/Player/PlayerSkillInput.cs @@ -14,8 +14,8 @@ namespace Colosseum.Player public class PlayerSkillInput : NetworkBehaviour { [Header("Skill Slots")] - [Tooltip("각 슬롯에 등록할 스킬 데이터 (6개)")] - [SerializeField] private SkillData[] skillSlots = new SkillData[6]; + [Tooltip("각 슬롯에 등록할 스킬 데이터 (6개 + 긴급회피)")] + [SerializeField] private SkillData[] skillSlots = new SkillData[7]; [Header("References")] [Tooltip("SkillController (없으면 자동 검색)")] @@ -76,6 +76,7 @@ namespace Colosseum.Player inputActions.Player.Skill4.performed += _ => OnSkillInput(3); inputActions.Player.Skill5.performed += _ => OnSkillInput(4); inputActions.Player.Skill6.performed += _ => OnSkillInput(5); + inputActions.Player.Evade.performed += _ => OnSkillInput(6); } public override void OnNetworkDespawn() @@ -88,6 +89,7 @@ namespace Colosseum.Player inputActions.Player.Skill4.performed -= _ => OnSkillInput(3); inputActions.Player.Skill5.performed -= _ => OnSkillInput(4); inputActions.Player.Skill6.performed -= _ => OnSkillInput(5); + inputActions.Player.Evade.performed -= _ => OnSkillInput(6); inputActions.Disable(); } }