added gun models and enemy spawner

This commit is contained in:
2026-02-11 16:21:45 +00:00
parent 2d70da4827
commit 50968843e5
16 changed files with 1372 additions and 189 deletions

View 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
);
}
}
}