I have searched online but couldn't find a working answer. I want the tree to respawn after some time but for some reason the CurrentTimer does not go down after being set to 10.
This is my code:
#pragma strict
var MaxHealth = 1000;
var CurrentHealth = 1000;
var TreeObj : GameObject;
var TreeTr : Transform;
var RespawnTransform : Transform;
var CurrentTimer : float = 0;
var MaxTimer : float = 10;
var TreeRespawn = false;
function Update()
{
if (CurrentHealth <= 0)
{
Inventory();
}
//Start countdown timer from 10
if (CurrentTimer > 0)
{
CurrentTimer -= Time.deltaTime * 10;
}
CurrentTimer = Mathf.Clamp(CurrentTimer, 0, MaxTimer);
//Set timer
if (TreeRespawn == true)
{
CurrentTimer = MaxTimer;
TreeRespawn = false;
}
if (CurrentTimer < 0)
{
RespawnTree();
}
}
function Inventory() //Set the tree unactive and start respawn timer
{
TreeObj.SetActive(false);
Debug.Log("Add wood to inventory");
TreeRespawn = true;
}
function RespawnTree() //Respawn tree
{
TreeObj.SetActive(true);
TreeTr.transform.GetComponent(Rigidbody).useGravity = false;
TreeTr.transform.GetComponent(Rigidbody).isKinematic = true;
TreeTr.transform.position = RespawnTransform.position;
TreeTr.transform.rotation = RespawnTransform.rotation;
RespawnStats();
CurrentTimer = 0;
TreeRespawn = false;
Debug.Log("A tree has respawned.");
}
function RespawnStats()
{
CurrentHealth = MaxHealth;
}
I am a beginner in unity and coding so the code might be crappy and unorganized a bit.
↧