• 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
Question by pianoguy04 · May 20, 2014 at 02:22 AM · forceyieldwaitforsecondsdelayball

How to Delay A Ball shooting script

I am shooting A ball using a prefab. I have it set up so that when I press the Fire1 Key A animation plays, and in this script I made it plays at the same time as the animation, and I want the ball to shoot after the animation, so I tried to delay it using yield WaitForSeconds, but when I did that the script doesn't make the prefab any more any and so nothing happens, except the animation. I'm pretty new to Scripting. any help is appreciated.

 var projectile : Rigidbody;
 var speed = 20;
 
 function FixedUpdate() 
 {
 if(Input.GetButtonDown ("Fire1"))
 yield WaitForSeconds(5);
 clone = Instantiate(projectile, transform.position, transform.rotation);
 clone.velocity = transform.TransformDirection(Vector3(0,0,speed));
 }
Comment

People who like this

0 Show 1
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 siddharth3322 · May 20, 2014 at 04:58 AM 0
Share

First you have to read manual for this topic. WaitForSeconds

You have to create new function for instantiating projectile and in that you can use WaitForSeconds as Romano says.

1 Reply

· Add your reply
  • Sort: 
avatar image
Best Answer

Answer by Romano · May 20, 2014 at 03:59 AM

I'm not totally sure but maybe try taking the yield part out of fixed update, I'm not sure if the updates like yield.

 function FixedUpdate()
 {
   if (Input.GetButtonDown ("Fire1"))
   {
     FireFunction();
   }
 }
 
 function FireFunction()
 {
   yield WaitForSeconds(5);
 
   clone = Instantiate(projectile, transform.position, transform.rotation);
   clone.velocity = transform.TransformDirection(Vector3(0,0,speed));
 }
Comment

People who like this

0 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 pianoguy04 · May 20, 2014 at 02:29 PM 0
Share

Thank you. it works just fine now.

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

22 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

Related Questions

Make delay for spawn 3 Answers

How to delay a function (how to use WaitForSeconds() and yield) 1 Answer

Yield only working once? 0 Answers

Coroutine not running after yield return new WaitForSeconds 3 Answers

how do i write this: apply a negative force value on my object (to make it slow down its velocity), but i don't want it to go past 0, which ends up making the object travel in reverse. 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