• 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 GeneGene28 · Jun 19, 2015 at 07:48 AM · buttontimepress

Checking to see how many times a button was pressed in a certain amount of time?

I'm working on a fairly simple Hide & Seek game. In the game when a person that is hiding comes out to run to another hiding place, I want the player to try and tag them. When the player is close to the person, I want them to start tapping a button to get even closer and tag them. The button tapping should pull the player in closer or push them back depending on how fast the button is pressed.

I'm using a square (Player) and a triangle (NPC) to test this out. The triangle would be moving from waypoint to waypoint. While the triangle is in the middle of advancing, and when I am close to it, it will run away. If I get close enough, I want the player to start tapping a button in a certain amount of time to 'tag' the triangle.

Would I start with a OnTriggerEnter/OnTriggerExit? I am sort of new to scripting and I see a lot of people doing things differently as far as techniques go. Would really appreciate some feedback. Thanks!

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 Cherno · Jun 22, 2015 at 06:41 PM

OnTriggerEnter is a good start. Have it register collisions with a trigger collider that is on the triangle, but much larger so it encompasses the are that the player should be made to push the button. If a collision is registered, set a bool "nearTarget" to true. Use OnTriggerExit to set it it false again. In Update(), if nearTarget is true, check for button presses, and keep track of the time between two presses with Time.deltaTime. Something like this:

 public bool nearTarget = false;
 public float timeThreshold = 0.5f;
 public float lastButtonPress;
 public int buttonCount = 0;
 public int buttonCountThreshold = 5;
 
 OnTriggerEnter(Collider other) {
      nearTarget = true;
      lastButtonPress = Time.time;
      buttonCount = 0;
 }
 
 OnTriggerExit(Collider other) {
      nearTarget = false;
 }
 
 Update() {
      if(nearTarget == true) {
           if(Input.GetKeyDown(KeyCode.E)) {
                if(Time.time - lastButtonPress < timeThreshold) {
                     lastButtonPress = Time.time;
                     buttonCount ++;
                     if(buttonCount >= buttonCountThreshold) {
                         //TAG!
                     }
                }
                else {
                     buttonCount = 0;
                }
           }
      }
 }
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 GeneGene28 · Jun 25, 2015 at 04:55 AM 0
Share

Thanks! Sorry for the long reply. Ive decided to show you what I came up with while I was awaiting an answer from someone. It was a simple trigger script for 'tagging' someone. I haven't been doing coding for long, but man this is actually a pretty fun sport to practice! Another problem has come up and i can't seem to find an answer. Is there a way to reference another collider in the OnTriggerEnter function?

Where it says: "(Collider other)", I don't want to use the collider attached to the current gameobject. i want to reference another collider. is that possible?

avatar image
0

Answer by GeneGene28 · Jun 25, 2015 at 12:52 PM

    public bool canTag = false;
     
   void update()
    {
          if(canTag && Input.GetKeyUp(Keycode.E))
           {
               print("Tagged!");
           }
   }
 
   void OnTriggerEnter(Collider other)
   {
         if(other.collider.tag == "Player")
         {
               canTag = true;
               print ("You are near this person.");
         }
   }
 
  void OnTriggerExit(Collider other)
   {
         if(other.collider.tag == "Player")
         {
               canTag = false;
               print ("Too Far!.");
         }
               
   } 
             
 
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.

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

3 People are following this question.

avatar image avatar image avatar image

Related Questions

how to find time of a button pressed 2 Answers

Problem with finding the right syntax for time. 1 Answer

What am I doing wrong with this attack script? 2 Answers

How to WaitforSeconds a GuiButton ? 0 Answers

Play sound on button press? 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