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 hawken · Aug 22, 2013 at 06:16 AM · delayinvokeinvokerepeatingfunction update

Repeating after variable delay

I've grown out of Invoke Repeating, and noticed the answers for this are either staggeringly complex or shrugs. Mainly because seasoned coders write these kinds of functions all the time, and the question it's self is far too basic as it's an integral way of thinking.

Anyhow, my question is: Is this the right way to make a lamp flicker with increasing intensity, based on a changing variable without using invokeRepeating (as I wish to change the delay on the fly). The code (UJS):

 var settings : gamesettings;
 var textureAlpha : float;
 var originalTexture : Texture2D;
 var flashingTexture : Texture2D;
 var flashing : boolean;
 var intervalCount : int;
 var flashTime : int;
 
 function Start () {
     originalTexture = guiTexture;
 }
 
 function Update () {
     textureAlpha = settings.playerFever / settings.playerMaxFever;
     guiTexture.color = Color(.5,.5,.5,textureAlpha/2);
     if (textureAlpha >= 0.75 && !flashing) {
         flashing = true;
     }
     if (flashing) intervalCount++;
     if (intervalCount >= flashTime && flashing) {
         guiTexture.texture = flashingTexture;
         RevertTexture();
         
     }
 }
 
 function RevertTexture() {
     yield;
     guiTexture.texture = originalTexture;
     intervalCount = 0;
 }

flashTime variable would be changed somewhere else, but for now imagine it would start at 100 and get closer to 1 as things happen.

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

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by whydoidoit · Aug 22, 2013 at 06:20 AM

It looks fine to me, the only issue I would say is that you are not using Time.deltaTime so the flashing period will be affected by the framerate of the game, which will make it somewhat inconsistent.

To change that you would make intervalCount a float not an int and add Time.deltaTime to it, rather than increment it.

Clearly you would want to change the values from being 100 to 1 in flashTime. If that's based on health or something then just divide it by 100.0 perhaps?

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.

Follow this Question

Answers Answers and Comments

16 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

Related Questions

How to Instantiate prefabs with function Update? 1 Answer

Invoke() and InvokeRepeating() not working on webplayer? 1 Answer

InvokeRepeating doesn't work 2 Answers

InvokeRepeating doesn't work at 0.00002 seconds 2 Answers

Add delay to Fixed Update?,How to add a delay to moving object in Fixed Update? 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