• 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
1
Question by b2hinkle · May 24, 2018 at 01:44 AM · c#updateforceupdate functionvoid

Play method only ONCE when detected by the update function

It seems like there should be a pretty simple solution to this problem I'm having but I can not figure it out no matter how hard I try. I'm just trying to make it so that once the update method gets to the "applykillforce();" method (in line 41), it only runs it once, and never gets played again. Right now it runs it over and over again, which is not what I want (because it makes the enemy spaz out).

alt text

If anyone has a solution, it would be greatly appreciated, as I have been stuck on this for awhile.

BTW I am new to coding so if you guys could be specific and try to keep it simple for me that would also be great.

capture.png (16.1 kB)
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

3 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by Lost_Syndicate · May 24, 2018 at 02:12 AM

Ok, first off your using a Update method, which it's going to be called every frame if Peeker is enabled. Second you should use a tick method;

 void Test()
 {
 bool ticked; 
 if(ticked && Peeker.GetComponent<PeekerDie().enabled)
 {
 ticked = false
 // Run code here
 }
 else if(!ticked && !Peeker.GetComponent<PeekerDie().enabled)
 {
 ticked = true
 }  
 }

If this need revisions, or this doesnt work, just comment.

Note: This can be runned multiple times, if you dont want that remove the else if statement, and set ticked to true. Also, this can be used in an update method, but the ticked will keep switching to true and false, if peeker is also enabled or disabled, you can run void Test on Update.

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 b2hinkle · May 24, 2018 at 02:33 AM 0
Share

This really confuses me. Is the bool "ticked" supposed to be different from the bool "tick?"

And also, what is "void Test()?"

avatar image Lost_Syndicate b2hinkle · May 24, 2018 at 02:35 AM 0
Share

I udpated it, also if you dont know what a function is, try to learn it.

avatar image b2hinkle Lost_Syndicate · May 24, 2018 at 02:49 AM 0
Share

I understand what a function is.

I just integrated your code but it didn't seem to work. There was no knockback in the rigidbody.alt text

capture.png (18.0 kB)
avatar image
0

Answer by winterfluxstudio · May 24, 2018 at 02:48 AM

 // has the method been run already?
 public bool hasAppliedKillForce;
 
 void Update()
 {
     if (Peeker.GetComponent<PeekerDie>().enabled == true && hasAppliedKillForce == false)
     {
         // use a coroutine
         StartCoroutine(applyKillForce());
     }
 }
 
 IEnumerator applyKillForce()
 {
     // do something
     // ensure coroutine can not be triggered again
     hasAppliedKillForce = true;
     yield return null;
 }


https://docs.unity3d.com/Manual/Coroutines.html https://docs.unity3d.com/ScriptReference/Coroutine.html

Comment
Add comment · Show 10 · 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 b2hinkle · May 24, 2018 at 03:02 AM 0
Share

This isn't working for me. It gives me a red underline under the IEnumerator "apply$$anonymous$$illForce"alt text

capture.png (15.6 kB)
avatar image winterfluxstudio b2hinkle · May 24, 2018 at 03:05 AM 0
Share

sorry, forgot something. will update. Forgot to add

 yield return null;


Coroutines can return stuff. ex. wait 5 seconds then do something. but if you dont return anything you have to declare null

 yield return new WaitForSeconds(5);
 // do something

avatar image b2hinkle winterfluxstudio · May 24, 2018 at 03:17 AM 0
Share

This is what I got so far. I think I'm missing something but I don't know what it is.alt text

capture.png (15.8 kB)
Show more comments
avatar image
0

Answer by JusSumGuy · May 24, 2018 at 11:13 AM

int killForceCount = 0;

Update() { If(killForceCount == 0 && your condintion ) {

killForceCount++;

ApplyKillForce();

} } Just add a counter variable and add one to it each time you call the function. If you only want to call it 3 times for example then you would say if count is less than 3 call the function. Otherwise don't. :) sorry for the sloppy code writing on my phone.
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 JusSumGuy · May 24, 2018 at 11:16 AM 0
Share

You don't need a coroutine either you can just make it a normal method. Hope this helps!

avatar image b2hinkle · May 24, 2018 at 04:49 PM 0
Share

This is what I have right now, but so far nothing happened.alt text

Am I maybe putting the method "applykillforce" in the wrong place?

capture.png (16.8 kB)
avatar image JusSumGuy b2hinkle · May 25, 2018 at 05:33 AM 0
Share

Initialize your variable killForceCount.

write this before your update method and I don't see why it shouldnt work.

int killForceCount = 0;

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

503 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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

Play method only ONCE when detected by the update function 2 Answers

Show message when score achieved 1 Answer

C# void names 1 Answer

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 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