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 girhor · Aug 21, 2016 at 01:20 AM · 2d-platformertransform.translatelocalscale

localScale affecting transform.translate in Unity 5.4.0?

Hi there, I'm using localScale to change the direction my player animation is facing, given the axis direction. i.e, If player press left arrow, localScale = new vector3(-1,1,1); if player press right, localScale = new vector3(1,1,1) .

On Unity 5.3 I then used transform.translate(vector.right*speed) to move character right and vector.left to move character left. All worked fine then. Since I installed Unity 5.4, the direction of translate is affected by localScale, i.e., when localScale = -1,1,1 (player face left), and I translate with vector.left, the gameobject moves right, instead of left. If I remove the negative scale, movement works again (gameobject goes to left).

Have anyone noticed this, and if so, any tips on how to fix it (or should I assume this is default behaviour for Unity from now on and should just multiply the direction vector by the localScale)?

Thank you!!

Mark

Comment
Add comment · Show 1
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 kidastudio · Aug 21, 2016 at 11:31 AM 0
Share

Same here...

Need Explanation please..

Thank You, Viky

2 Replies

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by OsmiousH · Aug 21, 2016 at 02:23 PM

Dear @girhor and @kidastudio

In unity 5.4 If you flip the Local scale You flip the transforms

Left Will change to Right

Get It!

so a quick fix is

 //JS
 
   if(Input.GetKey("left")){
     if(transform.LocalScale > 0){
       transform.Translate(0,0,-1); 
     }
     else{
       transform.Translate(0,0,1);
     }
   }
   if(Input.GetKey("right")){
     if(transform.LocalScale > 0){
       transform.Translate(0,0,1); 
     }
     else{
       transform.Translate(0,0,-1);
     }
   }

This new script will change the transform according to local scale

PLZ inform me about any bugs


left.png (4.3 kB)
right.png (4.1 kB)
Comment
Add comment · 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
0

Answer by maltadirk · Sep 24, 2016 at 02:34 PM

Hi all,

So the transform happen with both test codes that follow, however on moving left its like his doing a moonwalk. Again this problem started specifically on v5.4. Could it be something changes with the Animator? It looks different.

Test 1:

 Vector3 thisScale = this.transform.localScale;
 thisScale.x *= -1;
 this.transform.localScale = thisScale;

Test 2:

 if (facingRight) // RIGHT
 {
     transform.eulerAngles = new Vector3 (0, 0, 0);
 }
 else
 {
     transform.eulerAngles = new Vector3 (0, 180, 0);
 }

Comment
Add comment · 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

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

69 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

Related Questions

2D Unity 5.3.2f1: Problems with lighting & multiplying transform.localScale 0 Answers

Resetting my cannon fire to its original transform 0 Answers

How do I retrieve my Images(filename based ex. hero w/o extension ) in sqlite and change it's texture in different rawImages? 0 Answers

2D jump sound not working. 1 Answer

How to make a player input a sequence to activate a door/trigger? 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