- Home /
strange things in my script
so im watching atutorial (tornadotwins) and im trying to die but i useally dont what happens is when i get hit once most of the time it counts as 2 and when i am 1 away from dieing i just dont, i die when falling out of bouds but not from the fire balls i want to be hit by here is the health script any ideas?:
var health1 : Texture2D; //one live left var health2 : Texture2D; //two lives left var health3 : Texture2D; //full health var bodypart1 : Transform; var bodypart2 : Transform;
static var LIVES = 3; static var HITS = 0;
function Update () { print("Lives: "+LIVES+" Hits: "+HITS); //lives: 3 Hits: 0
switch(LIVES)
{
case 3:
guiTexture.texture = health3;
break;
case 2:
guiTexture.texture = health2;
break;
case 1:
guiTexture.texture = health1;
break;
case 0:
//gameover script here
break;
}
switch(HITS)
{
case 1:
//disable bodypart 1
bodypart2.renderer.enabled=false;
break;
case 2:
bodypart1.renderer.enabled = false;
bodypart2.renderer.enabled=false;
break;
case 3:
LIVES -= 1;
HITS = 0;
MoveAround.dead = true;
bodypart1.renderer.enabled = true;
bodypart2.renderer.enabled = true;
break;
}
}
heres my controler 4 my character
//Moving around var speed = 3.0; var rotateSpeed = 3.0; //Shooting var bullitPrefab:Transform; //Dying static var dead = false;
//Geting hit var tumbleSpeed = 800; var decreaseTime = 0.01; var decayTime = 0.01; static var gotHit = false; private var backup = [tumbleSpeed, decreaseTime, decayTime];
function LateUpdate() { if(dead) { transform.position = Vector3(0,9,0);
dead = false;
}
if(gotHit)
{
if(tumbleSpeed < 1)
{
//we're not hit anymore... reset & get back in the game!
tumbleSpeed = backup[0];
decreaseTime = backup[1];
decayTime = backup[2];
gotHit = false;
}
else
{
//we're hit! Spin our character around
transform.Rotate(0,tumbleSpeed * Time.deltaTime,0, Space.World);
tumbleSpeed = tumbleSpeed-decreaseTime;
decreaseTime += decayTime;
}
}
}
//function OnControllerColliderHit(hit : ControllerColliderHit) function OnTriggerEnter( hit : Collider ) { if(hit.gameObject.tag == "fallout") { dead = true; //substract life here HealthControl.LIVES -= 1; } if(hit.gameObject.tag == "enemyProjectile") { gotHit = true; HealthControl.HITS += 1; Destroy(hit.gameObject); } }
function Update () { var controller : CharacterController = GetComponent(CharacterController); transform.Rotate(0, Input.GetAxis ("Horizontal") rotateSpeed, 0); var forward = transform.TransformDirection(Vector3.forward); var curSpeed = speed Input.GetAxis ("Vertical"); controller.SimpleMove(forward * curSpeed);
//shooting!
if(Input.GetButtonDown("Jump"))
{
var bullit = Instantiate( bullitPrefab,
transform.Find("spawnPoint").transform.position,
Quaternion.identity);
bullit.tag = "wormProjectile";
bullit.rigidbody.AddForce(transform.forward * 2000);
}
}
@script RequireComponent(CharacterController)
Answer by Henri 1 · Apr 05, 2011 at 08:02 AM
Check out the Lerpz tutorial, they handle health and death in the scripts, to get an idea.
Your answer
