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 $$anonymous$$ · May 22, 2014 at 01:18 AM · randomloopeventturn-basedday

Creating a script to randomize events.

I've just started my very basic game. The player must complete a task within a certain amount of days. Once your turn is up, the day increases. Here is the script.

 using UnityEngine;
 using System.Collections;
 
 public class GameManager : MonoBehaviour {
 
     //Scripts
     public GameEvent GameEvent;
 
     //Declaring Variables
     public int CurrentDay = 1;
     public int MaximumDays = 10;
 
     void Update () {
         while(CurrentDay < MaximumDays + 1) {
             GameEvent.Day();
             CurrentDay++;
         }
     }
 }

You'll notice that I have imported a script called GameEvent. I call a function named "`Day`", which actually does nothing. It's blank. Then, the day increases and it goes through that loop until it hits the MaximumDays. Each day I just want something to happen. Let's say for now that some GUI will pop up with some information about that day. What if each day I wanted to randomize an event. Or in other words, make the GUI say something different based on a random number. At my level, I would probably make a random number, then create an insanely long if, if else, and else function depending on the number. Like this.

 if (RandomNumber == 1) {
      //Make the GUI say this.
 } else if (RandomNumber == 2) {
      //Make the GUI say something else.
 } else if (RandomNumber == 3) {
     //Make the GUI say something different.
 }
 
 //... 

There must be a much sexier way of doing this. Well, obviously. I just need some help. :)

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
Best Answer

Answer by Maerig · May 22, 2014 at 01:52 AM

1) How to randomise a number : use Random.Range, more specifically

 Random.Range(firsEventNumber, lastEventNumber + 1)

2) How to handle multiple values for a same variable : this is what the switch statement is for. In your case

 switch(RandomNumber) {
 case 1 :
     //Make the GUI say this.
     break;
 case 2 :
     //Make the GUI say something else.
     break;
 case 3 :
     //Make the GUI say something different.
     break;
 default :
     break;
 }

3) In the Update method, your while loop will run all the days in a single frame. Rather than doing this, you should control whether the day is over using a boolean member, or use Coroutines instead. Good luck !

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

19 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

Related Questions

Timed event Question 2 Answers

Infinite loop when I try to generate randomly a 2D dungeon.. 3 Answers

Loop a Function a Random Number of Times 2 Answers

How to make a loop for PowerUps/Bonus 2 Answers

Why is my Unity Crashing when I call a fucntion within coroutine and vice versa? 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