Hello:), So i move an object close to the player (like a flashlight) And the i drag the object to the maincamera hoping that this object moves along 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?
You are probably using the first person controller. The rotate is on the controller, but the up and down are from the camera. If you parent it to the camera, it should stay in view.
The flashlight object is parented to the camera, thats why i don’t understand why it doesn’t follow it normally. the up and down moves the object away from the camera. This is how i have the flashlight object attached to the camera:

All I can think is it’s something to do with the mouselook script. Try changing the rotation of the camera in the editor and see if the object stays in view. Remember a down rotation may put it under the ground. It shouldn’t go out of view if the camera is rotated.
Maybe an image helps you to figure out the problem:)
MouseLook Script:
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;
}
}
Main Camera Settings:
I know this is an old thread, but I was wondering if someone found a way to fix this particular issue.
I have a similar problem.
Thanks.

