- Home /
Two problems with my worm script. 1)Not rotating when he gets hit and i am getting a turret error.
I am following the Tornado Twins tutorials and i am having a few problems. My worm isnt rotating/spinning around when he gets hit. This is my script for my worm.
//Moving around var speed = 3.0; var rotateSpeed = 3.0;
//Shooting var bulletPrefab:Transform;
//Dying private var dead = false;
//Getting 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) //Checks to see if the Worm lost a life { transform.position = Vector3(0,4,0); // Places The worm at the spawn gameObject.Find("Main Camera").transform.position = Vector3(0,4,-10); //Moves the camera back to the camera's spawn dead = false; //Sets the worms status to be alive again. }
if(gotHit) // Checks to see if the Worm got hit by a turrets bullet.
{
if(tumbleSpeed < 1) // Checks to see if the worm should stop spinning.
{
tumbleSpeed = backup[0]; //Resets variables for getting hit and turns got hit to off
decreaseTime = backup[1];
decayTime = backup[2];
gotHit = false;
}else
{
transform.Rotate(0,tumbleSpeed * Time.deltaTime,0, Space.World); //Spins the worm when he gets hit.
tumbleSpeed = tumbleSpeed - decreaseTime;
decreaseTime += decayTime;
}
}
}
function OnControllerColliderHit(hit : ControllerColliderHit) { if(hit.gameObject.tag == "fallout") { dead = true; HealthControl.LIVES -= 1; }
if(hit.gameObject.tag == "Projectile")
{
gotHit = true;
}
}
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);
if(Input.GetButtonDown("Jump"))
{
var bullet = Instantiate(bulletPrefab,GameObject.Find("SpawnPoint").transform.position,Quaternion.identity);
bullet.rigidbody.AddForce(transform.forward * 2000);
}
}
@script RequireComponent(CharacterController)
and i am getting this error for my turret control script though i do not know what the problem is. The error is : NullReferenceException TurretControl.Shoot (System.Object seconds) (at Assets/Scripts/TurretControl.js:25) TurretControl.Update () (at Assets/Scripts/TurretControl.js:15)
this is the turret control script.(NOTE: I DO NOT SEE ANY CONSEQUENCES OF THIS ERROR ATM BUT I WOULD LIKE TO RESOLVE OF IT BEFORE IT MESSES SOMETHING UP LATER.)
var LookAtTarget : Transform; var damp : float = 6.0; var bulletPrefab : Transform; var savedTime = 0;
function Update () { if(LookAtTarget) { var rotate = Quaternion.LookRotation(LookAtTarget.position - transform.position); transform.rotation = Quaternion.Slerp(transform.rotation, rotate, Time.deltaTime * damp); var seconds : int = Time.time; var oddeven = (seconds % 2); if(oddeven) Shoot(seconds); //transform.LookAt(LookAtTarget); }
}
function Shoot(seconds) { if(seconds!=savedTime) { var bullet = Instantiate(bulletPrefab,transform.Find("spawnPoint").transform.position , Quaternion.identity); bullet.rigidbody.AddForce(transform.forward * 2000); } savedTime=seconds; }
Your answer
Follow this Question
Related Questions
Compiler errors need help with. Please 1 Answer
OnTriggerEnter Problem 3 Answers
syntax errors 1 Answer
UnassignedReferenceException 1 Answer
Can someone help me fix my Javascript for Flickering Light? 6 Answers