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 Opotchtli · Aug 20, 2014 at 03:35 AM · timeractionscript

how do you disable a key for 5 seconds?

I want to disable the key S for just 5 seconds, so if you press the S once do an action and within those 5 seconds if you press the S again it won't do anything here's my code

     float cuenta = 5.0f;
     if(Input.GetKeyDown(KeyCode.S) && _instancia == false)
     {
         cuenta -= Time.deltaTime;
         _instancia = true;
         Debug.Log(_instancia);
         if(cuenta <= 0.0f)
         {
             _instancia = false;
             cuenta = 5.0f;
             Debug.Log(_instancia);
         }
     }
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

2 Replies

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

Answer by msnyder102 · Aug 20, 2014 at 04:24 AM

 float lastTime;
 void Start(){
  lastTime = Time.Time;
 }

 void Update(){
 if(Input.GetKeyDown(KeyCode.S) && (Time.Time - lastTime > 5.0f)){
     DoSomething();
     lastTime = Time.Time;
 }}

Is how I would probably do it.

Comment
Add comment · Show 3 · 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 Opotchtli · Aug 20, 2014 at 04:43 PM 0
Share

this works as this _instancia = Input.Get$$anonymous$$eyDown ($$anonymous$$eyCode.S); if(Input.Get$$anonymous$$eyDown($$anonymous$$eyCode.S) && (Time.time - lastTime > 5.0f)) { Debug.Log(_instancia); lastTime = Time.time; }

but as soon I added the next code it stops working as I want

_instancia = Input.Get$$anonymous$$eyDown ($$anonymous$$eyCode.S); if(Input.Get$$anonymous$$eyDown($$anonymous$$eyCode.S) && (Time.time - lastTime > 5.0f)) { Debug.Log(_instancia); GameObject charScout = (GameObject)Instantiate (this.gameObject, this.transform.localPosition, Quaternion.identity); charScout.renderer.material.color = Color.grey; this.rigidbody2D.is$$anonymous$$inematic = true; this.GetComponent ().enabled = false; Destroy(charScout,5); lastTime = Time.time; }

avatar image Opotchtli · Aug 20, 2014 at 06:19 PM 0
Share

thanks guys! msnyder102, your code works but it doesn't allow me to get an input the first 5 seconds of the game and copypasteearth, your code do the same thing as $$anonymous$$e xD but you both help me a lot, thank you very much!

avatar image msnyder102 · Aug 20, 2014 at 07:44 PM 0
Share

change lastTime = Time.Time in the Start() function to something like lastTime = -5.0f; that should allow you to use it right away

avatar image
0

Answer by copypasteearth · Aug 20, 2014 at 04:24 AM

use Time to keep track and put it in your if statement, something like this

 float cuenta = 5.0f;
 float timer = 0f;
     if(Input.GetKeyDown(KeyCode.S) && _instancia == false && Time.time > timer + 5)
     {
         cuenta -= Time.deltaTime;
         _instancia = true;
         Debug.Log(_instancia);
         if(cuenta <= 0.0f)
         {
             _instancia = false;
             cuenta = 5.0f;
             Debug.Log(_instancia);
         }

         timer = Time.time;
     }
Comment
Add comment · Show 1 · 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 Syviery · Aug 20, 2014 at 05:12 PM 0
Share

Just so you know, their variable cuenta is actually Spanish and is equivalent to timer meaning in this script you technically have 2 timers.

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

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

How do you save timer with PlayerPrefs? 1 Answer

Can't activate my timer for shooting script? 2 Answers

How to stop a countdown from counting down 1 Answer

Destroy happens immediately 1 Answer

For loop resetting itself, but needs to stop 2 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