Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 11 Next capture
2021 2022 2023
1 capture
11 Jun 22 - 11 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 /
This question was closed Jul 23, 2015 at 08:37 PM by animeman0 for the following reason:

Other

avatar image
0
Question by animeman0 · Jul 23, 2015 at 12:31 PM · animationmovementvelocity

error CS0019: trying to increase velocity when key is pressed twice in quick succession

Hello there,

In my game when the user presses the d key in quick succession I want the speed of the player to increase and it to change animation.

However I get this error: Assets/Scripts/PlayerController.cs(29,26): error CS0019: Operator &&' cannot be applied to operands of type float' and `bool'

 using UnityEngine;
 using System.Collections;
 
 public class PlayerController : MonoBehaviour {
 
     public float maxSpeed = 0.5f;
     public float sprintSpeed = 2f;
     bool facingRight = true;
     
     Animator anim;
     Rigidbody2D rb;
 
     bool buttonPressed = false;
     float buttonDelay = 0.5f;
 
     void Start()
     {
         anim = GetComponent<Animator>();
         rb = GetComponent<Rigidbody2D> ();
     }
 
     void FixedUpdate()
     {
         float move = Input.GetAxisRaw ("Horizontal"); //how much we are moving
         
         anim.SetFloat ("Speed", Mathf.Abs (move));
         rb.velocity = new Vector2 (move * maxSpeed, GetComponent<Rigidbody2D>().velocity.y);
         buttonPressed = true;
         if(Input.GetAxisRaw ("Horizontal") && buttonPressed = true)
         {
             anim.SetBool("isRunning",true);
             rb.velocity = new Vector2 (move * sprintSpeed, GetComponent<Rigidbody2D>().velocity.y);
         }
 
         if (move > 0 && !facingRight) //if moving left and not facing left
             Flip (); //flip
         else if (move < 0 && facingRight) //if moving to the right and not facing right
             Flip (); //flip
     }
 
     void Flip()
     {
         facingRight = ! facingRight; // flips the character
         Vector3 theScale = transform.localScale; //flips the local scale
         theScale.x *= -1; //flip the x axis 
         transform.localScale = theScale; //apply all of this back to the local scale
     }
 
 }
 


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 capnjake · Jul 23, 2015 at 01:28 PM 0
Share

What I would do is have a timer that counts down every time the key is pressed and if that timer is > 0, add force/set velocity to the object. Then you'd just have to reset the timer accordingly. Just a thought. Your way feels more complicated than it needs to be imo.

avatar image animeman0 · Jul 23, 2015 at 01:50 PM 0
Share

thank you!

1 Reply

  • Sort: 
avatar image
1
Best Answer

Answer by RLin · Jul 23, 2015 at 08:15 PM

buttonPressed = true needs to be changed to buttonPressed == true. The single equals is changing a value, which should not be done in an if statement. The double equals is comparing them. In addition, you could completely leave out the "== true" and just have buttonPressed, because it is a bool.

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

Follow this Question

Answers Answers and Comments

23 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

Related Questions

Getting animations to play relative to player's direction? 4 Answers

How To Lock Direction While Jumping? 1 Answer

How can I add Animation to this player movement script? or do I have to create a totally new one? 0 Answers

How to get 'real' velocity of an object and not the input velocity? 2 Answers

Stopping an object immediately 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