Hi,
this is my version of Glitch Garden, i made a new defender, and added a tutorial + health-bars.
There are currently only 2 levels, i will add two more levels and enemies in the next days.
The first two scenes images are with reduced quality, since i couldn’t present the images properly with original quality on webgl.
Hope you will enjoy it. Comments and suggestions are welcome.
here is the link https://gamebucket.io/game/23a540f2-f2f8-497c-bf82-48adbfd5db3c
I like this Tutorial very nice.
I think about to implement something like that too.
Level 2 is way to hard in compare to Level 1.
But overall looks fine. The Quit button is not working but i think thats the Problem of WebGl
In Desktop Version i think its working fine. But u can remove it for WebGl Version so Player not get confused.
Very cool game. So good job!
I have yet to start this section of the course but I am already looking forward to be able to do this!
Also, some very cool features.
The health-bars look very nice. I would be very interested in knowing more about how you implemented this
Also, the tutorial is a great feature. Since I am currently working on my tutorial for my lased defender, I would love it if you could share a bit of how you created the tutorial. The visual presentation is really very nice. It looks like you would expect from a tutorial these days. This is something I would gladly take as an example!
It does, however, feel slightly unfinished. A couple of things I noticed: The tutorial only showed me one defender type, where it should be the best place to show all of them. I also died in the tutorial because I didn’t understand the ‘select defender’-mechanism (I didn’t see if I had the defender selected, causing me to misplace). So tried again and apparently (tried a couple of times) the tutorial starts with a defender pre-selected, without showing the player, therefore causing unexpected placement. The tutorial works for you because you behave like a model player, it feels like it is not prepared yet for real players (impatient people that click too often, too soon and on the wrong locations, idiots like me
)
Final suggestion. Unity makes it easy to have typos remain pretty hidden. Text is stored in so many locations: on canvas buttons, on text fields, in scripts, in strings, etc. I have the same issue. Just try to go over your spelling one last time, it is a very time effective way of improving your game. You can add so much in quality in so little time (takes just a couple of minutes). A few suggestions:
- Avaliable, first arrow in tutorial
- “and you still alive”, last arrow of the tutorial
- Defualt-button in options screen
Hi Duckfest its not hard to implement a healthbar system like this.
Go to your Health.cs and start working 
public float maxHealth = 5;
public Image healthBar; // Now go to your Attacker and Defender and place a Healthcanvas for them
float health; // U need health and maxhealth for calculate the Image Fillamount
private void Start()
{
health = maxHealth; // Set Health to MaxHealth
healthBar.fillAmount = health / maxHealth; //Make a first Update to the Image that it shows correct
}
public void DealDamage(float damage)
{
health -= damage;
healthBar.fillAmount = health / maxHealth; //Lets Update the Canvas everytime we recieve Damage
if(health < 0)
{
DestroyObject();
}
}
Now u need to setup ur Attackers and Defenders
Look that the Canvas is World Space so you can place it on the Gameobject
I use a PlaceholderImage as Background for the Healthbar just Grey
I use a blank white 1x1 px healthbar image and change the Color in Unity because then i can choose for each Defender or Attacker a different color if need. Like Green for Player Red for Enemies example.
Chance the Image Type of Health to filled and then drag the Health Image to the Health.cs (alternative u can find it with GetComponent)
i hope i was able to help you, you can use this for many games and stuff.
Thanks for the replies! 
About the healthbars , Alex solution is very nice! i made it in other way - First , make a slider with the size and colors you want, and make it a prefab.
After that, you need to instantiate this healthbar slider on the start function for each defender or attacker in theirs health script component, and make it move when script is moving :
public class health : MonoBehaviour {
public Slider sliderprefab;
private Slider slider;
Canvas canvas;
public float hp;
float fullHp;
private void Start()
{
fullHp = hp;
canvas = GameObject.Find("Level Canvas").GetComponent<Canvas>();
slider = Instantiate(sliderprefab, transform.position, Quaternion.identity);
slider.transform.SetParent(canvas.transform);
slider.transform.localScale = new Vector3(1, 1, 1);
}
private void Update()
{
slider.transform.position = new Vector3(gameObject.transform.position.x - 0.5f, gameObject.transform.position.y, gameObject.transform.position.z);
}
this one, still in the health script, will make the slider move according to the health, and destroys it when health is <0.
public void DealDamage (float damage)
{
if ((hp -= damage) > 0)
{
hp -= damage;
slider.value = hp / fullHp;
}
else
DestroyObject();
}
public void DestroyObject() //for end off animation option
{
Destroy(slider.gameObject);
Destroy(gameObject);
}
}
about the tutorial, i can send you all the codes i used in the game and for the tutorial, and can explain about it on skype if you want. you can contact me with pm or in facebook.
I like the Idea that u Instantiate it for every Enemy in the Script.
like me i have it already on the Object and if make a new Enemy i have to setup also the Healthbar (not much if u duplicate a enemy) but with ur solution u not need to do that. Very Interesting way.
but i still not like the Slider as Healthbar because so much Stuff on a Slider xD
Slider with SliderScript
Background
Fill Area -> Fill with ImageScript
Handle Slide Area -> Handle with ImageScript
In my solution u can make this also with just 1 Image Component so think about. You also can Instantiate that.
But u not need to Change this. Its totally fine and up to you, i just want to tell you my train of thought behind that.
sooo Lets move on and Have fun 
Edit: What i saw you make
public void DestroyObject() //for end off animation option
{
Destroy(slider.gameObject);
Destroy(gameObject);
}
Is it necessary that u destroy the Slider seperatly? I see you Instantiate it to the Level Canvas and then u translate the position to the GameObject. Isnt it better you Instantiate it directly in the Attacker/Defender? Then you can save alot of code and it would not change anything of the Gameplay. (perhaps it also will run faster because the Healthbar already attached on the Object.
With ur Solution u have to Update the Healthbars Position Seperatly. (Im now not sure how the performance cost is behind that, but in my mind i always try to think about to have less code and that it is easy to execute)
I think your idea with the image is actually much better than the slider. Very elegant! 
It could have saved me a few hours, because the slider has to be child of canvas in order to being seen.
Thats the reason i sould have instantiated it in the health script and destroy it in there… that was the only connection between the attacker\defender and the healthbar, so if i dont destroy it there i just lose connection with it.
I think a mix - using my instantiate and yours image, its actually the best way.
Thank you very much! I will change my code 
The problem is when u instantiate at the Object he uses his Scale for everything.
So your screen is only 12 Units wide. And 12 Units in real Scale are 120 meter in Unity in pixel.
Remember when u setup the LevelCanvas u make the Scale to 0,0075 and here is where the Magic happens.
When u make a new Canvas and not scale it down it is HUUUUUUUUUUUUGE
So when u make the Canvas for Health new and scale it down also use World Space, this should fix the Problem.
I hope i was able to explain.

