• 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 tenchiknight · May 31, 2012 at 03:11 PM · animationlocktimespan

Playing animation with keyboard lock

Hello, hopefully wont be a silly question.

Currently been using unity for a couple of months and love it. I'm very much self taught due to being an animation student. So i have quite a few gaps in my knowledge. Normaly i try and work it out myself but hit abit of a sticky wicket.

I'm looking to have an animation play in the background which i wish the user to watch and lock key strokes for a set amount of time. I've got the animation playing and the level change works fine but has hit this problem.

Animation plays ->keyboard locked set amount of time->User presses E->level change.

Now i have looked at boolean's with not alot of luck as some other people have this issue.

Hopefully someone with more knowledge can point me in the right direction. Thank you in advance.

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 drizztmainsword · Jun 02, 2012 at 04:19 AM 0
Share

So is the described sequence of events ("Animation plays ->keyboard locked set amount of time->User presses E->level change") what you want to happen or what you don't want to happen, but is?

avatar image tenchiknight · Jun 02, 2012 at 02:42 PM 0
Share

Can't seem to get the keylock to work and scrapped code. Was wondering it is something with the lines of wait 15 secs then allow key press.

I understand ruffly the waitforseconds command but unsure what the lock command would be.

//yield WaitForSeconds (15); timer -= Time.deltaTime;

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by Berenger · Jun 02, 2012 at 03:00 PM

You already have the boolean checking if you can or cannot detect inputs apparently, and the animation is played correctly. Then, the issue is to wait for the end of the animation before allowing inputs.

The simplest way will be to use Invoke. Create a simple function that only set your boolean to true, such as

 function EnableKeyboard()
 {
     enableKeyboard = true; // or whatever names you want
 }

then, when you start the animation, call Invoke( "EnableKeyboard", 15 );. You could also use the length of the animation with animation[ animation.clip.name ].length.


Now, if you want to understand coroutines. yield is going to pause the function for some time according to what you return.

yield null will wait until the next frame. yield WaitForSeconds(10) will wait 10 seconds, which means your timer in your comment won't do anything. Try that script

 function Start()
 {
     CoroutineWithNull();
     CoroutineWithWait();
 }
 
 function CoroutineWithNull()
 {
     print( "CoroutineWithNull start" );
     var timer : float = 0;
     while( timer < 5 )
     {
         yield null;
         timer += Time.deltaTime;
         print( "CoroutineWithNull " + timer );
     }
     print( "CoroutineWithNull done" );
 }
 
 function CoroutineWithWait()
 {
     print( "CoroutineWithWait start" );
     yield WaitForSeconds( 6 );
     print( "CoroutineWithWait done" );
 
 }

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

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

6 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Can I make animations snap to a frame? 1 Answer

How to select an animation clip by index number? 7 Answers

Move a keyframe in time only 1 Answer

Lock movement and animation 0 Answers

Animation Lock Button Disappears 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