37 lines
1.0 KiB
C#
37 lines
1.0 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace Saltosion.OneWeapon.Effects {
|
|
public class Bobbing : MonoBehaviour {
|
|
|
|
public Transform BobbedTransform;
|
|
|
|
[Range(0, 1)]
|
|
public float BobbingMultiplier = 1;
|
|
public float BobbingGravity = 0.8f;
|
|
public float BobbingLaunchSpeed = 0.12f;
|
|
|
|
public float BobbingFrequency = 0;
|
|
|
|
public Vector2 BobbingDirection = new Vector2(0, 1);
|
|
|
|
private float BobbingSpeed;
|
|
|
|
private float CurrentBobbingState = 0;
|
|
|
|
void Update() {
|
|
BobbingFrequency = (BobbingLaunchSpeed * 2) / BobbingGravity;
|
|
|
|
BobbingSpeed -= (BobbingGravity / 10 * Time.deltaTime);
|
|
if (CurrentBobbingState <= 0) {
|
|
BobbingSpeed = (BobbingLaunchSpeed / 10);
|
|
}
|
|
CurrentBobbingState += BobbingSpeed * BobbingMultiplier * Time.deltaTime * 100.0f;
|
|
|
|
BobbedTransform.localPosition = BobbingDirection * CurrentBobbingState * BobbingMultiplier;
|
|
|
|
}
|
|
}
|
|
}
|