feat: 긴급회피 스킬 슬롯 추가 및 검 모델 prefab 교체
- Left Ctrl에 Evade 액션 바인딩 추가 (InputSystem_Actions) - PlayerSkillInput skillSlots 6→7개로 확장, 슬롯 6에 Evade 연결 - Prefab_Player_Default 긴급회피 스킬 슬롯 할당 - 검 무기 모델 fbx → prefab으로 교체 - 구르기 스킬 아이콘, 베기 스킬 이펙트 데이터 수정 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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}
|
||||
|
||||
Binary file not shown.
@@ -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:
|
||||
81
Assets/_Game/Models/Model_Weapon_검.prefab
Normal file
81
Assets/_Game/Models/Model_Weapon_검.prefab
Normal file
@@ -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
|
||||
9
Assets/_Game/Models/Model_Weapon_검.prefab.meta
Normal file
9
Assets/_Game/Models/Model_Weapon_검.prefab.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 888f3d986f4ea1a4491c1ffca7e660c9
|
||||
timeCreated: 1554786157
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
mainObjectFileID: 100100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// <auto-generated>
|
||||
// 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;
|
||||
|
||||
/// <summary>
|
||||
/// Provides programmatic access to <see cref="InputActionAsset" />, <see cref="InputActionMap" />, <see cref="InputAction" /> and <see cref="InputControlScheme" /> instances defined in asset "Assets/Scripts/InputSystem_Actions.inputactions".
|
||||
/// Provides programmatic access to <see cref="InputActionAsset" />, <see cref="InputActionMap" />, <see cref="InputAction" /> and <see cref="InputControlScheme" /> instances defined in asset "Assets/_Game/Scripts/InputSystem_Actions.inputactions".
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 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"": ""<Keyboard>/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;
|
||||
/// <summary>
|
||||
/// Provides access to input actions defined in input action map "Player".
|
||||
/// </summary>
|
||||
@@ -1341,6 +1363,10 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
|
||||
/// </summary>
|
||||
public InputAction @Skill6 => m_Wrapper.m_Player_Skill6;
|
||||
/// <summary>
|
||||
/// Provides access to the underlying input action "Player/Evade".
|
||||
/// </summary>
|
||||
public InputAction @Evade => m_Wrapper.m_Player_Evade;
|
||||
/// <summary>
|
||||
/// Provides access to the underlying input action map instance.
|
||||
/// </summary>
|
||||
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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1846,6 +1878,13 @@ public partial class @InputSystem_Actions: IInputActionCollection2, IDisposable
|
||||
/// <seealso cref="UnityEngine.InputSystem.InputAction.performed" />
|
||||
/// <seealso cref="UnityEngine.InputSystem.InputAction.canceled" />
|
||||
void OnSkill6(InputAction.CallbackContext context);
|
||||
/// <summary>
|
||||
/// Method invoked when associated input action "Evade" is either <see cref="UnityEngine.InputSystem.InputAction.started" />, <see cref="UnityEngine.InputSystem.InputAction.performed" /> or <see cref="UnityEngine.InputSystem.InputAction.canceled" />.
|
||||
/// </summary>
|
||||
/// <seealso cref="UnityEngine.InputSystem.InputAction.started" />
|
||||
/// <seealso cref="UnityEngine.InputSystem.InputAction.performed" />
|
||||
/// <seealso cref="UnityEngine.InputSystem.InputAction.canceled" />
|
||||
void OnEvade(InputAction.CallbackContext context);
|
||||
}
|
||||
/// <summary>
|
||||
/// Interface to implement callback methods for all input action callbacks associated with input actions defined by "UI" which allows adding and removing callbacks.
|
||||
|
||||
@@ -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": "<Keyboard>/ctrl",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "",
|
||||
"action": "Evade",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user