기본 애니메이션 및 컨트롤러 추가
kaykit 애셋 일부 적용
This commit is contained in:
@@ -190,6 +190,15 @@ public partial class @PlayerInputActions: IInputActionCollection2, IDisposable
|
||||
""processors"": """",
|
||||
""interactions"": """",
|
||||
""initialStateCheck"": false
|
||||
},
|
||||
{
|
||||
""name"": ""Attack"",
|
||||
""type"": ""Button"",
|
||||
""id"": ""23075c94-90f6-437e-be80-4f36760bdf24"",
|
||||
""expectedControlType"": """",
|
||||
""processors"": """",
|
||||
""interactions"": """",
|
||||
""initialStateCheck"": false
|
||||
}
|
||||
],
|
||||
""bindings"": [
|
||||
@@ -555,6 +564,17 @@ public partial class @PlayerInputActions: IInputActionCollection2, IDisposable
|
||||
""action"": ""Cancel"",
|
||||
""isComposite"": false,
|
||||
""isPartOfComposite"": false
|
||||
},
|
||||
{
|
||||
""name"": """",
|
||||
""id"": ""6de8107e-a270-4bef-80c3-d263dc2d5928"",
|
||||
""path"": ""<Mouse>/leftButton"",
|
||||
""interactions"": """",
|
||||
""processors"": """",
|
||||
""groups"": "";Keyboard&Mouse"",
|
||||
""action"": ""Attack"",
|
||||
""isComposite"": false,
|
||||
""isPartOfComposite"": false
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -1151,6 +1171,7 @@ public partial class @PlayerInputActions: IInputActionCollection2, IDisposable
|
||||
m_Player_ToggleBuild = m_Player.FindAction("ToggleBuild", throwIfNotFound: true);
|
||||
m_Player_Build = m_Player.FindAction("Build", throwIfNotFound: true);
|
||||
m_Player_Cancel = m_Player.FindAction("Cancel", throwIfNotFound: true);
|
||||
m_Player_Attack = m_Player.FindAction("Attack", throwIfNotFound: true);
|
||||
// UI
|
||||
m_UI = asset.FindActionMap("UI", throwIfNotFound: true);
|
||||
m_UI_Navigate = m_UI.FindAction("Navigate", throwIfNotFound: true);
|
||||
@@ -1255,6 +1276,7 @@ public partial class @PlayerInputActions: IInputActionCollection2, IDisposable
|
||||
private readonly InputAction m_Player_ToggleBuild;
|
||||
private readonly InputAction m_Player_Build;
|
||||
private readonly InputAction m_Player_Cancel;
|
||||
private readonly InputAction m_Player_Attack;
|
||||
/// <summary>
|
||||
/// Provides access to input actions defined in input action map "Player".
|
||||
/// </summary>
|
||||
@@ -1311,6 +1333,10 @@ public partial class @PlayerInputActions: IInputActionCollection2, IDisposable
|
||||
/// </summary>
|
||||
public InputAction @Cancel => m_Wrapper.m_Player_Cancel;
|
||||
/// <summary>
|
||||
/// Provides access to the underlying input action "Player/Attack".
|
||||
/// </summary>
|
||||
public InputAction @Attack => m_Wrapper.m_Player_Attack;
|
||||
/// <summary>
|
||||
/// Provides access to the underlying input action map instance.
|
||||
/// </summary>
|
||||
public InputActionMap Get() { return m_Wrapper.m_Player; }
|
||||
@@ -1369,6 +1395,9 @@ public partial class @PlayerInputActions: IInputActionCollection2, IDisposable
|
||||
@Cancel.started += instance.OnCancel;
|
||||
@Cancel.performed += instance.OnCancel;
|
||||
@Cancel.canceled += instance.OnCancel;
|
||||
@Attack.started += instance.OnAttack;
|
||||
@Attack.performed += instance.OnAttack;
|
||||
@Attack.canceled += instance.OnAttack;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1413,6 +1442,9 @@ public partial class @PlayerInputActions: IInputActionCollection2, IDisposable
|
||||
@Cancel.started -= instance.OnCancel;
|
||||
@Cancel.performed -= instance.OnCancel;
|
||||
@Cancel.canceled -= instance.OnCancel;
|
||||
@Attack.started -= instance.OnAttack;
|
||||
@Attack.performed -= instance.OnAttack;
|
||||
@Attack.canceled -= instance.OnAttack;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1790,6 +1822,13 @@ public partial class @PlayerInputActions: IInputActionCollection2, IDisposable
|
||||
/// <seealso cref="UnityEngine.InputSystem.InputAction.performed" />
|
||||
/// <seealso cref="UnityEngine.InputSystem.InputAction.canceled" />
|
||||
void OnCancel(InputAction.CallbackContext context);
|
||||
/// <summary>
|
||||
/// Method invoked when associated input action "Attack" 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 OnAttack(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.
|
||||
|
||||
@@ -104,6 +104,15 @@
|
||||
"processors": "",
|
||||
"interactions": "",
|
||||
"initialStateCheck": false
|
||||
},
|
||||
{
|
||||
"name": "Attack",
|
||||
"type": "Button",
|
||||
"id": "23075c94-90f6-437e-be80-4f36760bdf24",
|
||||
"expectedControlType": "",
|
||||
"processors": "",
|
||||
"interactions": "",
|
||||
"initialStateCheck": false
|
||||
}
|
||||
],
|
||||
"bindings": [
|
||||
@@ -469,6 +478,17 @@
|
||||
"action": "Cancel",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "6de8107e-a270-4bef-80c3-d263dc2d5928",
|
||||
"path": "<Mouse>/leftButton",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": ";Keyboard&Mouse",
|
||||
"action": "Attack",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
364
Assets/New Animator Controller.controller
Normal file
364
Assets/New Animator Controller.controller
Normal file
@@ -0,0 +1,364 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1102 &-7770937745220071498
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Interact
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 1379410103905664400}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 1701519168366769839, guid: bc3e0d4ff7ebc104087a1dc5916cf7bb, type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &-7242892618301913691
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: isGrounded
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 397540454560189892}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.1
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.78571427
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!91 &9100000
|
||||
AnimatorController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: New Animator Controller
|
||||
serializedVersion: 5
|
||||
m_AnimatorParameters:
|
||||
- m_Name: MoveSpeed
|
||||
m_Type: 1
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: Attack
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: isGrounded
|
||||
m_Type: 4
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: Interact
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
m_AnimatorLayers:
|
||||
- serializedVersion: 5
|
||||
m_Name: Base Layer
|
||||
m_StateMachine: {fileID: 7170021844816565940}
|
||||
m_Mask: {fileID: 0}
|
||||
m_Motions: []
|
||||
m_Behaviours: []
|
||||
m_BlendingMode: 0
|
||||
m_SyncedLayerIndex: -1
|
||||
m_DefaultWeight: 0
|
||||
m_IKPass: 0
|
||||
m_SyncedLayerAffectsTiming: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
--- !u!1102 &397540454560189892
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Locomotion
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 1610424884888369095}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &404349288434198591
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 2
|
||||
m_ConditionEvent: isGrounded
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 7354546966716114735}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.75
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 0
|
||||
--- !u!1101 &954603756796225056
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: Attack
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 1042583441410514574}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.75
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &1042583441410514574
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Melee_1H_Attack_Chop
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 1660218971867841857}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 4043807988371827432, guid: 79b3d1d24644f7d4987c6bdd614dd439, type: 3}
|
||||
m_Tag: Attack
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &1379410103905664400
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 397540454560189892}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.8076923
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!206 &1610424884888369095
|
||||
BlendTree:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Blend Tree
|
||||
m_Childs:
|
||||
- serializedVersion: 2
|
||||
m_Motion: {fileID: 345275505875579249, guid: bc3e0d4ff7ebc104087a1dc5916cf7bb, type: 3}
|
||||
m_Threshold: 0
|
||||
m_Position: {x: 0, y: 0}
|
||||
m_TimeScale: 1
|
||||
m_CycleOffset: 0
|
||||
m_DirectBlendParameter: MoveSpeed
|
||||
m_Mirror: 0
|
||||
- serializedVersion: 2
|
||||
m_Motion: {fileID: -1640158340307531623, guid: 9e25e6839de2eb7449e0bbf11086c326, type: 3}
|
||||
m_Threshold: 1
|
||||
m_Position: {x: 0, y: 0}
|
||||
m_TimeScale: 1
|
||||
m_CycleOffset: 0
|
||||
m_DirectBlendParameter: MoveSpeed
|
||||
m_Mirror: 0
|
||||
m_BlendParameter: MoveSpeed
|
||||
m_BlendParameterY: MoveSpeed
|
||||
m_MinThreshold: 0
|
||||
m_MaxThreshold: 1
|
||||
m_UseAutomaticThresholds: 1
|
||||
m_NormalizedBlendValues: 0
|
||||
m_BlendType: 0
|
||||
--- !u!1101 &1660218971867841857
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 397540454560189892}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.765625
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &7110953658697184367
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: Interact
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: -7770937745220071498}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.75
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1107 &7170021844816565940
|
||||
AnimatorStateMachine:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Base Layer
|
||||
m_ChildStates:
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 397540454560189892}
|
||||
m_Position: {x: 560, y: 10, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: -7770937745220071498}
|
||||
m_Position: {x: 340, y: 80, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 1042583441410514574}
|
||||
m_Position: {x: 340, y: -60, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 7354546966716114735}
|
||||
m_Position: {x: 340, y: -200, z: 0}
|
||||
m_ChildStateMachines: []
|
||||
m_AnyStateTransitions:
|
||||
- {fileID: 7110953658697184367}
|
||||
- {fileID: 954603756796225056}
|
||||
- {fileID: 404349288434198591}
|
||||
m_EntryTransitions: []
|
||||
m_StateMachineTransitions: {}
|
||||
m_StateMachineBehaviours: []
|
||||
m_AnyStatePosition: {x: 80, y: 10, z: 0}
|
||||
m_EntryPosition: {x: 580, y: 250, z: 0}
|
||||
m_ExitPosition: {x: 790, y: 10, z: 0}
|
||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||
m_DefaultState: {fileID: 397540454560189892}
|
||||
--- !u!1102 &7354546966716114735
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Jump_Full_Short
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: -7242892618301913691}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 1683828920807373193, guid: 9e25e6839de2eb7449e0bbf11086c326, type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
8
Assets/New Animator Controller.controller.meta
Normal file
8
Assets/New Animator Controller.controller.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aa53deee6146e7845a197a4031f40bb3
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 9100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
187
Assets/Prefabs/Player.prefab
Normal file
187
Assets/Prefabs/Player.prefab
Normal file
@@ -0,0 +1,187 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1001 &3356319783404427244
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 919132149155446097, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Player
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 919132149155446097, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 9
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 919132149155446097, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_TagString
|
||||
value: Player
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents:
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 2502853225347469563}
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 5427120340594505786}
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 7743182389554125766}
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 8355519159906864452}
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 5870045807328036684}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
--- !u!1 &2473992278589500093 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
m_PrefabInstance: {fileID: 3356319783404427244}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!114 &2502853225347469563
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2473992278589500093}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 736c03e837e6b074ba7f90b813050aed, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::PlayerInteractionController
|
||||
range: 3
|
||||
interactableLayer:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
constructionLayer:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
buildSpeedMultiplier: 2
|
||||
--- !u!114 &5427120340594505786
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2473992278589500093}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 768ea4bbb68b30140921c7192ebe2852, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::PlayerMovement
|
||||
moveSpeed: 5
|
||||
rotationSpeed: 10
|
||||
jumpHeight: 1.5
|
||||
gravity: -19.62
|
||||
interactRange: 3
|
||||
interactableLayer:
|
||||
serializedVersion: 2
|
||||
m_Bits: 1024
|
||||
--- !u!143 &7743182389554125766
|
||||
CharacterController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2473992278589500093}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Height: 2.4
|
||||
m_Radius: 0.5
|
||||
m_SlopeLimit: 45
|
||||
m_StepOffset: 0.3
|
||||
m_SkinWidth: 0.08
|
||||
m_MinMoveDistance: 0.001
|
||||
m_Center: {x: 0, y: 1, z: 0}
|
||||
--- !u!114 &8355519159906864452
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2473992278589500093}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d71ce06d133743140877345b807f33ad, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::TunnelTraveler
|
||||
travelSpeed: 20
|
||||
--- !u!95 &5870045807328036684
|
||||
Animator:
|
||||
serializedVersion: 7
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2473992278589500093}
|
||||
m_Enabled: 1
|
||||
m_Avatar: {fileID: 9000000, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
m_Controller: {fileID: 9100000, guid: aa53deee6146e7845a197a4031f40bb3, type: 2}
|
||||
m_CullingMode: 0
|
||||
m_UpdateMode: 0
|
||||
m_ApplyRootMotion: 0
|
||||
m_LinearVelocityBlending: 0
|
||||
m_StabilizeFeet: 0
|
||||
m_AnimatePhysics: 0
|
||||
m_WarningMessage:
|
||||
m_HasTransformHierarchy: 1
|
||||
m_AllowConstantClipSamplingOptimization: 1
|
||||
m_KeepAnimatorStateOnDisable: 0
|
||||
m_WriteDefaultValuesOnDisable: 0
|
||||
7
Assets/Prefabs/Player.prefab.meta
Normal file
7
Assets/Prefabs/Player.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fe3685eff459f8b4d8b8d0786aad07de
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,73 +1,5 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &5334341810660213834
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5524516627708568918}
|
||||
- component: {fileID: 8060172296368980519}
|
||||
- component: {fileID: 3945124241373782966}
|
||||
m_Layer: 10
|
||||
m_Name: TunnelNodeB
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5524516627708568918
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5334341810660213834}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: -3, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 5411003075815891614}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &8060172296368980519
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5334341810660213834}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 275306f282948c343bf20ee884ad22b8, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::TunnelNode
|
||||
aboveNode: {fileID: 0}
|
||||
belowNode: {fileID: 0}
|
||||
--- !u!65 &3945124241373782966
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5334341810660213834}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 1
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &5462246585413302240
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -167,7 +99,6 @@ Transform:
|
||||
m_Children:
|
||||
- {fileID: 4229549338725785498}
|
||||
- {fileID: 4703568612144557396}
|
||||
- {fileID: 5524516627708568918}
|
||||
m_Father: {fileID: 7892781535212668078}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &7297238503126003997
|
||||
|
||||
@@ -940,6 +940,107 @@ NavMeshObstacle:
|
||||
m_CarveOnlyStationary: 1
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
m_TimeToStationary: 0.5
|
||||
--- !u!1 &483574356 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
m_PrefabInstance: {fileID: 649621946}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!143 &483574357
|
||||
CharacterController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 483574356}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Height: 2.4
|
||||
m_Radius: 0.5
|
||||
m_SlopeLimit: 45
|
||||
m_StepOffset: 0.3
|
||||
m_SkinWidth: 0.08
|
||||
m_MinMoveDistance: 0.001
|
||||
m_Center: {x: 0, y: 1, z: 0}
|
||||
--- !u!114 &483574358
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 483574356}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 768ea4bbb68b30140921c7192ebe2852, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::PlayerMovement
|
||||
moveSpeed: 5
|
||||
rotationSpeed: 10
|
||||
jumpHeight: 1.5
|
||||
gravity: -19.62
|
||||
--- !u!114 &483574359
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 483574356}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 736c03e837e6b074ba7f90b813050aed, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::PlayerInteractionController
|
||||
range: 3
|
||||
interactableLayer:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
constructionLayer:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
buildSpeedMultiplier: 2
|
||||
--- !u!114 &483574361
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 483574356}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d71ce06d133743140877345b807f33ad, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::TunnelTraveler
|
||||
travelSpeed: 20
|
||||
--- !u!95 &483574362
|
||||
Animator:
|
||||
serializedVersion: 7
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 483574356}
|
||||
m_Enabled: 1
|
||||
m_Avatar: {fileID: 9000000, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
m_Controller: {fileID: 9100000, guid: aa53deee6146e7845a197a4031f40bb3, type: 2}
|
||||
m_CullingMode: 0
|
||||
m_UpdateMode: 0
|
||||
m_ApplyRootMotion: 0
|
||||
m_LinearVelocityBlending: 0
|
||||
m_StabilizeFeet: 0
|
||||
m_AnimatePhysics: 0
|
||||
m_WarningMessage:
|
||||
m_HasTransformHierarchy: 1
|
||||
m_AllowConstantClipSamplingOptimization: 1
|
||||
m_KeepAnimatorStateOnDisable: 0
|
||||
m_WriteDefaultValuesOnDisable: 0
|
||||
--- !u!1001 &497942047
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1276,195 +1377,86 @@ CanvasRenderer:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 599851509}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &621471626
|
||||
GameObject:
|
||||
--- !u!1001 &649621946
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 621471627}
|
||||
- component: {fileID: 621471630}
|
||||
- component: {fileID: 621471629}
|
||||
- component: {fileID: 621471628}
|
||||
- component: {fileID: 621471635}
|
||||
- component: {fileID: 621471634}
|
||||
- component: {fileID: 621471636}
|
||||
- component: {fileID: 621471637}
|
||||
m_Layer: 9
|
||||
m_Name: Player
|
||||
m_TagString: Player
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &621471627
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 621471626}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -8, y: 3, 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!65 &621471628
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 621471626}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!23 &621471629
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 621471626}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_ForceMeshLod: -1
|
||||
m_MeshLodSelectionBias: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 673443bdcb7bf2f47be93ce60e68966f, 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_GlobalIlluminationMeshLod: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_MaskInteraction: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!33 &621471630
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 621471626}
|
||||
m_Mesh: {fileID: 4300000, guid: fafc239678bc5064887cfc699c21e355, type: 3}
|
||||
--- !u!114 &621471634
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 621471626}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 768ea4bbb68b30140921c7192ebe2852, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::PlayerMovement
|
||||
moveSpeed: 5
|
||||
jumpHeight: 1.5
|
||||
gravity: -19.62
|
||||
--- !u!143 &621471635
|
||||
CharacterController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 621471626}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Height: 1
|
||||
m_Radius: 0.5
|
||||
m_SlopeLimit: 45
|
||||
m_StepOffset: 0.1
|
||||
m_SkinWidth: 0.08
|
||||
m_MinMoveDistance: 0.001
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &621471636
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 621471626}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 736c03e837e6b074ba7f90b813050aed, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::PlayerInteractionController
|
||||
range: 5
|
||||
interactableLayer:
|
||||
serializedVersion: 2
|
||||
m_Bits: 1024
|
||||
constructionLayer:
|
||||
serializedVersion: 2
|
||||
m_Bits: 256
|
||||
buildSpeedMultiplier: 2
|
||||
--- !u!114 &621471637
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 621471626}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d71ce06d133743140877345b807f33ad, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::TunnelTraveler
|
||||
travelSpeed: 5
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 919132149155446097, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Player
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 919132149155446097, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 9
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 919132149155446097, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
propertyPath: m_TagString
|
||||
value: Player
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents:
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 483574359}
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 483574358}
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 483574357}
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 483574361}
|
||||
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 483574362}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: ffaf1ddb2ff58d2448ccfdd357387f63, type: 3}
|
||||
--- !u!1 &670724421
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -2226,10 +2218,6 @@ PrefabInstance:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 743367988}
|
||||
m_Modifications:
|
||||
- target: {fileID: 2292926820231089492, guid: 48bf40d31e903d34f9469451d7de06dd, type: 3}
|
||||
propertyPath: m_IsTrigger
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7817822323996939414, guid: 48bf40d31e903d34f9469451d7de06dd, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Tunnel (1)
|
||||
@@ -2275,8 +2263,7 @@ PrefabInstance:
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects:
|
||||
- {fileID: 5334341810660213834, guid: 48bf40d31e903d34f9469451d7de06dd, type: 3}
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 48bf40d31e903d34f9469451d7de06dd, type: 3}
|
||||
@@ -3372,7 +3359,7 @@ PrefabInstance:
|
||||
- target: {fileID: 3590434222513987346, guid: 2b08dd32e48ef5e4aa65a6122099152e, type: 3}
|
||||
propertyPath: Target.TrackingTarget
|
||||
value:
|
||||
objectReference: {fileID: 621471627}
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4415413950589506134, guid: 2b08dd32e48ef5e4aa65a6122099152e, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: -4.46977
|
||||
@@ -3413,6 +3400,6 @@ SceneRoots:
|
||||
- {fileID: 3690888448170635710}
|
||||
- {fileID: 743367988}
|
||||
- {fileID: 670724422}
|
||||
- {fileID: 621471627}
|
||||
- {fileID: 1409253547}
|
||||
- {fileID: 14847856}
|
||||
- {fileID: 649621946}
|
||||
|
||||
40
Assets/Scripts/Player/PlayerAnimationController.cs
Normal file
40
Assets/Scripts/Player/PlayerAnimationController.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class PlayerAnimationController : MonoBehaviour
|
||||
{
|
||||
private Animator animator;
|
||||
private CharacterController controller;
|
||||
|
||||
void Start()
|
||||
{
|
||||
animator = GetComponent<Animator>();
|
||||
controller = GetComponent<CharacterController>();
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
// 1. 이동 속도 제어 (수평 속도만 계산)
|
||||
// Y축(중력/점프)을 제외한 X, Z축의 속도만 추출하여 MoveSpeed에 전달합니다.
|
||||
Vector3 horizontalVelocity = new Vector3(controller.velocity.x, 0, controller.velocity.z);
|
||||
float currentSpeed = horizontalVelocity.magnitude;
|
||||
|
||||
// 애니메이터의 MoveSpeed 파라미터 업데이트 (0.1은 보정값)
|
||||
animator.SetFloat("MoveSpeed", currentSpeed > 0.1f ? currentSpeed : 0f);
|
||||
|
||||
// 2. 점프 및 공중 상태 (isGrounded 활용)
|
||||
// CharacterController가 바닥에 닿아있는지 여부를 직접 전달합니다.
|
||||
animator.SetBool("isGrounded", controller.isGrounded);
|
||||
|
||||
// 3. 공격 (트리거)
|
||||
if (Input.GetMouseButtonDown(0))
|
||||
{
|
||||
animator.SetTrigger("Attack");
|
||||
}
|
||||
|
||||
// 4. 인터랙션 (트리거)
|
||||
if (Input.GetKeyDown(KeyCode.E))
|
||||
{
|
||||
animator.SetTrigger("Interact");
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/Player/PlayerAnimationController.cs.meta
Normal file
2
Assets/Scripts/Player/PlayerAnimationController.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c6806aa8897e01a418df919c13b31c0b
|
||||
@@ -1,58 +0,0 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
|
||||
public class PlayerBuildInteract : MonoBehaviour
|
||||
{
|
||||
[Header("Interaction Settings")]
|
||||
[SerializeField] private float interactRange = 3f; // 건설 가능 거리
|
||||
[SerializeField] private float buildSpeedMultiplier = 1f; // 건설 속도 배율
|
||||
[SerializeField] private LayerMask constructionLayer; // 토대 레이어 (선택 사항)
|
||||
|
||||
private PlayerInputActions _inputActions;
|
||||
private bool _isInteracting = false;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
_inputActions = new PlayerInputActions();
|
||||
|
||||
// Interact 액션 연결 (Hold 방식)
|
||||
_inputActions.Player.Interact.started += ctx => _isInteracting = true;
|
||||
_inputActions.Player.Interact.canceled += ctx => _isInteracting = false;
|
||||
}
|
||||
|
||||
void OnEnable() => _inputActions.Enable();
|
||||
void OnDisable() => _inputActions.Disable();
|
||||
|
||||
void Update()
|
||||
{
|
||||
// 키를 누르고 있을 때만 실행
|
||||
if (_isInteracting)
|
||||
{
|
||||
PerformConstruction();
|
||||
}
|
||||
}
|
||||
|
||||
void PerformConstruction()
|
||||
{
|
||||
// 주변의 모든 콜라이더 검사
|
||||
Collider[] targets = Physics.OverlapSphere(transform.position, interactRange, constructionLayer);
|
||||
|
||||
foreach (var col in targets)
|
||||
{
|
||||
// 토대 컴포넌트가 있는지 확인
|
||||
ConstructionSite site = col.GetComponent<ConstructionSite>();
|
||||
if (site != null)
|
||||
{
|
||||
// 드디어 여기서 호출합니다!
|
||||
site.AdvanceConstruction(Time.deltaTime * buildSpeedMultiplier);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 에디터에서 상호작용 범위를 확인하기 위함
|
||||
void OnDrawGizmosSelected()
|
||||
{
|
||||
Gizmos.color = Color.yellow;
|
||||
Gizmos.DrawWireSphere(transform.position, interactRange);
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 29785216765776848b0c3cc745d761a7
|
||||
@@ -1,79 +0,0 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem; // New Input System 네임스페이스
|
||||
|
||||
public class PlayerInteraction : MonoBehaviour
|
||||
{
|
||||
[Header("Detection Settings")]
|
||||
[SerializeField] private float interactionRadius = 2.5f;
|
||||
[SerializeField] private LayerMask interactableLayer;
|
||||
|
||||
private PlayerInputActions _inputActions;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
_inputActions = new PlayerInputActions();
|
||||
}
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
// Interact 액션이 수행되었을 때(버튼을 눌렀을 때) 실행될 함수 연결
|
||||
_inputActions.Player.Interact.performed += OnInteractPerformed;
|
||||
_inputActions.Enable();
|
||||
}
|
||||
|
||||
void OnDisable()
|
||||
{
|
||||
// 이벤트 연결 해제 및 비활성화
|
||||
_inputActions.Player.Interact.performed -= OnInteractPerformed;
|
||||
_inputActions.Disable();
|
||||
}
|
||||
|
||||
// Input Action 콜백 함수
|
||||
private void OnInteractPerformed(InputAction.CallbackContext context)
|
||||
{
|
||||
Debug.Log("E 키 눌림!"); // <-- 이게 콘솔에 찍히나요?
|
||||
|
||||
// 건설 모드 중일 때는 상호작용을 막고 싶다면 아래 조건 추가
|
||||
if (BuildManager.Instance.IsBuildMode) return;
|
||||
|
||||
CheckAndInteract();
|
||||
}
|
||||
|
||||
private void CheckAndInteract()
|
||||
{
|
||||
Collider[] colliders = Physics.OverlapSphere(transform.position, interactionRadius, interactableLayer);
|
||||
Debug.Log($"주변에서 {colliders.Length}개의 물체 감지됨"); // 0이 나오면 레이어나 콜라이더 문제
|
||||
|
||||
IInteractable nearestInteractable = null;
|
||||
float minDistance = Mathf.Infinity;
|
||||
|
||||
foreach (var col in colliders)
|
||||
{
|
||||
// 부모까지 포함하여 IInteractable 인터페이스를 찾음
|
||||
IInteractable interactable = col.GetComponentInParent<IInteractable>();
|
||||
|
||||
if (interactable != null)
|
||||
{
|
||||
Debug.Log($"{col.name}에서 인터페이스 발견!");
|
||||
float distance = Vector3.Distance(transform.position, col.transform.position);
|
||||
if (distance < minDistance)
|
||||
{
|
||||
minDistance = distance;
|
||||
nearestInteractable = interactable;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (nearestInteractable != null)
|
||||
{
|
||||
nearestInteractable.Interact(gameObject);
|
||||
Debug.Log($"[Interaction] {nearestInteractable.GetInteractionText()} 실행");
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDrawGizmosSelected()
|
||||
{
|
||||
Gizmos.color = Color.yellow;
|
||||
Gizmos.DrawWireSphere(transform.position, interactionRadius);
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 059b81ebcbce23f4b88e7c52021fa869
|
||||
@@ -5,23 +5,34 @@ public class PlayerMovement : MonoBehaviour
|
||||
{
|
||||
[Header("Movement Settings")]
|
||||
public float moveSpeed = 5f;
|
||||
public float jumpHeight = 1.5f; // 점프 높이
|
||||
public float gravity = -19.62f; // 기본 중력보다 약간 무거운 값 추천
|
||||
public float rotationSpeed = 10f;
|
||||
public float jumpHeight = 1.5f;
|
||||
public float gravity = -19.62f;
|
||||
|
||||
[Header("Interaction Settings")]
|
||||
[SerializeField] private float interactRange = 3f;
|
||||
[SerializeField] private LayerMask interactableLayer; // 터널 노드 레이어
|
||||
|
||||
private CharacterController _controller;
|
||||
private PlayerInputActions _inputActions;
|
||||
private Animator _animator;
|
||||
private TunnelTraveler _traveler; // 터널 이동 컴포넌트 참조
|
||||
|
||||
private Vector2 _moveInput;
|
||||
private Vector3 _velocity; // 수직 속도 (중력용)
|
||||
private Vector3 _velocity;
|
||||
private Vector3 _currentMoveDir;
|
||||
private bool _isGrounded;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
_controller = GetComponent<CharacterController>();
|
||||
_animator = GetComponent<Animator>();
|
||||
_traveler = GetComponent<TunnelTraveler>(); // 컴포넌트 캐싱
|
||||
_inputActions = new PlayerInputActions();
|
||||
|
||||
// 점프 액션 연결
|
||||
_inputActions.Player.Jump.performed += ctx => OnJump();
|
||||
_inputActions.Player.Attack.performed += ctx => OnAttack();
|
||||
_inputActions.Player.Interact.performed += ctx => OnInteract();
|
||||
}
|
||||
|
||||
void OnEnable() => _inputActions.Enable();
|
||||
@@ -29,46 +40,103 @@ public class PlayerMovement : MonoBehaviour
|
||||
|
||||
void Update()
|
||||
{
|
||||
// [해결책] 터널 이동 중이라면 일반 이동/중력 로직을 모두 중단합니다.
|
||||
if (GetComponent<TunnelTraveler>().IsTraveling)
|
||||
{
|
||||
return;
|
||||
}
|
||||
// [중요] 터널 이동 중에는 모든 이동/중력 로직을 중단합니다.
|
||||
if (_traveler != null && _traveler.IsTraveling) return;
|
||||
|
||||
// 1. 바닥 체크 (CharacterController의 기능 활용)
|
||||
_isGrounded = _controller.isGrounded;
|
||||
_animator.SetBool("isGrounded", _isGrounded);
|
||||
|
||||
bool isAttacking = _animator.GetCurrentAnimatorStateInfo(0).IsTag("Attack");
|
||||
|
||||
if (_isGrounded && _velocity.y < 0)
|
||||
{
|
||||
// 바닥에 닿아있을 때는 아주 작은 하방 힘만 유지 (안정성)
|
||||
_velocity.y = -2f;
|
||||
}
|
||||
|
||||
// 2. 이동 로직
|
||||
_moveInput = _inputActions.Player.Move.ReadValue<Vector2>();
|
||||
Vector3 move = transform.right * _moveInput.x + transform.forward * _moveInput.y;
|
||||
_controller.Move(move * moveSpeed * Time.deltaTime);
|
||||
Vector3 move = Vector3.zero;
|
||||
|
||||
if (_isGrounded)
|
||||
{
|
||||
if (isAttacking)
|
||||
{
|
||||
move = Vector3.zero;
|
||||
_currentMoveDir = Vector3.zero;
|
||||
}
|
||||
else
|
||||
{
|
||||
_moveInput = _inputActions.Player.Move.ReadValue<Vector2>();
|
||||
move = new Vector3(_moveInput.x, 0, _moveInput.y).normalized;
|
||||
_currentMoveDir = move;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (isAttacking)
|
||||
{
|
||||
move = _currentMoveDir;
|
||||
}
|
||||
else
|
||||
{
|
||||
_moveInput = _inputActions.Player.Move.ReadValue<Vector2>();
|
||||
move = new Vector3(_moveInput.x, 0, _moveInput.y).normalized;
|
||||
if (move.magnitude > 0.1f) _currentMoveDir = move;
|
||||
}
|
||||
}
|
||||
|
||||
if (move.magnitude >= 0.1f)
|
||||
{
|
||||
Quaternion targetRotation = Quaternion.LookRotation(move);
|
||||
if (!isAttacking)
|
||||
transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, rotationSpeed * Time.deltaTime);
|
||||
|
||||
_controller.Move(move * moveSpeed * Time.deltaTime);
|
||||
}
|
||||
|
||||
_animator.SetFloat("MoveSpeed", isAttacking && _isGrounded ? 0 : move.magnitude);
|
||||
|
||||
// 3. 중력 적용
|
||||
_velocity.y += gravity * Time.deltaTime;
|
||||
|
||||
// 4. 최종 수직 이동 적용 (중력/점프 속도)
|
||||
_controller.Move(_velocity * Time.deltaTime);
|
||||
}
|
||||
|
||||
private void OnJump()
|
||||
{
|
||||
// TunnelTraveler가 이동 중인지 체크 (상태 변수 활용)
|
||||
if (GetComponent<TunnelTraveler>().IsTraveling) return;
|
||||
if (_traveler != null && _traveler.IsTraveling) return;
|
||||
if (_isGrounded) _velocity.y = Mathf.Sqrt(jumpHeight * -2f * gravity);
|
||||
}
|
||||
|
||||
if (_isGrounded)
|
||||
private void OnAttack()
|
||||
{
|
||||
if (_traveler != null && _traveler.IsTraveling) return;
|
||||
_animator.SetTrigger("Attack");
|
||||
}
|
||||
|
||||
private void OnInteract()
|
||||
{
|
||||
// 터널 이동 중에는 상호작용 금지
|
||||
if (_traveler != null && _traveler.IsTraveling) return;
|
||||
|
||||
// 상호작용 애니메이션 실행
|
||||
_animator.SetTrigger("Interact");
|
||||
|
||||
// [핵심 추가] 주변 상호작용 대상(터널 노드 등) 검색
|
||||
Collider[] colliders = Physics.OverlapSphere(transform.position, interactRange, interactableLayer);
|
||||
|
||||
foreach (var col in colliders)
|
||||
{
|
||||
_velocity.y = Mathf.Sqrt(jumpHeight * -2f * gravity);
|
||||
// 터널 노드(IInteractable)를 찾아 Interact 호출
|
||||
IInteractable interactable = col.GetComponentInParent<IInteractable>();
|
||||
if (interactable != null)
|
||||
{
|
||||
interactable.Interact(gameObject);
|
||||
break; // 하나만 발견하면 중단
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 터널 이동 등 외부에서 중력을 초기화해야 할 때 사용
|
||||
public void ResetVelocity()
|
||||
// 범위 확인용 기즈모
|
||||
void OnDrawGizmosSelected()
|
||||
{
|
||||
_velocity.y = 0;
|
||||
Gizmos.color = Color.yellow;
|
||||
Gizmos.DrawWireSphere(transform.position, interactRange);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user