- Home /
GUI Counter Based on Animation or RaycastHit
Hello, I am developing a game where the player collects wood from a tree. Each tree contains two wood. So when the tree is out of wood an animation plays and the tree falls over. What I am asking to do is display a counter, preferably a GUIText, that will increase when the Wood is decreased from the tree. So if the player takes one wood from one tree and one from another the counter will show "Wood: 2". There are going to be multiple trees.
This is the script attached to the player:
#pragma strict
var Damage : int = 50;
var Distance : float;
var MaxDistance : float = 5;
var Text : GameObject;
function Update ()
{
if (Input.GetButtonDown("Fire1"))
{
var hit : RaycastHit;
if (Physics.Raycast (transform.position, transform.TransformDirection (Vector3.forward), hit))
{
Distance = hit.distance;
if (Distance < MaxDistance)
{
hit.transform.SendMessage("ApplyDamage", Damage, SendMessageOptions.DontRequireReceiver);
}
}
}
}
And this is the script attached to the tree:
#pragma strict
var Wood = 100;
function Update ()
{
if (Wood <= 0)
{
Dead();
}
}
function ApplyDamage (Dammage : int)
{
Wood -= Dammage;
}
function Dead ()
{
animation.Play ("TreeFall");
}
I was thinking counting the amount of times the RayCastHit worked successfully in an if statement, but could not find a way to word it.
Thanks before hand!
Your answer
Follow this Question
Related Questions
Raycasting fail 1 Answer
Animation Event calling function 1 Answer
How do I make my script switch back to my regular animations 1 Answer
If an specifc animation is playing dont let other animations play. 1 Answer
How to animate this grass off a vertex, and make it move out of the way of the charchter? 1 Answer