Color Maze *WIP*

The concept of Color Maze is to bring all your figures into the goal to complete the levels. Time is a factor which calculates how many stars you get in the end.

The game is still WIP and will be free to play for the first Levels on Android. You can buy the full version later on. The name of the game might change later on.

To make progress in the game you have to:

  • open colored doors
  • use Elevators and Moving Platforms
  • and much more later (teleporters, laser gates planned)

Developement Blog

Check out all news about Color Maze here:

Color Maze Development Blog

Press Kit

coming soon…

Story & Idea:

Story? Non at the moment. Do i need any?

★ complete the mazes as fast as possible
★ open colored doors using switches
★ have multiple figures to solve riddles with
★ 10 Levels & tutorials free to play

Game Name

Currently i don’t have any game name. Meanwhile i will use “Color Maze” as a placeholder.
I will add a Brainstorming / Mindmap soon here i guess.

Screenshots

This was the first Prototype for Color Maze. If you don’t see anything, let the page load a bit.

I also tested how it could look when i would use a character in Color Maze, but the problem is, the Player might not be able to see or actually feel a diffence.

I added a “Multiplayer” design to Color Maze, so you have to switch inbetween charaters. It still is a 1 Player game.

Elevators working nicely and give more possibilitys for riddles in the Color Maze. The can also be used as moving platforms, so the player can use them to go over gaps, if there are any platforms available.

Thats how a level design looks directly in Unity. I make use of some Editor Scripting to see things better. This makes it easier for me to create more Color Maze levels.

I used my Level Manager Plus Asset (you can also purchase it if you need it) to create my Level Select Menu. In addition i added a “mastered” medal to schow, the player has all stars reached.

Platform

This game will become available for Android in the Google Playstore once in Beta.

Release date

None yet… I’m still working on the levels 1-10

Unity Asset: Chattering Teeth

Did you ever wanted a chattering teeth as a monster, enemy or just as an environment filler?

Here you can get it! This is one of that wind up toys, you may came across in your childhood, youth or even now and then.

Requires Unity Version 5.3

Summary:

★ 9 Animations included
★ uses Multi Materials only
★ No UV Maps! = Not Mobile Optimised!
★ 3 Different Eye Types
★ custmizable Look by Material & Forms
★ Dracula Add On Teeth
★ Pre-created Prefabs

Animation List:

★ Howl
★ Quick Bite
★ Triple Bite
★ Walk 1
★ Chattering 1
★ Chattering 2
★ Walk 2
★ Dead 1
★ Dead 2

Screenshots:

Chattering Teeth Design your own!

Chattering Teeth Screenshot

Videos:

Setup Video

Download Chomper – Chattering Teeth

On site shop: Here

CG Trader: https://www.cgtrader.com/3d-models/character/other/chattering-teeth-chomper

Unity Asset: Four Winged Space Enemy

four winged space enemy unity asset octoman iconThis is a Four Winged Space Enemy. This model is designed to be an Enemy for Games like Space/ Top Down/ Rail Shooter.
It can also be used for ANY other game type like for Jump ‘n Runs and so on.

 

 

four winged space enemy unity asset octoman 01

3D Model – Four Winged Space Enemy:

For Shots you could use a Copy/Prefab of ShotSpot01 or just use anthing you like.
Just add ShotPoints for it or use the ShotSpot01 or anything you like.

There are 2 Models: unmodified and modified for the Demo Scene.
The modified already have events in the animations Tab & all animations are set.

Script: ChangeColorOrangeRed:

This Script changes 2 Colors after a given amount of time(resetTime) in seconds.
In the Demeo Scene it is set to Weakpoint001-004, Shotspot01 and Engine01 of the model Enemy001.
You can always change the colors as you like to. Same with the resetTime. So the can swap faster or slower.

Animations:

There are 4 Animations in the Model:

Idle
Shoot
Rotate Left
Rotate Right

Screenshots:

four winged space enemy unity asset octoman 04 four winged space enemy unity asset octoman 05

unity assets color switcher four winged space enemy switch octoman

Live Demo:

Videos:

Preview #01

Preview #02

Summary

★ Polys: 1260 / Tris: 2500
★ Animations: Idle, Shoot, Rotate Left, Rotate Right
★ Texture: TGA – 2k

★ Script: Weakpoint Color Change.
★ Now working with mechanim.

Download

CG Trader Link: https://www.cgtrader.com/3d-models/aircraft/other/animated-four-winged-space-enemy

Buy here:

Unity Version: 5.3

https://www.octomangames.com/downloads/four-winged-space-enemy/

 

Simple Quest Manager Dokumentation

This is the documentation and setup guide for Simple Quest Manager. It is also inside the package!

Glossary

Quest: Is a quest you can design to your needs. It contains strings for the description, hints, IDs, unlockable Quests, Rewards and so on.
QuestObjective: The Goal to achieve. Can be anything you can make contact with, destroy, collect. A string is used at the moment. You can also use an integer called ID.
QuestObject: Can be an NPC Character, any Object like a Book, a BulletinBoard or anything you can get quests from, or bring to.
QuestMarker: You can choose your own grafics of cause.

Exclamation Mark: Shows a Quest you can get.
Gray Question Mark: Shows Running but not completed Quest
Yellow Question Mark: Shows Quest Completed so it can given back to an NPC.

Setup Guide

Scenes: make sure to add the QuestManager and Quest UIManager Prefabs into all scenes where you need em.
Example: If you have NPC’s in a town you need the QuestManager in it, as well as the UIManager.
Since the QuestManager is persistent you don’t need it in a Battle Scene.

1.) The Quest Manager:

The Quest Manager is kind of the heart of the system. In here you design all your quests, and tell how many you have.

Size: Amount of Quests
Title: The title of a quest.
ID: The identifier of the quest, make sure all quest have a unique!
Progress: The current state of the quest. Only set them to NOT_AVAILABLE or AVAILABLE!

  1. NOT_AVAILABLE: If this quest is unlockable later on, that’s the state for.
  2. AVAILABLE: This quest is available for whichever NPC has it.
  3. ACTIVE: The quest has been taken, but is not completed yet. (QuestManager takes care of it.!)
  4. COMPLETE: The quest is complete but not brought back to the NPC. (QuestManager takes care of it.!)
  5. DONE: The has been brought back to NPC. (QuestManager takes care of it.!)

Description: Describe the Quest so people may know what to do.
Hint: Will be shown, once the Quest is ACTIVE and the Player talks to the Quest Receiver, or looks in the QuestLog
Congratulation: Will be shown, once the Quest is COMPLETE and the Player talks to the Quest Receiver, or looks in the QuestLog
Summary: Not yet completely implemented yet.
Next Quest: Represents the next Quest ID to be unlocked(form NOT_AVAILABLE to AVAILABLE) Chain Quests!

Quest Objective: A string parameter for the objective, like enemy1. needed to send the correct data later back to the QuestManager. ID’s would work as well.
Quest Objective Count: The current amount of the requested quest objective, should always be 0 at start. Example: Amount of killed enemys or picked up items.
Quest Objective Request: The requested amount of the quest objective.

Exp Reward: Not fully implemented since everyone has a different system. You need to enter your own functionality, depending on your systems.
Gold Reward: Not fully implemented since everyone has a different system. You need to enter your own functionality, depending on your systems.
Item Reward: Not fully implemented since everyone has a different system. You need to enter your own functionality, depending on your systems.

Once everything is setup here, make sure to apply the changes to the prefab!

2.) The Quest UI Manager:

The UI Manager will take care of all visible content. So when you talk an NPC, it will show the QuestPanels, and shows the QuestLog when pressing the corresponding button.
In this case it’s Q i believe. You can change it later on.

If you want to change the look to fit your design, make sure you check the Prefab out first, or take the pieces used already and fit the design to your needs.

Quest Available: Leave it unchecked!
Quest Running: Leave it unchecked!
Quest Panel: Drag in your QuestPanel.
Quest Log Panel: Drag in your QuestLogPanel.

Available & Active Quests: Nothing to do here!
QButton: The Button Prefab for the Quests.
Q Log Button: The Button Prefab for the Quest Log Quests.Q Button Spacer: Usually an empty GameObject or Panel which holds the QButtons for Active Quests.
Q Button Spacer 2: Usually an empty GameObject or Panel which holds the QButtons for Running Quests.
Q Log Button Spacer: Usually an empty GameObject or Panel which holds the QLogButtons for Active Quests seen in the Quest Log.

Quest Title: Text component to show the clicked quest title.
Quest Description: Text component to show the clicked quest description.
Quest Summary: Text component to show the clicked quest summary.
(no direct connection to the quest summary field in the Quest Manager at the moment)

Quest Log Title: Text component to show the clicked quest title in the Quest Log.
Quest Log Description: Text component to show the clicked quest description in the Quest Log.
Quest Log Summary: Text component to show the clicked quest summary in the Quest Log.
(no direct connection to the quest summary field in the Quest Manager at the moment)

3.) Quest Button & Quest Log Button

This Buttons just showing the name of the Quests. So they just require a text component.
So the QuestButton needs the QButton Script. The Text field is the one on the Button itself.
Add an OnClick Event and set the ShowAllInfos Function.

Same For the Quest Log Button.

4.) The NPC’s:

The NPC will need a Canvas for the Exclamation Mark & Question Mark.
This also needs to be child of the NPC.

The big Collision Box in front of the NPC is of type Trigger, the small around the NPC is a Collider.
We need one of type trigger so the system will trigger the possibilty to talk to the NPC.

Now drag the Quest Object script on the NPC.

  • Fill in IDs of available quests for this NPC. In my case it will be quest 1 & 2.
  • In Receivable is only ID 1, which means he can only take back the Quest with ID 1.
  • In QuestMarker place the canvas, in Image drag in the QuestMarkerImage.
  • In Available Sprite drag your ExclamationMarker Sprite.
  • In Receivable drag in the QuestionMarker Sprite.

5.) Saving & Loading

The questList will be saved in a binary format so it’s kinda protected from possible cheaters. You can Drag the SaveLoad Script to any Empty GameObject and call SaveQuest() at any point you want. You can use Buttons and many more. You can also use a Singleton design pattern or make it static to access it from anywhere.

6.) Quest Objectives

If it is a collectible Quest Objective you can easily add the QuestObjective Script. Add the needed values, like string name or ID and that’s it.
If it is a “Destroy Monster amount x” just use 1 simple line of code, when the monster dies:

QuestManager.questManager.AddQuestItem(monsterName, 1);

Unity Asset: Simple Quest Manager

Simple Quest Manager is an easy to setup and quick solution to create your own quests for your games in minutes.

 

Summary

★ Create your quests directly in the Inspector
★ No coding required
★ Quests can be taken and completed by differend NPC’s
★ You can create Chain Quests (unlock quests by completing others)
★ Currently only 1 Questobjective supported
★ You can save/load all Quests and their states at any point you want.
★ QuestObjectives are updated with just one line of code.

★ Rewards need to be setup on your own, depending on your systems like inventory/exp/currency

★ 1 Demo Scene (see Image above)
3d Models included:
★ 1 Low Poly Chara (walk and idle) 1 LowPoly NPC (wink anim)
★ 1 Low Poly Tree
★ 1 Low Poly Barn
★ 1 Low Poly Fence
★ 1 Low Poly Key

Scripts

Just 6 Scripts are driving the complete System.

Videos

Demo Video

Setup Guide

coming soon….

Setup Guides

Documention & Manual

Links

coming soon….

Price & Download

Shop Link: Get it here!

Zombie Idle *WIP*

Infect the world in this incremental idle game. The game is still WIP and will be free to play on Android. The name of the game might change later on.

Story & Idea:

You work in a little lab and breed species in petri dish.
★ Upgrade petri dish size, breed rate and so on.
★ Sell species once you earned some, to make money.
★ Manage your earnings.
★ Discover new species.
★ Upgrade your Lab.
★ Use Booster for faster progress.
★ Infect the world reduce the mankind to zero.
★ And many more…

Ideas for possible game names:

★ Infected
★ Infector
★ World Infector
★ Zombie Idle

Project Info’s / Change Log:

  1. 05 January 2017 – Project started (Concepting)
  2. 06 January 2017 – 2D GUI Layout & first species created
  3. 08 January 2017 – Basic Species System almost completed in Unity
  4. 09 January 2017 – First Upgrade Elements started
  5. 10 January 2017 – Sitting over exel tables to figure formulas

First Screenshots:

Zombie-Idle-Spezies-OctoMan

Other Media:

Release Date:

Early 2017.

Demo / Download:

Not yet available!!!

Feedback:

I’m always happy about constructive feedback. Feel free to use my Contact Page for this.

3D Model: Hydraulic Excavator EC 180

This is a rigged and animated hydraulic excavator with a rather low polycount. All important pieces are UV-Mapped, some just use materials, like cables, hydraulic pipes. Also i added 2 basics scripts to steer the excavator.

 

Summary

★ 11649 polys
★ Rigged & Pre-animated
★ Basic Script for Movement & Working
★ Diffuse + Normal Map 4096px
★ 5 Animations
★ Uses Mechanim
★ already working Prefab

Animations

★ BigArm Open/Close
★ SmallArm Open/Close
★ Shovel Open/Close
★ Rotate Top 360°
★ Door Open/Close
All cables are rigged and baked into the existing animations.
The model used 5 different materials, because not all elements are unwrapped! If needed i unwrap needed pieces too.

Scripts

The scripts provide:
★ Working Mode / Driving Mode (Button TAB)
★ Open / Close Door (F Button)
In Drive Mode:
★ Turn Left Forward / Backwards(Q & A Buttons)
In Working Mode:
★ Big Arm Up / Down (W & S Button)
★ Small Arm Up / Down (Arrow Up / Down)
★ Shovel Up / Down (Arrow Left / Right)
★ Rotate Upper Part (A & D Buttons)
Those scripts are not smoothly optimised, just a base to begin with!

Screenshots

drivingpromo doorpromo bigarmpromo switchpromo smallarmpromo shovelpromo rotatepromo

Videos

Links

Unity Forum: http://forum.unity3d.com/threads/3d-model-hydraulic-excavator-ec-180-wip.424785/

Price & Download

 

Rate Hydraulic Excavator!

Level Manager Plus – FAQ

Since i get the same requests over and over again, i decided to write a small FAQ with small snippets of code and such, depending on the needs of purchasers.

Content:

1.) How to make a 2D Trigger to unlock the next Level?

2.) How to delete Save Data without restarting the whole game.

3.) How to set the world button background images individually?

4.) How can i implement a “Next Level” button after i have completed a Level?

5.) How can i have individual scores to unlock stars for each level?

6.) Can i create alot levels in just one scene?

7.) How to create the buttons on a Map without a Grid Layout Group?

8.) How can i tint the current World Button?

9.) How to implement a simple loading screen?

10.) How to unlock the next Level only with a specific score?

11.) How can i change a Background Image when i press the World Button?

12.) How to unlock world Buttons according to a Stars Amount?

13.) How to show World & Level Buttons on different Screens?

14.) How to show the choosen World Name instead of “World 1”?

15.) How to load levels only if i have enough “Lifes”

1.) How to make a 2D Trigger to unlock the next Level?

Whatever your Trigger is, add a script to it. In there create the OnTriggerEnter2D Function:

  //Unlock Next Level On touch
 void OnTriggerEnter2D()
 {
     int myCurLevel = GameManager.Instance.loadedLevel;
     int myCurWorld = GameManager.Instance.loadedWorld;
 
     if (myCurLevel < GameManager.Instance.worldsAndLevels[myCurWorld - 1])
     {
         PlayerPrefs.SetInt("Level" + myCurWorld + "_" + (myCurLevel+1), 1);
     }
 }

2.) How to delete Save Data without restarting the whole game?

Just extent the DeleteAll() function with this extra line of code:

  //Reload Scene
 SceneManager.LoadScene(SceneManager.GetActiveScene().name);

3.) How to set the world button background images individually?

In the World Class add a new sprite;

  public Sprite WorldSprite;

In the FillList() function in the first foreach loop after the world button has been created enter this:

  //change the background image of the button itself
 if (world.WorldSprite != null)
 {
     newWorldButton.GetComponent<Button>().image.sprite = world.WorldSprite;
 }

Now you can use different sprites as background images in the world buttons, just drag them into the inspector slot.

4.) How can i implement a “Next Level” button after i have completed a Level?

Create your button. Add an onclick event. In Saver add this small function:

  public void GoToNextLevel()
     {
         if (curLevel < GameManager.Instance.worldsAndLevels[curWorld - 1])
         {
             GameManager.Instance.loadedLevel = (curLevel + 1);
             SceneManager.LoadScene("Level" + curWorld + "_" + (curLevel + 1));
         }
         else
         {
             Debug.Log("NO LEVELS LEFT IN THIS WORLD");
         }
     }

Drag Saver into the On Click event of the button and choose GoToNextLevel function.

5.) How can i have individual scores to unlock stars for each level?

Add the Star1Points, Star2Points, Star3Points variables into the Level class.

Change the 3 Lines in the 2nd foreach where you see

  >= Star1Points    >= Star2Points   >= Star3Points

To

  >= level.Star1Points   >= level.Star2Points   >= level.Star3Points

Now you can set Star Points for each Level individually.

6.) Can i create alot levels in just one scene?

No! Level Manager Plus needs 1 scene per level.

 

7.) How to create the buttons on a Map without a Grid Layout Group?

This might require you to change the Button Size and appearence depending on the screensize. You can even create a 3D Level Selector with this method ;).

Here is how:

1.) If you want different positions in each world. Add this in the world class in The Level Manager Script:

 public List <Transform> buttonPositions = new List<Transform>();

This will be the list for all button positions. You can also use Vector2 Or Vector3 if you know the positions.

2.) Create an empty GameObject without any Layout Group on it and make it child of your main Panel, Name it FreeSpacer1 or whatever you please. Make it as big as your Map is.

3.) In the Level Manager GameObject, in World 1 change the Spacer to this GameObject(FreeSpacer1).

4.) Now create empty Images or whatever in the MainPanel for the positions where you want the buttons to appear. Rename them properly so you know where which button has to be. You can also help yourself with using Icons in the top left of the Inspector(The gray ones in the image below).

ownlevel

5.) Now again in the Levelmanager Script go to the FillList() function. In the foreach loop for the levels, after this line:

 newbutton.transform.SetParent(world.Spacer,false);

Add the following:

 if (world.buttonPositions.Count > 0)
 {
      button.transform.position = world.buttonPositions[curLevel - 1].position;
 }

6.) Now drag your locations you need into the buttonPositions List.

buttonpositions

7.) Once done disable the image components of your location Objects, so you wont see em and you will have your buttons anywhere you want on the map.

Repeat steps 2,3,4,6 for all worlds, Or mix it how ever you like , Done!

level-manager-plus-own-locations

8.) How can i tint the current World Button?

This can be fairly easy achieved.

1.)Open up WorldButton.cs

2.)Input the following function:

 public void changeColor()
     {
         //Find all Worldbuttons in the scene
         GameObject[] worldButtons = GameObject.FindGameObjectsWithTag("WorldButton");
         for (int i = 0; i < worldButtons.Length;i++)
         {
             worldButtons[i].GetComponent<Button>().image.color = Color.white;//change all to white color
         }
         GetComponent<Button>().image.color = Color.red;//change the currently clicked one to red
     }

3.) Add this function now to the OnClick Event in the WorldButton Prefab. To do so click on the + Drag in the World Button Prefab and choose changeColor() on the right.

unbenannt

Now you are able to click on the Buttons so the can switch their color. But you also want that from the start of the game so we have to make a small change in the levelmanager.cs

4.) Open LevelManager.cs

5.) create a new List in the top

 List<GameObject> worldButtons = new List<GameObject>();

6.) Now in the FillList() function search for SaveAll(). Under that you see this:

//show the right/last used World Spacer
if (GameManager.Instance.loadedWorld > 0)
   {
      WorldList[GameManager.Instance.loadedWorld - 1].Spacer.gameObject.SetActive(true);
   }
   else
   {
      WorldList[0].Spacer.gameObject.SetActive(true);
   }

Change it to this:

//show the right/last used World Spacer
if (GameManager.Instance.loadedWorld > 0)
{
   WorldList[GameManager.Instance.loadedWorld - 1].Spacer.gameObject.SetActive(true);
   //Change the color of the world button to red
   worldButtons[GameManager.Instance.loadedWorld - 1].GetComponent<Button>().image.color = Color.red;
}
else
{
   WorldList[0].Spacer.gameObject.SetActive(true);
   //  Change the color of the world button to red 
   worldButtons[0].GetComponent<Button>().image.color = Color.red;
}

That’s it.

9.) How to implement a simple loading screen?

This is a rather easy task. Open LevelManager.cs.

1.) Create a new variable for our Loading Image:

 GameObject loadingImage;

2.) In Start() add:

 loadingImage = GameObject.Find("LoadingImage");
 loadingImage.SetActive(false);

3.) In the Canvas create an Image, make it uniform stretch and add all you need as child objects. Like: Sprites, Text, Loading Circles… Make sure it’s named LoadingImage so it can be found on Start(). You can implement animated stuff as you please and like on it as childs.


4.) Change the loadLevels function to this:

     void loadLevels(string value)
     {
         //Application.LoadLevel (value);
         //SceneManager.LoadScene(value);
         StartCoroutine(LoadingImageWait(value));
     }

5.) Now we need an IEnumerator to show the Image, wait a bit and then do the actual loading.

     IEnumerator LoadingImageWait(string value)
     {
         loadingImage.SetActive(true);
         yield return new WaitForSeconds(3);//change the number to how long you want at least the loading screen be visable!
         SceneManager.LoadScene(value);
     }

So now, when you press a LevelButton, you will see the image for 3 seconds, then the actual loading process will happen. This is only a one way solution!

10.) How to unlock the next Level only with a specific score?

Since the Saver.CS always unlocks the next level once it’s called, you need to make sure you put this unlocking into an if statement which checks, if the score is high enough before you unlock the next level.

1.) So open up Saver.CS and go to the SaveMyGame() function. Inside the first if statement is this line(39):

PlayerPrefs.SetInt("Level" + NextWorld + "_1", 1);//unlock next World with level 1

And in the else if statement this line(51):

 PlayerPrefs.SetInt("Level" + curWorld + "_" + NextLevel, 1);

Around that lines you need to build the if statements to check if the score is high enough,  to unlock the next level:

 if (score >= 100)
             {
                 PlayerPrefs.SetInt("Level" + NextWorld + "_1", 1);//unlock next World with level 1
             }

Instead of hardcoding it you can always create a variable to pass in any values per level you like and set them up in the inspector:

public int unlockScore;
 if (score >= unlockScore)
             {
                 PlayerPrefs.SetInt("Level" + NextWorld + "_1", 1);//unlock next World with level 1
             }

11.) How can i change a Background Image when i press the World Button?

1.) Create a new variable in the World Class in LevelManager.CS

 public class World
     {
         ...
         public Sprite WorldBackround;
     }

2.) Also we need a variable to put the Image in, you can place it directly in the canvas or where you like.

 public Sprite LockedSprite;//after this 
 public Image WorldBackgroundImage; //add this

3.)In the first foreach Loop look for this line

 GameObject value = world.Spacer.gameObject;

under that add

 Sprite WSprite = world.WorldBackround;

4.)change the Addlistender Call from:

//call the addlistener functions
WorldSwitcher(b, value);

to this:

//call the addlistener functions
  WorldSwitcher(b, value, WSprite);

5.) At the End of the Fill List Funtion is a SaveAll() Call. The If statement after this needs to be changed to:

 if (GameManager.Instance.loadedWorld > 0)
         {
             WorldList[GameManager.Instance.loadedWorld - 1].Spacer.gameObject.SetActive(true);
             WorldBackgroundImage.sprite = WorldList[GameManager.Instance.loadedWorld - 1].WorldBackground; //add this
         }
         else
         {
             WorldList[0].Spacer.gameObject.SetActive(true);
             WorldBackgroundImage.sprite = WorldList[0].WorldBackground;//add this
         }

6.) Change the WorldSwitcher Function to this:

  //show the right spacer for the corresponding world
     void WorldSwitcher(Button b, GameObject value, Sprite WSprite)
     {
         b.onClick.AddListener(() => SwitchWorlds(value,WSprite));
     }

7.) Change the SwitchWorlds Function to:

  void SwitchWorlds(GameObject value, Sprite WSprite)
     {
         foreach (var world in WorldList)
         {
             world.Spacer.gameObject.SetActive(false);
         }
         value.SetActive(true);
         WorldBackgroundImage.sprite = WSprite;
     }

8.) Now Save and fill in the data inside Level Manager GameObject.

  • Drag the GameObject which holds the Image Component for the Background in WorldBackgroundImage Slot
  • Drag the Sprites for the correct worlds into the WorldBackround Slots in the Worlds

12.) How to unlock world Buttons according to a Stars Amount?

1.) First Make sure you show the Player what the needed Stars are. How you want to design it is your own decision!

I created a panel as a child of my World Button with a Lock Image, A Stars Text and a Star Image.

Wolrld Button Unlocking Panel

2.) Now we need to implement that Panel and the StarsText to our WorldButton Script.

So add that 2 Variables:

 public GameObject lockPanel;
 public Text starsNeededText;

3.) After you have saved the Script Drag the Panel and  text for the Stars in the Script on the Button:

4.) Now we need to implement the funcionality onto the Level Manager Script.

In the World class add this variable:

  public class World
     {
        ...
         public int starsNeededToUnlock=0;
     } 

Add another variable maybe ate the end of the variables.

 private int starsCounter=0;

Now in the 1st foreach of the FillList() function add after line i show:

 Wbutton.WorldText.text = "World " + curWorld.ToString();//after this line
 Wbutton.starsNeededText.text = (world.starsNeededToUnlock-starsCounter).ToString();//ADD THIS

And after the following stuff add this:

 Button b = Wbutton.GetComponent<Button>();//after this line
 //add this
 if (world.starsNeededToUnlock - starsCounter == 0)
    {
         Wbutton.lockPanel.SetActive(false);
         Wbutton.GetComponent<Button>().interactable = true;
    }
    else
    {
         Wbutton.GetComponent<Button>().interactable = false;
    }

Finally we need to count the stars in the 2nd foreach loop:

 button.Star1.SetActive(true);//after this
 starsCounter++;//add this 

 button.Star2.SetActive(true);//after this
 starsCounter++;//add this 

 button.Star3.SetActive(true);//after this
 starsCounter++;//add this

4.) Now all is setup. In the Level Manager make sure the first World has 0 stars needed and the others seted up to your needs.

(IMPORTANT) If needed stars are less thatn levels per world completed make sure to set other worlds first Level to be unlocked and interactable.

The result could look like this:

 

13.) How to show World & Level Buttons on different Screens?

1. Create a Panel for the World Buttons in the Canvas.

Example:

2.) Create a LevelSpacer for each World

Example:

The Back Button is used to switch between the world & the Level Spacers.

Make sure you arrange all like this:

In LevelManager.CS create 2 new Variables:

public GameObject WorldPanel;
public GameObject LevelPanel;

And 2 new functions:

public void ShowWorldPanel()
     {
         WorldPanel.SetActive(true);
         LevelPanel.SetActive(false);
     }
 public void ShowLevelPanel()
     {
         WorldPanel.SetActive(false);
         LevelPanel.SetActive(true);
     }
At the End of the FillList() Function before the Last “}” Closing Bracket enter this:
ShowWorldPanel();
The WorldSwitcher Function needs a little change to:
void WorldSwitcher(Button b, GameObject value)
     {
         b.onClick.AddListener(() => SwitchWorlds(value));
         b.onClick.AddListener(() => ShowLevelPanel());
     }
Now connect the newly created Panels in the Level Manager Gameobject:
 
And the Back Buttons OnClick Event gets the ShowWorldPanel Function:
Thats it. Don’t forget to input the correct Spacers in the Worlds.
 

14.) How to show the choosen World Name instead of “World 1”?

1.) In the first foreach loop of LevelManager.Cs look for the follwing line:
 Wbutton.WorldText.text = "World " + curWorld.ToString();//world.worldNumber;
2.) Comment out the line or change it to:
 
  Wbutton.WorldText.text = world.worldName;
That’s everthing to see the choosen World Name on the WorldButton.
 

15.) How to load levels only if i have enough “Lifes”?

1.) In LevelManager.cs look for

 void loadLevels(string value)

In here you just add your Lifes system, Example:

 void loadLevels(string value)
    {
        if(LvGameManager.lifes>0)
        {
            LvGameManager.lifes--;
            SceneManager.LoadScene(value);
        }
        else
        {
            Debug.Log("NO LIFES LEFT");
        }
    }

 Purchase Level Manager Plus here:

Unity Asset: Color Switcher

Color Switcher is a small script written in C#.

Color Switcher will switch or fade through as many main colors of GameObject/ 3D-Models as you like with a given interval between the colors. Color Switcher has a Editor Script which makes it easier to handle all inputs. You can enable several Color Switcher at the save time for syncing them in runtime. You can reverse the order  depending on the Element you start.

Color Switcher will loop through all given colors until you stop it. For Example it starts at Color 1 , goes through all following and once completed it starts again at Color 1. Ping Pong will send it back and forth instead of looping.

The current color of the GameObject can also be used as the first color, no mater what you placed in it.

To create some randomness you can use the same setup everywhere, but on some you can begin with another element(Color) . More randomness with the same color sheme / setup can be achieved with ping pong and / or reverse.

If there is a Texture Map on your GameObject, Color Switcher will still work, and will tint it with the colors you set. The texture itself will not be changed. If the colors are to dark, you will not notice any change, because black for example is the darkest color already and can’t be red tinted.

Features:

★ Uses RGB Color Palette
★ Easy and quick to setup
★ Choose as much colors as you like
★ Set an Interval (time between the colors to switch in seconds)
★ Works on Multi-Materials(Map dependant)
★ Reversed (switch backwards)
★ PingPong
★ Fading (can fade between colors)

The Package contains a manual pdf and a Demo-Scene. Please watch the videos to see how it works.

Screenshots:

unity asset color switcher interface octoman
Interface

Color Switcher Examples:

Police / Firetruck sirens

unity assets color switcher firetruck switch
Switching Colors
unity assets color switcher firetruck fade
Fading Colors

Working site signs & street arrows

unity assets color switcher street arrow switch octoman
Different Color Begin
unity assets color switcher working sign fade octoman
3 Color Fade

Weakpoints of enemiesFour Winged Space Enemy

unity assets color switcher four winged space enemy switch octoman
Four Winged Space Enemy

Christmas lights

unity assets color switcher christmas lights switch octoman
Multiple Colors

and so on….

Links

Unity Forum: Link

Price & Download

Unity Asset Store Link: http://u3d.as/aGc

Price: $5

Rate Color Switcher!

Galaxy Girls FAQ

Galaxy Girls Main Screen

What is Galaxy Girls?

Galaxy Girls is an anime driver/styled shoot’em up. Battle through alot waves of AI ships in the campain mode. Earn credits and upgrade your ship with new weapons, equipmenz and abilitys.

On which platform can i play it?

The first release will be on android. Maybe later i will release it on IOS.

How to Play?

Drag around the ship with your mouse to aim the enemy ships. When you start dragging the ship will automatically fire all bullets/rockets and other weapon shots you purchased already. Make sure you avoid all enemy bullets.

To win a level you need to survive all waves of upcoming enemy ships.

How many game modes will be there?

Currently planned is a campain mode with at least 3 modes: Easy,Normal, Hard.

Will there be other ships to play?

Maybe 4 ships are playable

Which game engine is Galaxy Girls made with?

Unity Engine.

How much does Galaxy Girls cost?

The game will be free, but will include in-app purchases.

When do you release it?

Currently i have no fixed date, but i will post about it once i’m sure about it!

GamePlay

How to use shields and other powerups?

There be buttons in the game screen, which will show you the amount yu have. You just need to press them once needed.

Will there be a Leaderboard?

I’m not sure yet if this is needed, but maybe for the level you reached, Or complete score you achieved.