void FixedUpdate() { states.FixedTick(); HandleInput(); UpdateStates(); hMove.Tick(); HandleShake(); //Find where camera is looking Ray ray = new Ray(camTrans.position, camTrans.forward); states.lookPosition = ray.GetPoint(20); RaycastHit hit; Debug.DrawRay(ray.origin, ray.direction, Color.blue); if (Physics.Raycast(ray.origin, ray.direction, out hit, 100, shotLayerMask)) { states.lookHitPosition = hit.point; if (hit.transform.gameObject.layer == LayerMask.NameToLayer("Shootable")) { crosshair.SetColor(Color.red); } else { crosshair.SetColor(Color.white); } } else { states.lookHitPosition = states.lookPosition; crosshair.SetColor(Color.white); } //Check for obstacles in front of camera CameraCollision(camLayerMask); //Update camera's postion curZ = Mathf.Lerp(curZ, actualZ, Time.deltaTime * 15); camTrans.localPosition = new Vector3(cameraNormalX, cameraNormalY, curZ); }