Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 /
  • Help Room /
avatar image
0
Question by Roger3d · May 22, 2019 at 02:41 PM · uicoroutineienumerator

Achievement UI Pop up system at race finish

In a race, at finish line, i would like to show UI panels with the achievements: for example: you finish 1st, you get all coins, you have done a new time record, etc... But not always i don't know when i'll do this goals. I've tried this with coroutines, to show each panel for 2 seconds. Cubes simulates the UI advs. The example show that you've 3 goals at first, but when finish (finish line) you only get two of them (start_CheckAdvs). Only have to hide the first and third cube in two seconds.

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;

        public class Coroutine : MonoBehaviour
       {    
        public GameObject [] Adv; //UI panels for coroutine afer cross the finish line
        public GameObject cube_01, cube_02, cube_03;   //UI panels
   void Start()
    {
      Adv = GameObject.FindGameObjectsWithTag("Achievement_Adv");
      cube_01.SetActive(true);
      cube_02.SetActive(true);
      cube_03.SetActive(true);
    }
  
  void Update()
  {       
      Invoke("finishLine", 1f); //Achievements at finish line
      Invoke("start_CheckAdvs", 1.4f); //Chek which goals you get
      Invoke("stop_CheckAdvs", 2f); //Stop Chek goals
      Invoke("FinishAdvs", 4f); //Start Coroutine of your goals
  }
  void FinishAdvs()
  {
      StartCoroutine(hideAdvs());
  }   
  void start_CheckAdvs()
  {
      StartCoroutine(check_Advs());
  }
  void stop_CheckAdvs()
  {
      StopCoroutine(check_Advs());
  }
  IEnumerator check_Advs()  // To know how many goals you've done
  {
          yield return new WaitForSeconds(1f);
          Adv = GameObject.FindGameObjectsWithTag("Achievement_Adv");
          yield break;        
  }
  IEnumerator hideAdvs() // The goals you achive at this race will desappear
  {
      yield return new WaitForSeconds(2);
      Adv[0].SetActive(false);
      yield return new WaitForSeconds(2);
      Adv[1].SetActive(false);
      yield return new WaitForSeconds(2);
      Adv[2].SetActive(false);        
  }
  void finishLine() // At finish Line, you've done only 1st and 3rd goal
  {
      cube_01.SetActive(true);
      cube_02.SetActive(false);
      cube_03.SetActive(true);
  }
  }

Thanks in advance.

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 PelusoWarro · Apr 14, 2020 at 05:49 PM

Hi, sorry for the late reply. i have seen some little terrorism in that code.

  1. avoid. using findObjectbytag/name etc

  2. Use coroutines instead of "invoke", you have much better control over it, invoke is the cheap solution.

  3. Why woud you want to use that invokes in the update? you want them to run always?

  4. when you yield a value, and its always the same, consider creating a variable and yielnd it instead of creating a new one every time, specially if you are doing that in the update method.

I hope it helped you

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 Roger3d · Apr 29, 2020 at 06:23 PM 0
Share

Thanks for the reply and the advices!! I'm noob with code XD

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

253 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

Related Questions

Weird behaviour with mathf.lerp 0 Answers

How to add multiple yield return new wait for seconds inside an IEnumerator? 1 Answer

What is Coroutine, Yiel and IENumerator? 1 Answer

Calling coroutine in a method issue. 1 Answer

Trying to increment a variable in a Coroutine on pressing a UI button 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