플레이어 대쉬 중 캐릭터 흔들림 효과 수정
This commit is contained in:
parent
2e0e105acf
commit
bda0688660
@ -1,7 +1,9 @@
|
|||||||
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using BlueWater.Audios;
|
using BlueWater.Audios;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
|
using DG.Tweening;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -96,11 +98,8 @@ namespace BlueWater.Players.Combat
|
|||||||
[field: SerializeField, Tooltip("대쉬가 쿨타임일 때 이펙트 사용 여부")]
|
[field: SerializeField, Tooltip("대쉬가 쿨타임일 때 이펙트 사용 여부")]
|
||||||
public bool EnableDashCooldownEffect { get; private set; } = true;
|
public bool EnableDashCooldownEffect { get; private set; } = true;
|
||||||
|
|
||||||
[field: SerializeField, Range(0f, 1f), Tooltip("대쉬가 쿨타임일 때, VisualLook이 x축 좌우로 움직이는 범위")]
|
[SerializeField]
|
||||||
public float DashCooldownShakingOffset { get; private set; } = 0.1f;
|
private DOTweenAnimation _dashCooldownEffect;
|
||||||
|
|
||||||
[field: SerializeField, Range(0, 10f), Tooltip("대쉬가 쿨타임일 때, VisualLook이 x축 좌우로 움직이는 횟수")]
|
|
||||||
public int DashCooldownShakingCount { get; private set; } = 2;
|
|
||||||
|
|
||||||
public bool IsDashEnabled { get; private set; } = true;
|
public bool IsDashEnabled { get; private set; } = true;
|
||||||
|
|
||||||
@ -118,7 +117,7 @@ namespace BlueWater.Players.Combat
|
|||||||
public bool IsDashCoolDownActive { get; private set; }
|
public bool IsDashCoolDownActive { get; private set; }
|
||||||
|
|
||||||
private Coroutine _dashCoroutine;
|
private Coroutine _dashCoroutine;
|
||||||
private Coroutine _dashCooldownEffectCoroutineInstance;
|
private bool _isQuitting;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@ -142,6 +141,18 @@ namespace BlueWater.Players.Combat
|
|||||||
Move();
|
Move();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnApplicationQuit()
|
||||||
|
{
|
||||||
|
_isQuitting = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
if (_isQuitting) return;
|
||||||
|
|
||||||
|
_dashCooldownEffect.DOKill();
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
// Initialize Methods
|
// Initialize Methods
|
||||||
@ -157,6 +168,7 @@ namespace BlueWater.Players.Combat
|
|||||||
_comboAttackable = GetComponent<IComboAttackable>();
|
_comboAttackable = GetComponent<IComboAttackable>();
|
||||||
_skillHandler = GetComponent<ISkillHandler>();
|
_skillHandler = GetComponent<ISkillHandler>();
|
||||||
_stunnable = GetComponent<IStunnable>();
|
_stunnable = GetComponent<IStunnable>();
|
||||||
|
_dashCooldownEffect = _visualLook.GetComponent<DOTweenAnimation>();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@ -227,18 +239,11 @@ namespace BlueWater.Players.Combat
|
|||||||
{
|
{
|
||||||
if (EnableDashCooldownEffect)
|
if (EnableDashCooldownEffect)
|
||||||
{
|
{
|
||||||
Utils.StartUniqueCoroutine(this, ref _dashCooldownEffectCoroutineInstance, DashCoolDownEffectCoroutine());
|
_dashCooldownEffect.DORestart();
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (EnableDashCooldownEffect && _dashCooldownEffectCoroutineInstance != null)
|
|
||||||
{
|
|
||||||
StopCoroutine(_dashCooldownEffectCoroutineInstance);
|
|
||||||
_dashCooldownEffectCoroutineInstance = null;
|
|
||||||
_visualLook.localPosition = Vector3.zero;
|
|
||||||
}
|
|
||||||
|
|
||||||
var isActivatingSkill = _skillHandler?.IsActivatingSkill ?? false;
|
var isActivatingSkill = _skillHandler?.IsActivatingSkill ?? false;
|
||||||
var isStunned = _stunnable?.IsStunned ?? false;
|
var isStunned = _stunnable?.IsStunned ?? false;
|
||||||
|
|
||||||
@ -253,21 +258,6 @@ namespace BlueWater.Players.Combat
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerator DashCoolDownEffectCoroutine()
|
|
||||||
{
|
|
||||||
var newLocalPosition = _visualLook.localPosition;
|
|
||||||
for (var i = 0; i < DashCooldownShakingCount; i++)
|
|
||||||
{
|
|
||||||
newLocalPosition.x = DashCooldownShakingOffset;
|
|
||||||
_visualLook.localPosition = newLocalPosition;
|
|
||||||
yield return null;
|
|
||||||
|
|
||||||
newLocalPosition.x = -DashCooldownShakingOffset;
|
|
||||||
_visualLook.localPosition = newLocalPosition;
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Dash()
|
public void Dash()
|
||||||
{
|
{
|
||||||
if (!CanDash()) return;
|
if (!CanDash()) return;
|
||||||
|
@ -515,8 +515,7 @@ MonoBehaviour:
|
|||||||
<DashTime>k__BackingField: 0.2
|
<DashTime>k__BackingField: 0.2
|
||||||
<DashCooldown>k__BackingField: 0.5
|
<DashCooldown>k__BackingField: 0.5
|
||||||
<EnableDashCooldownEffect>k__BackingField: 1
|
<EnableDashCooldownEffect>k__BackingField: 1
|
||||||
<DashCooldownShakingOffset>k__BackingField: 0.1
|
_dashCooldownEffect: {fileID: 0}
|
||||||
<DashCooldownShakingCount>k__BackingField: 2
|
|
||||||
--- !u!114 &3889238742570113982
|
--- !u!114 &3889238742570113982
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -688,6 +687,7 @@ GameObject:
|
|||||||
- component: {fileID: 2668222795840865044}
|
- component: {fileID: 2668222795840865044}
|
||||||
- component: {fileID: 5558898291459354456}
|
- component: {fileID: 5558898291459354456}
|
||||||
- component: {fileID: 3031446967001791208}
|
- component: {fileID: 3031446967001791208}
|
||||||
|
- component: {fileID: 8975283155893490419}
|
||||||
m_Layer: 9
|
m_Layer: 9
|
||||||
m_Name: VisualLook
|
m_Name: VisualLook
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@ -787,6 +787,114 @@ Animator:
|
|||||||
m_AllowConstantClipSamplingOptimization: 1
|
m_AllowConstantClipSamplingOptimization: 1
|
||||||
m_KeepAnimatorStateOnDisable: 0
|
m_KeepAnimatorStateOnDisable: 0
|
||||||
m_WriteDefaultValuesOnDisable: 0
|
m_WriteDefaultValuesOnDisable: 0
|
||||||
|
--- !u!114 &8975283155893490419
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8540731795983184644}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 4d0390bd8b8ffd640b34fe25065ff1df, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
updateType: 0
|
||||||
|
isSpeedBased: 0
|
||||||
|
hasOnStart: 0
|
||||||
|
hasOnPlay: 0
|
||||||
|
hasOnUpdate: 0
|
||||||
|
hasOnStepComplete: 0
|
||||||
|
hasOnComplete: 0
|
||||||
|
hasOnTweenCreated: 0
|
||||||
|
hasOnRewind: 0
|
||||||
|
onStart:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
onPlay:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
onUpdate:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
onStepComplete:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
onComplete:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
onTweenCreated:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
onRewind:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
targetIsSelf: 1
|
||||||
|
targetGO: {fileID: 0}
|
||||||
|
tweenTargetIsTargetGO: 1
|
||||||
|
delay: 0
|
||||||
|
duration: 0.3
|
||||||
|
easeType: 1
|
||||||
|
easeCurve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 0
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0
|
||||||
|
outWeight: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 1
|
||||||
|
value: 1
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0
|
||||||
|
outWeight: 0
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
loopType: 0
|
||||||
|
loops: 1
|
||||||
|
id:
|
||||||
|
isRelative: 0
|
||||||
|
isFrom: 0
|
||||||
|
isIndependentUpdate: 0
|
||||||
|
autoKill: 0
|
||||||
|
autoGenerate: 1
|
||||||
|
isActive: 1
|
||||||
|
isValid: 1
|
||||||
|
target: {fileID: 2668222795840865044}
|
||||||
|
animationType: 9
|
||||||
|
targetType: 11
|
||||||
|
forcedTargetType: 0
|
||||||
|
autoPlay: 0
|
||||||
|
useTargetAsV3: 0
|
||||||
|
endValueFloat: 0
|
||||||
|
endValueV3: {x: 0.2, y: 0, z: 0}
|
||||||
|
endValueV2: {x: 0, y: 0}
|
||||||
|
endValueColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
endValueString:
|
||||||
|
endValueRect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
width: 0
|
||||||
|
height: 0
|
||||||
|
endValueTransform: {fileID: 0}
|
||||||
|
optionalBool0: 0
|
||||||
|
optionalBool1: 0
|
||||||
|
optionalFloat0: 1
|
||||||
|
optionalInt0: 30
|
||||||
|
optionalRotationMode: 0
|
||||||
|
optionalScrambleMode: 0
|
||||||
|
optionalShakeRandomnessMode: 0
|
||||||
|
optionalString:
|
||||||
--- !u!1001 &863562677678979986
|
--- !u!1001 &863562677678979986
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
Loading…
Reference in New Issue
Block a user