Compare commits
No commits in common. "21c2f14ca835851d508919a06a8ad060dabce49f" and "51c2545e357120fae796d0e7155c7eedbad6deef" have entirely different histories.
21c2f14ca8
...
51c2545e35
@ -1,28 +1,41 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using System.Collections;
|
||||||
|
|
||||||
public class CameraShake : MonoBehaviour
|
public class CameraShake : MonoBehaviour
|
||||||
{
|
{
|
||||||
private float shakeDuration = 0.2f;
|
[SerializeField] private float shakeDuration = 0.2f;
|
||||||
private float shakeMagnitude = 0.3f;
|
[SerializeField] private float shakeMagnitude = 0.1f;
|
||||||
|
|
||||||
private float shakeTimer = 0f;
|
private Vector3 initialLocalPosition;
|
||||||
private Vector3 targetPosition;
|
private Coroutine shakeCoroutine;
|
||||||
|
|
||||||
private void LateUpdate()
|
private void Awake()
|
||||||
{
|
{
|
||||||
// CameraController가 LateUpdate에서 위치를 갱신한 후 기준 위치를 저장
|
initialLocalPosition = transform.localPosition;
|
||||||
targetPosition = transform.position;
|
|
||||||
|
|
||||||
if (shakeTimer > 0)
|
|
||||||
{
|
|
||||||
Vector3 randomOffset = Random.insideUnitSphere * shakeMagnitude;
|
|
||||||
transform.position = targetPosition + randomOffset;
|
|
||||||
shakeTimer -= Time.deltaTime;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Shake()
|
public void Shake()
|
||||||
{
|
{
|
||||||
shakeTimer = shakeDuration;
|
if (shakeCoroutine != null)
|
||||||
|
{
|
||||||
|
StopCoroutine(shakeCoroutine);
|
||||||
|
}
|
||||||
|
shakeCoroutine = StartCoroutine(ShakeRoutine());
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator ShakeRoutine()
|
||||||
|
{
|
||||||
|
float elapsed = 0f;
|
||||||
|
|
||||||
|
while (elapsed < shakeDuration)
|
||||||
|
{
|
||||||
|
Vector3 randomPoint = Random.insideUnitSphere * shakeMagnitude;
|
||||||
|
transform.localPosition = initialLocalPosition + randomPoint;
|
||||||
|
|
||||||
|
elapsed += Time.deltaTime;
|
||||||
|
yield return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
transform.localPosition = initialLocalPosition;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -218,18 +218,13 @@ public class PlayerController : CharacterBase, IObserver<GameObject>
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void StartAttackAction()
|
public void StartAttackAction() {
|
||||||
{
|
|
||||||
if (!_isBattle) return;
|
|
||||||
|
|
||||||
_currentAction = _attackAction;
|
_currentAction = _attackAction;
|
||||||
_currentAction.StartAction(this);
|
_currentAction.StartAction(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartDashAction()
|
public void StartDashAction()
|
||||||
{
|
{
|
||||||
if (!_isBattle) return;
|
|
||||||
|
|
||||||
// 만약 공격 중이면 강제로 공격 종료
|
// 만약 공격 중이면 강제로 공격 종료
|
||||||
if (_currentAction == _attackAction && _attackAction.IsActive)
|
if (_currentAction == _attackAction && _attackAction.IsActive)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user