2025-05-12 05:50:37 +03:00
|
|
|
|
/*
|
|
|
|
|
* Author: Nikolay Dvurechensky
|
|
|
|
|
* Site: https://www.dvurechensky.pro/
|
|
|
|
|
* Gmail: dvurechenskysoft@gmail.com
|
|
|
|
|
* Last Updated: 12 мая 2025 05:48:46
|
|
|
|
|
* Version: 1.0.4
|
|
|
|
|
*/
|
|
|
|
|
|
2024-10-05 09:11:13 +03:00
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
public class CameraShake : MonoBehaviour
|
|
|
|
|
{
|
|
|
|
|
private Transform camTransform;
|
|
|
|
|
private float shakeDuration = 1f, shakeAmount = 0.04f, decreaseFactor = 1.5f;
|
|
|
|
|
private Vector3 originPosition;
|
|
|
|
|
|
|
|
|
|
private void Start()
|
|
|
|
|
{
|
|
|
|
|
camTransform = GetComponent<Transform>();
|
|
|
|
|
originPosition = camTransform.localPosition;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void Update()
|
|
|
|
|
{
|
|
|
|
|
if(shakeDuration > 0)
|
|
|
|
|
{
|
2025-05-12 05:50:37 +03:00
|
|
|
|
//Случайное значение внутри сферы с радиусом 1
|
2024-10-05 09:11:13 +03:00
|
|
|
|
camTransform.localPosition = originPosition + Random.insideUnitSphere * shakeAmount;
|
|
|
|
|
shakeDuration -= Time.deltaTime * decreaseFactor;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
shakeDuration = 0;
|
|
|
|
|
camTransform.localPosition = originPosition;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|