Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 Greed · Jul 01, 2013 at 11:46 PM · camerarotationlerporbit

Mouse Orbit snapping issues

Hello, I was wondering how to possibly fix a problem we have been having with the mouse orbit script. Here's the situation:

We have a cannon that rotates and aims up and down using the mouse look scripts. When it has been aimed, clicking the left mouse button fires a sphere with a rigidbody attached from the end of the cannon barrel. Right now we have it so the main camera is initially a child of the cannon so that it's looking down the barrel whenever it's rotated, but when the sphere is fired, we unparent it from the cannon and set the sphere as the target for the main camera in the Mouse Orbit script. The only issue is that when this occurs, the camera snaps to an initial side view instead of just snapping forward a bit to be behind the ball following it through the air.

We did mess with the Mouse Orbit script a bit and now it only snaps to a TOP down view whenever the barrel of the cannon is not horizontal with the ground (i.e. it is being fired at an angle into the air).

We were wondering if anyone else has had this issue before and what could be done to fix the script for this purpose.

EDIT: Here is a video that shows the issue. I have also provided the slightly modified script below.

Link to video

 var target : Transform;
 
 var snapPoint : Transform;
 
 var canFollow : boolean;
 
 var firstSet : boolean;
 
 var distance = 40.0;
 
 var xSpeed = 250.0;
 var ySpeed = 120.0;
 
 var yMinLimit = -20;
 var yMaxLimit = 80;
 
 private var x = 0.0;
 private var y = 0.0;
 
 @script AddComponentMenu("Camera-Control/Mouse Orbit")
 
 function Start () {
 
     canFollow = false;
     
     firstSet = true;
 
     // Make the rigid body not change rotation
        if (rigidbody)
         rigidbody.freezeRotation = true;
 }
 
 function LateUpdate () {
     if (target && canFollow) {
     
         if(firstSet){
         
             firstSet = false;
 
             transform.rotation = snapPoint.rotation;
             transform.position = snapPoint.position;
             
             var angles = transform.eulerAngles;
             x = angles.y;
             y = angles.x;
         }
         else{
         
             x += Input.GetAxis("Mouse X") * xSpeed * 0.02;
             y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02;
              
              y = ClampAngle(y, yMinLimit, yMaxLimit);
              
             var rotation = Quaternion.Euler(y, x, 0);
             var position = rotation * Vector3(0.0, 0.0, -distance) + target.position;
             
             transform.rotation = rotation;
             transform.position = position;
         }
     }
 }
 
 static function ClampAngle (angle : float, min : float, max : float) {
     if (angle < -360)
         angle += 360;
     if (angle > 360)
         angle -= 360;
     return Mathf.Clamp (angle, min, max);
 }
 
 
 
 
 function SetFollow(other : Transform){
     
     canFollow = true;
 }


Comment
Add comment · Show 2
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 Tsurugi21 · Jul 02, 2013 at 02:54 AM 0
Share

Your question is not very clear... :/ a video to explain your problem would definitly help us to answer you

avatar image Greed · Jul 24, 2013 at 07:29 PM 0
Share

I edited the question with a link to a video. Sorry for taking so long.

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

16 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

Related Questions

Rotate camera outside of movement lerp? 0 Answers

Return Camera Rotation Z axis to 0 2 Answers

Mouse Orbit snapping issues 0 Answers

Smooth camera 90 degree rotation around target 1 Answer

Transition current camera rotation to 0,0,0 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