added gun models and enemy spawner
This commit is contained in:
54
Assets/Scripts/WeaponBob.cs
Normal file
54
Assets/Scripts/WeaponBob.cs
Normal file
@@ -0,0 +1,54 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class WeaponBob : MonoBehaviour
|
||||
{
|
||||
[Header("Bob Settings")]
|
||||
public float bobFrequency = 10f;
|
||||
public float bobHorizontalAmplitude = 0.05f;
|
||||
public float bobVerticalAmplitude = 0.03f;
|
||||
|
||||
[Header("Sprint Multiplier")]
|
||||
public float sprintBobMultiplier = 1.5f;
|
||||
|
||||
[Header("Smoothing")]
|
||||
public float returnSpeed = 6f;
|
||||
|
||||
private Vector3 originalLocalPos;
|
||||
private float bobTimer = 0f;
|
||||
private CharacterController controller;
|
||||
|
||||
void Start()
|
||||
{
|
||||
originalLocalPos = transform.localPosition;
|
||||
controller = GetComponentInParent<CharacterController>();
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (controller == null) return;
|
||||
|
||||
// Check if the player is moving on the ground
|
||||
Vector3 horizontalVelocity = new Vector3(controller.velocity.x, 0f, controller.velocity.z);
|
||||
bool isMoving = horizontalVelocity.magnitude > 0.5f && controller.isGrounded;
|
||||
|
||||
if (isMoving)
|
||||
{
|
||||
float multiplier = Input.GetKey(KeyCode.LeftShift) ? sprintBobMultiplier : 1f;
|
||||
bobTimer += Time.deltaTime * bobFrequency * multiplier;
|
||||
|
||||
float bobX = Mathf.Sin(bobTimer) * bobHorizontalAmplitude * multiplier;
|
||||
float bobY = Mathf.Sin(bobTimer * 2f) * bobVerticalAmplitude * multiplier;
|
||||
|
||||
transform.localPosition = originalLocalPos + new Vector3(bobX, bobY, 0f);
|
||||
}
|
||||
else
|
||||
{
|
||||
bobTimer = 0f;
|
||||
transform.localPosition = Vector3.Lerp(
|
||||
transform.localPosition,
|
||||
originalLocalPos,
|
||||
Time.deltaTime * returnSpeed
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user