Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
0
Question by Meorge · Feb 04, 2017 at 06:35 PM · cameramousecamera-movementcamera rotate

Camera controls not working quite right

Hi Unity Answers,

For one of my first Unity games, I'm trying to make a game that involves a first-person view, where the mouse can be moved to look around. This is my player script currently (with some unnecessary info removed): using UnityEngine; using System.Collections;

 public class Player : MonoBehaviour {
     public Camera playerCamera;
     public float cameraRotationSpeed = -5f;

     // Use this for initialization
     void Start () {
     }
 
     // Update is called once per frame
     void Update () {
         Vector3 cameraVectorWithoutY = new Vector3 (playerCamera.transform.forward.x, playerCamera.transform.forward.y, playerCamera.transform.forward.z);
         Vector3 newCameraVector = new Vector3 (transform.forward.x, playerCamera.transform.forward.y, transform.forward.z);
         playerCamera.transform.forward = newCameraVector;
         transform.forward = cameraVectorWithoutY; // Tells the player, "OK, the way the camera is facing is forward now!"
         moveCameraByMouse ();
     
     }
 
     void moveCameraByMouse() {
         float mouseMovementX = Input.GetAxis ("Mouse X");
         float mouseMovementY = Input.GetAxis ("Mouse Y");
         playerCamera.transform.Rotate (mouseMovementY * (-0.2f) * cameraRotationSpeed, mouseMovementX * cameraRotationSpeed, 0f);
 
         float desiredAngle_X = playerCamera.transform.eulerAngles.x;
         float desiredAngle_Y = playerCamera.transform.eulerAngles.y;
 
         Quaternion quaternion_rot = Quaternion.Euler (desiredAngle_X, desiredAngle_Y, 0);
     }
 }


If the y value in cameraVectorWithoutY is set to 0f, attempting to look up or down is buffered, and the camera slowly centers back to looking straight forward. If the y value is simply playerCamera.transform.forward.y (as it is here) the camera becomes more prone to "fall" up or down, instead of staying looking forward.

Does anyone have any idea what the issue is here, and how I can fix it? Thanks!

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

118 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Relative movement isn't changing based on camera orientation. 0 Answers

I cannot move my camera in the Game mode 0 Answers

CineMachine Camera Movement is inverse 1 Answer

Make the camera rotate around the player and face the player. 1 Answer

Make Camera follow rotation of 2 Players 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges