I’ve been trying to get answers from on here for a day or 2 now, and I cannot seem to find one. Each answer = new question. I think I am getting closer, before I had an error, now it just doesn’t do anything. (I probably did something stupid somewhere) I am very new to coding, so don’t expect me to understand a lot (Do you know any good tutorial series?). I basically want to get rid of the PlayerMovement, and then 2 seconds later get rid of Mesh, BoxCollider, if Health <= 0, (In case it goes negative or something). And then, after five seconds, I want all three of those to come back. And then, Health = 100. I thought I had the code right, but when health = 0, nothing happens. Thanks in advance for the help (And possibly a good series to watch on youtube for c# coding)
Here is the script:
using UnityEngine;
using System.Collections;
public class AttributeDeclaration : MonoBehaviour {
#region Public ints
public int Health = 100;
public int Magic = 100;
public int Strength = 100;
public int Stamina = 100;
public int Defense = 100;
//Maximum attributes
public int MaxHealth = 100;
public int MaxMagic = 100;
public int MaxStrength = 100;
public int MaxStamina = 100;
public int MaxDefense = 100;
//Testing Stuff
public int DamageAmount = 20;
//---------------------------------------------------------------------------------------------
#endregion
public PlayerLevelDeclaration PT;
public PlayerMovement PM;
public HealthPotion HP;
//----------------------------------------------------------------------------------------
void Awake(){
newPos = transform.position;
}
//-------------------------
// Use this for initialization
void Start () {
}
//-----------------------------------------------------------------------------------------
// Update is called once per frame
void Update () {
PT = gameObject.GetComponent<PlayerLevelDeclaration>();
HP = gameObject.GetComponent<HealthPotion>();
PM = gameObject.GetComponent<PlayerMovement>();
TempDamageHealth();
TempDamageStamina();
TempDamageMagic();
TempDamageStrength();
TempDamageDefense();
DisallowNegative();
KillPlayer();
}
//----------------------------------------------------------------------------------------
void DisallowNegative(){
if(Health <= 0)
{
Health = 0;
}
if(Stamina <= 0)
{
Stamina = 0;
}
if(Magic <= 0)
{
Magic = 0;
}
if(Strength <= 0)
{
Strength = 0;
}
if(Defense <=0)
{
Defense = 0;
}
}
//-----------------------------------------------------------------------------------------
public int TempDamageHealth()
{
if(Input.GetKeyDown(KeyCode.Keypad1))
{
Health = Health - DamageAmount;
}
return Health;
}
//-------------------------------------------------------------------------------------
public int TempDamageStamina()
{
if(Input.GetKeyDown(KeyCode.Keypad2))
{
Stamina = Stamina - DamageAmount;
}
return Stamina;
}
//--------------------------------------------------------------------------------------
public int TempDamageMagic()
{
if(Input.GetKeyDown(KeyCode.Keypad3))
{
Magic = Magic - DamageAmount;
}
return Magic;
}
//------------------------------------------------------------------------------------------
public int TempDamageStrength()
{
if(Input.GetKeyDown(KeyCode.Keypad4))
{
Strength = Strength - DamageAmount;
}
return Strength;
}
//----------------------------------------------------------------------------------
public int TempDamageDefense()
{
if(Input.GetKeyDown(KeyCode.Keypad9))
{
Defense = Defense - DamageAmount;
}
return Defense;
}
//--------------------------------------------------------------------
Vector3 newPos;
bool IsAlive = true;
IEnumerator KillPlayer(){
if(Health <= 0)
{
IsAlive = false;
Health = 0;
//Hopefully this makes it so the player can't move as soon as Health = 0, but doesn't disappear and lose
//collision until after 2 seconds. Then, 5 seconds later, the player's position is set to 0, 0, 0, and
//He regains movement, reappears, and regains collision.
//Kill Player
PM.enabled = false;
yield return new WaitForSeconds(2f);
renderer.enabled = false;
collider.enabled = false;
PM.enabled = false;
//Wait 5 seconds
yield return new WaitForSeconds(5f);
//Set position code;
Vector3 PlayerSpawn = new Vector3(0f , 0f , 0f);
newPos = PlayerSpawn;
transform.position = newPos;
//Rest
renderer.enabled = true;
collider.enabled = true;
PM.enabled = true;
IsAlive = true;
Health = MaxHealth;
}
yield return IsAlive == true;
}
}