I have a script with animations called Widget_Animation and an error massage saying:
NullReferenceException: Object reference not set to an instance of an object****Widget_Animation.Start () (at Assets/Scripts/Javascripts/Widget_Animation.js:14)
Here is the script.
//Widget_Animation: Animation State Manager for Widget.
//controls layers, blends, and play cues for all imported animations
private var nextPlayIdle = 0.0;
var waitTime = 8.0;
var playerController: Widget_Controller;
playerController = GetComponent(Widget_Controller) ;
//Initialize and set up all imported animations with proper layers--------
function Start(){
//set up layers - high numbers receive priority when blending
((GetComponent.<Animation>() as Animation)["Widget_Idle"] as AnimationClip).layer = -1;
((GetComponent.<Animation>() as Animation)["Idle"] as AnimationClip).layer = 0;
//we want to make sure that the rolls are synced together
((GetComponent.<Animation>() as Animation)["SlowRoll"] as AnimationClip).layer = 1;
((GetComponent.<Animation>() as Animation)["FastRoll"] as AnimationClip).layer = 1;
((GetComponent.<Animation>() as Animation)["Duck"] as AnimationClip).layer = 1;
((GetComponent.<Animation>() as Animation)as AnimationClip).SyncLayer(1);
((GetComponent.<Animation>() as Animation)["Taser"] as AnimationClip).layer = 3;
((GetComponent.<Animation>() as Animation)["Jump"] as AnimationClip).layer = 5;
//these should take priority over all others
((GetComponent.<Animation>() as Animation)["FallDown"] as AnimationClip).layer = 7;
((GetComponent.<Animation>() as Animation)["GotHit"] as AnimationClip).layer = 8;
((GetComponent.<Animation>() as Animation)["Die"] as AnimationClip).layer = 10;
((GetComponent.<Animation>() as Animation)["Widget_Idle"] as AnimationClip).wrapMode = WrapMode.PingPong;
((GetComponent.<Animation>() as Animation)["Duck"] as AnimationClip).wrapMode = WrapMode.Loop;
((GetComponent.<Animation>() as Animation)["Jump"] as AnimationClip).wrapMode = WrapMode.ClampForever;
((GetComponent.<Animation>() as Animation)["FallDown"] as AnimationClip).wrapMode = WrapMode.ClampForever;
//Make sure nothing is playing by accident, then start with a default idle.
GetComponent.<Animation>().Stop();
GetComponent.<Animation>().Play("Idle");
}
//Check for which animation to play------------------------------------
function Update(){
//on the ground animations
if(playerController.IsGrounded()){
GetComponent.<Animation>().Blend("FallDown", 0, 0.2);
GetComponent.<Animation>().Blend("Jump", 0, 0.2);
//if boosting
if (playerController.IsBoosting())
{
GetComponent.<Animation>().CrossFade("FastRoll", 0.5);
nextPlayIdle = Time.time + waitTime;
}
else if(playerController.IsDucking()){
GetComponent.<Animation>().CrossFade("Duck", 0.2);
nextPlayIdle = Time.time + waitTime;
}
// Fade in normal roll
else if (playerController.IsMoving())
{
GetComponent.<Animation>().CrossFade("SlowRoll", 0.5);
nextPlayIdle = Time.time + waitTime;
}
// Fade out walk and run
else
{
GetComponent.<Animation>().Blend("FastRoll", 0.0, 0.3);
GetComponent.<Animation>().Blend("SlowRoll", 0.0, 0.3);
GetComponent.<Animation>().Blend("Duck", 0.0, 0.3);
if(Time.time > nextPlayIdle){
nextPlayIdle= Time.time + waitTime;
PlayIdle();
}
else
GetComponent.<Animation>().CrossFade("Widget_Idle", 0.2);
}
}
//in air animations
else{
if(Input.GetButtonDown("Jump")){
GetComponent.<Animation>().CrossFade("Jump");
}
if(!playerController.IsGrounded()){
GetComponent.<Animation>().CrossFade("FallDown", 0.5);
}
}
//test for idle
if(Input.anyKey){
nextPlayIdle = Time.time + waitTime;
}
}
//Other functions--------------------------------------------
function PlayTaser(){
GetComponent.<Animation>().CrossFade("Taser", 0.2);
}
function PlayIdle(){
GetComponent.<Animation>().CrossFade("Idle", 0.2);
}
function GetHit(){
GetComponent.<Animation>().CrossFade("GotHit", 0.2);
}
function PlayDie(){
GetComponent.<Animation>().CrossFade("Die", 0.2);
}
@script AddComponentMenu("Player/Widget'AnimationManager")
The error is in this line
((GetComponent.<Animation>() as Animation)["Widget_Idle"] as AnimationClip).layer = -1;
and probably in every other animation line in the code. Any ideas how to fix it becuase i have been stuck on it for weeks. Thanks in advance