How to get tooltips to pop up on certain levels, but not all of them
Hey all, building my first game, and loving the process!
So, what I'm on right now is getting tips to work, like one on the first level that says "use arrow keys to move", next level that says "space to jump" etc. I want these to pop up on a few levels, but obviously not all of them.
I've got the tooltip text box in my canvas already. It's there, and ready for text.
I'm just not sure the best or most efficient way to go about making it display tips for some levels but not others.
I'm using C# (which I am also learning from scratch, sheesh!), if that helps.
Thanks in advance, and happy to answer any questions you may have! :)
Answer by mblissmer · Aug 27, 2015 at 07:08 PM
Turns out this was an easy one, and I'm an idiot. I didn't have the script attached in any scenes except Demo Level, so it never ran on any other scenes. Once I attached it, it ran great!
Thank you SO MUCH for your help. You definitely got my gears turning.
Answer by LawgiverSS2 · Aug 26, 2015 at 04:45 AM
Two approaches are possible. Assuming you store the current level name/information somewhere.
Code driven: Have a script/function that keep track of these tooltips for a given level.
Data driven: Store these tooltip information in a public variable list on an object that is not deleted between scene loading.
Start with something simple that works and make it evolve over time; don't be afraid to refactor as you go.
Here's what I slapped together. It doesn't work (lol). I've been toying with it, and I'm sure it's just a simple syntax thing, but I'm a bit stumped. It works for the Demo Level, but the second level and so on are just blank. They are named exactly what is called below:
public Text tooltips;
// Use this for initialization
void Start () {
tooltips = GetComponent<Text> ();
if (Application.loadedLevelName == "Demo Level") {
tooltips.text = "This is the demo level";
}
else if (Application.loadedLevelName == "Level 1") {
tooltips.text = "Use the arrow keys to move";
print("Level 1 tip");
}
else if (Application.loadedLevelName == "Level 2") {
tooltips.text = "$$anonymous$$ore tips here";
}
else if (Application.loadedLevelName == "Level 3") {
tooltips.text = ""; // if you want to leave one blank
}
else if (Application.loadedLevelName == "Level 4") {
tooltips.text = "There is no level 4";
}
}
Any ideas? :(
As a debugging mechanism, you can do: tooltips.text = Application.loadedLevelName inside your function and comment everything else.
This will enable you to see what is the level name.
Your answer
Follow this Question
Related Questions
Display rigidbody speed to a world space canvas text 2 Answers
How do I start with text inactive? 1 Answer
Gui Text won't turn off 0 Answers
Cannot see Text 1 Answer