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 GameCherry · Mar 01, 2011 at 08:46 PM · camerajavascriptmovementdirection

Camera Orbit Changing Characters Direction, How? How To Stop It?

I was using a mouse rotation script(camera orientation - left & right) with my 3rd person controller & everything was working well. In my short sightedness, I didnt realize that without a way of orienting the camera up & down - my character couldnt aim his weapon effectively. So, I ditched my camera rotation script for a camera orbit script instead & now the player can aim all over the screen(mostly). The problem now is - when I'm moving the player via the WASD keys in conjuction with the mouse(camera orbit) - the mouse is changing the direction of the character. For example: if the character is walking in a straight line, instead of the mouse just revolving around the him it forces him to the left or right(depending on which way I move the mouse).

Could someone please explain to me what part of this code is doing this & any way of possibly remedying it?

var target : Transform; var distance = 10.0; var xSpeed = 50.0; var ySpeed = 50.0; var yMinLimit = -20;

var yMaxLimit = 80; var distanceMin = 3; var distanceMax = 15;

private var x = 0.0;

private var y = 0.0;

@script AddComponentMenu("Camera-Control/Mouse Orbit")

function Start () { var angles = transform.eulerAngles; x = angles.y; y = angles.x;

}

//Hide the cursor & keep it centered

function LateUpdate () { Screen.lockCursor = true;

//Release & reveal cursor

if (Input.GetKeyDown ("escape")) Screen.lockCursor = false;

if (Input.GetButton ("Fire2")) {

pl01 = GameObject.Find("player01");

moveDirection = transform.TransformDirection(Vector3.forward);

pl01.transform.rotation = Quaternion.LookRotation(moveDirection); }

if (target) { x += Input.GetAxis("Mouse X") xSpeed distance* 0.02; y -= Input.GetAxis("Mouse Y") ySpeed 0.02;

y = ClampAngle(y, yMinLimit, yMaxLimit);

 var rotation = Quaternion.Euler(y, x, 0);

 distance = Mathf.Clamp(distance - Input.GetAxis("Mouse ScrollWheel")*5, distanceMin, distanceMax);

 var hit : RaycastHit;
 if (Physics.Linecast (target.position, transform.position, hit)) {
         distance -=  hit.distance;
 }

 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); }

Thank you for your time, I appreciate any & all help I can get.

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

No one has followed this question yet.

Related Questions

Set Max Rotation On Weapon Sway 0 Answers

How to turn two scripts on/off with a button 1 Answer

Moving Camera only when player crosses a point 2 Answers

i want my plane to fly in camera direction where head is facing (i am newb)please suggest some changes and better method 0 Answers

(2d in 3d) Movement relative to camera using JS 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