using UnityEngine; public class PlayerMovement : MonoBehaviour { public float moveSpeed = 5f; public float mouseSensitivity = 100f; public Transform playerBody; public Camera playerCamera; float xRotation = 0f; void Start() { Cursor.lockState = CursorLockMode.Locked; } void Update() { // Mouse look float mouseX = Input.GetAxis("Mouse X") * mouseSensitivity * Time.deltaTime; float mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity * Time.deltaTime; xRotation -= mouseY; xRotation = Mathf.Clamp(xRotation, -90f, 90f); playerCamera.transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f); playerBody.Rotate(Vector3.up * mouseX); // WASD Movement float x = Input.GetAxis("Horizontal"); float z = Input.GetAxis("Vertical"); Vector3 move = transform.right * x + transform.forward * z; transform.Translate(move * moveSpeed * Time.deltaTime, Space.World); } } using UnityEngine; public class Gun : MonoBehaviour { public float damage = 10f; public float range = 100f; public Camera fpsCam; public ParticleSystem muzzleFlash; void Update() { if (Input.GetButtonDown("Fire1")) { Shoot(); } } void Shoot() { muzzleFlash.Play(); RaycastHit hit; if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out hit, range)) { Debug.Log("Hit " + hit.transform.name); // Here you can deal damage if the object has a health script } } }