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 Humblebee88 · Mar 06, 2014 at 12:49 AM · movementspaceship

Forward movement rotated on movement script?

I'm trying to make a movement script for a space ship, and I'm new to javascript in general so I'm sorry if this is a noob question.

I'm having an issue where my ships forward orientation gets rotated after I make a hard turn. My ship will start moving horizontally in relationship to the ships initial forward vector. I am losing my mind trying to figure it out. Does anyone have any idea what might be causing this? Any help would be much appreciated!

here's the script

 #pragma strict
 
 private var moveDirection : Vector3;
 private var horzMoveRotation : float;
 private var vertMoveRotation : float;
 private var shipSpeed : float = 40;
 private var horizonalturnspeed : float = 60;
 private var verticalturnspeed : float = 60;
 private var haveMinAngle : boolean = false;
 private var target : float = 0;
 private var Rrolltarget : float = -50;
 private var Lrolltarget : float = 50;
 private var rollspeed : float = 40;
 //var looktarget : Transform;
 
 function FixedUpdate()
 {
     //movement speed
     //var shipDirection: Vector3 = (looktarget.position - tansform.position);
     moveDirection = Vector3(0, 0,1);
     moveDirection = transform.TransformDirection(moveDirection);
     moveDirection *= shipSpeed;
     transform.Translate(moveDirection*Time.deltaTime);
     
     //steering
     horzMoveRotation = Input.GetAxis ("Horizontal") * horizonalturnspeed;
     vertMoveRotation = Input.GetAxis ("Vertical") * horizonalturnspeed;
     horzMoveRotation *= Time.deltaTime;
     vertMoveRotation *= Time.deltaTime;
     transform.Rotate (vertMoveRotation,horzMoveRotation,0);    
     
     //reset roll
     if(Input.GetAxis ("Horizontal") == 0)
      {
           var turnAngle : float = Mathf.MoveTowardsAngle(transform.eulerAngles.z, target,rollspeed * Time.deltaTime);
           transform.eulerAngles = Vector3(transform.eulerAngles.x,transform.eulerAngles.y,turnAngle);
      }
      //print ("horizontal axis" +(Input.GetAxis ("Horizontal")));
      
      //roll right
      if(Input.GetAxis ("Horizontal") > 0)
      {
          var rTurnAngle : float = Mathf.MoveTowardsAngle(transform.eulerAngles.z, Rrolltarget,rollspeed * Time.deltaTime);
          transform.eulerAngles = Vector3(transform.eulerAngles.x,transform.eulerAngles.y,rTurnAngle);
      }
      
      //roll left
      if(Input.GetAxis ("Horizontal") < 0)
      {
          var lTurnAngle : float = Mathf.MoveTowardsAngle(transform.eulerAngles.z, Lrolltarget,rollspeed * Time.deltaTime);
          transform.eulerAngles = Vector3(transform.eulerAngles.x,transform.eulerAngles.y,lTurnAngle);
      }
 }
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 robertbu · Mar 06, 2014 at 12:53 AM 0
Share

In a quick read the only thing that jumped out at me is that you are doing your turning after you move your object forward. How about moving lines 25 - 30 above line 18.

avatar image Humblebee88 · Mar 06, 2014 at 12:57 AM 0
Share

I tried that and it didn't work...

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

20 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

Related Questions

How do I create a spaceship 1 Answer

Platform Mover continued 1 Answer

swipe movement script like in subway surfer 0 Answers

I am trying to make a movement script for my main camera but it isnt working! 2 Answers

Issues with C# script (using tutorial) 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