Object doesn't stick on Camera right Corner?? (Basic Question)

Hello:), So i move an object close to the player (like a flashlight) And then i drag the object to the maincamera hoping that this object moves along with the camera. But when i do this, the object has a weird behaviour. When I move my view playing the game in the “y” axis rotation(looking to the left/right) the object looks fine, but when i look up, the object goes away, and when i look down the same…
I just whant that the object stick to the camera and goes where i look like in a normal first person game.(Like the movement of the gun in a shooter, or a torch/flashlight in horror games, etc) Any ideas?

  1. An image showing the problem:

2)Main Camera Settings:

  1. My MouseLook Script:

    using UnityEngine;
    using System.Collections;

    /// MouseLook rotates the transform based on the mouse delta.
    /// Minimum and Maximum values can be used to constrain the possible rotation

    /// To make an FPS style character:
    /// - Create a capsule.
    /// - Add the MouseLook script to the capsule.
    /// → Set the mouse look to use LookX. (You want to only turn character but not tilt it)
    /// - Add FPSInputController script to the capsule
    /// → A CharacterMotor and a CharacterController component will be automatically added.

    /// - Create a camera. Make the camera a child of the capsule. Reset it’s transform.
    /// - Add a MouseLook script to the camera.
    /// → Set the mouse look to use LookY. (You want the camera to tilt up and down like a head. The character already turns.)
    [AddComponentMenu(“Camera-Control/Mouse Look”)]
    public class MouseLook : MonoBehaviour {

     public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 }
     public RotationAxes axes = RotationAxes.MouseXAndY;
     public float sensitivityX = 15F;
     public float sensitivityY = 15F;
    
     public float minimumX = -360F;
     public float maximumX = 360F;
    
     public float minimumY = -60F;
     public float maximumY = 60F;
    
     float rotationY = 0F;
    
     void Update ()
     {
     	if (axes == RotationAxes.MouseXAndY)
     	{
     		float rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityX;
     		
     		rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
     		rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
     		
     		transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0);
     	}
     	else if (axes == RotationAxes.MouseX)
     	{
     		transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivityX, 0);
     	}
     	else
     	{
     		rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
     		rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
     		
     		transform.localEulerAngles = new Vector3(-rotationY, transform.localEulerAngles.y, 0);
     	}
     }
     
     void Start ()
     {
     	// Make the rigid body not change rotation
     	if (rigidbody)
     		rigidbody.freezeRotation = true;
     }
    

    }

Alright, this is what I do. I just apply the MouseLook script onto the Flashlight and it works for me (I’ve done this with others things when i had this issue)