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 xeonheart · Aug 30, 2018 at 09:34 PM · c#animationanimation script

change animation direction

Hello,

this is probably simple for all the pros out there... yes i am a noob :(

anyways, 2 things actually, 1. i am trying to change the direction depending on the input of the player, if right (either arrow right, letter D etc.), then use this animation because i have an animation for right. if left arrow or A etc., turn direction left.

i do have this code below:

         if (Input.GetKeyDown(KeyCode.D))
         {
             animator.SetBool("isLeft", false);
             Debug.Log("turn right");
         }
         if (Input.GetKeyDown(KeyCode.A))
 
         {
             animator.SetBool("isLeft", true);
             Debug.Log("turn left");
         }


and this works great, except, its only for Keyboard A, i want it to work for of course any other input, whether it be for android, xbox etc.,

however, when i try and change it to this:

         if (Input.GetKeyDown("left"))
         {
             animator.SetBool("isLeft", false);
             Debug.Log("turn right");
         }
         if (Input.GetKeyDown("right"))
 
         {
             animator.SetBool("isLeft", true);
             Debug.Log("turn left");
         }


this doesnt work, am i missing something? no error messages, i dont even see in the debug console screen so i am doing something simple and wrong... but what?

also, my animation to the right seems slower than the left... is there something i can check for in either the code or the animation properties?

thanks in advance :)

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

1 Reply

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

Answer by JVene · Aug 30, 2018 at 10:36 PM

Getting input is a complex study, with lots to consider. Too much, in fact, for a post here to contain.


That said, for GetKeyDown you should avoid the string names for input. They're slower. Use the keycodes found in the documentation here. I believe "left" should be "leftarrow", or something like that (I don't use the strings much to remember), which is likely why that version doesn't work.


If you're interested in a more advanced approach that offers certain benefits, you might investigate EventType.KeyDown, which of course will have you searching and studying related concepts. One of the issues with GetKeyDown is the fact that it is queued by Unity for use when Update fires, and that means you have to check for each potential key of interest. EventType.KeyDown can be used to fashion a method that determines what key is pressed, from which you can take action. It is the reverse perspective, and very useful (but it is a bit more complex to implement).


You may also be interested in the documentation on Input.GetAxis, as that does 'mutate' based on platform, though it may not support the specific user interface concepts you prefer.


To take control of input, you have to consider the platform. It doesn't make too much sense to try to fashion one 'uber method' that fits all platforms, because you'll generally end up checking for keys on a mobile device that will never be used, and on other platforms you'll be checking for input from sources that don't exist.


You should consider searching for the C# subject "delegates", and learn how to use them. At the risk of oversimplifying, a delegate represents a method using a variable. Your code can call the delegate, so that part of your code does not change. However, the delegate can be assigned to any matching method, which means you can configure the delegate based on which platform your application is running on. In this way you'd fashion a method specifically for the PC, another for mobile, another for consoles, as you see fit. At program initialization you inquire to determine what platform the application is on, and configure the delegate to point to the appropriate method for the type of input you require. This way you can support all forms of input for each platform, but avoid wasting time and over complicating code trying to force all of that to fit into just one sprawling bunch of code.


Comment
Add comment · Show 2 · 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 xeonheart · Aug 30, 2018 at 11:17 PM 1
Share

awesome big thanks @JVerne for your input, definitely now understand that i was doing something right :) but now you open a new door for me to explore and big thanks to you on that, i will definitely want to study that as writing good code so i wont have to keep repeating the same thing over and over :)

that being said, just 1 more question if you or anyone else doesnt $$anonymous$$d, GetButtonDown vs Input.GetAxis, which would you prefer, if its a performance, or maybe its really a style preference?

avatar image JVene xeonheart · Aug 30, 2018 at 11:38 PM 0
Share

@xeonhart, Using GetAxis is more about feature. GetAxis somewhat "automatically" adapts such that on a PC, the mouse provides input, along with the arrows, maybe even a gamepad if you have one. On mobile, I don't recall exactly, but it adapts to maybe some gyro/accelerometer/screen-touch control. You get horizontal and vertical axis numbers from two calls that cover what you need 4 button checks to do. Would you $$anonymous$$d considering either upvote or accepting the answer? It's kindof how the site does it's thing.

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

606 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 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 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 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 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 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 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

Distribute terrain in zones 3 Answers

How would I switch between 2 animation states connected to 1 state under input? 0 Answers

Multiple Cars not working 1 Answer

Even / Constant Speed and Jumping 2D 1 Answer

crossfade animation not running correctly ,only getting to the first frame from 5 frames then the animation freeze and not looping 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