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 /
avatar image
0
Question by NovaDrox · Feb 24, 2017 at 02:12 AM · cameracamera rotateclampclamped rotation

I can't figure out how to clamp it

I can't figure out how to clamp my camera rotation.

     float CurY = Input.GetAxisRaw("Mouse X");
     Vector3 RotateY = new Vector3(0f, CurY, 0f) * TurnSpeed;

     float CurX = Input.GetAxisRaw("Mouse Y");

     Vector3 RotateX = new Vector3(CurX, 0f, 0f) * TurnSpeed;

     var cam = Cam.transform.rotation;

     transform.Rotate(RotateY);
     Cam.transform.Rotate(-RotateX);

     cam.x = Mathf.Clamp(cam.x, -AngleLimit, AngleLimit);
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

2 Replies

· Add your reply
  • Sort: 
avatar image
1

Answer by hrgchris · Feb 24, 2017 at 02:34 PM

You're hitting 2 problems:

  • you are reading the camera rotation (line 8), but not writing it back to the camera (line 12 just modifies the value you read)

  • even if you were reading/writing it, the 'rotation' value is a quaternion. I think you're probably thinking about the eulerAngles property as in the previous answer. However you'd still need to write it back.

I would try something like this:

      Vector3 RotateX = new Vector3(CurX, 0f, 0f) * TurnSpeed;
      transform.Rotate(RotateY);
      Cam.transform.Rotate(-RotateX);
 
      Vector3 cam_rotation = Cam.transform.eulerAngles;
      cam_rotation.x = Mathf.Clamp(cam_rotation.x, -AngleLimit, AngleLimit);
      Cam.transform.eulerAngles = cam_rotation;

As an extra note, simply clamping angles doesn't always yield the expected result, and I can't tell what that is from your code. However what I've provided above should certainly limit the value that the x component of the camera's eulerAngles property can take on.

Comment
Add comment · Show 3 · Share
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
avatar image NovaDrox · Feb 24, 2017 at 03:51 PM 0
Share

I tried it and it did clamp it, but I couldn't even rotate on the x axis.

avatar image hrgchris NovaDrox · Feb 24, 2017 at 03:56 PM 0
Share

Then I would suggest you put in lots of Debug.Log calls throughout your code and print out the various variables involved.

I would start by printing out RotateX, cam_rotation (before/after changing it), TurnSpeed and AngleLimit. Presumably some of those numbers aren't changing how they should. When you find the one that's wrong, you've fixed your bug!

avatar image NovaDrox hrgchris · Feb 24, 2017 at 03:58 PM 0
Share

Okay and thank you for the help.

avatar image
0

Answer by NGC6543 · Feb 24, 2017 at 08:31 AM

cam is in fact Quaternion. Probably what you intended to do was cam.eulerAngles.x

Comment
Add comment · Show 1 · Share
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
avatar image NovaDrox · Feb 24, 2017 at 01:53 PM 0
Share

I put that in and I get an error saying its not a variable.

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

91 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

Related Questions

How to Math.f Clamp this 0 Answers

Bizzare problem with limiting camera veritcal rotation 2 Answers

Clamp horizontal rotation based on current direction 0 Answers

Clamping RotateAround 1 Answer

Rotating and orbiting an game object with a stop angle 0 Answers


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