I am trying to reference a script but it keeps giving me this error. This is the code
var AttackCombo : AttackCombo;
function Awake ()
{
AttackCombo.Test();
and this is the script i’m trying to reference
public var attackTime : float[]; // store each length of each attack in order (in the inspector)
//public var attackAnimations : AnimationClip[]; // store a reference to the animations, then use the same index 'attackType'
public var waitTime : float = 10; // how long player has to hit LMB after last attack has finished
private var attackTimer : float = 0.0; // timer variable
private var attackType : int = -1; // reference to what attack the combo is up to (-1 is none, 0+ is the array index for attackTime )
//private var attack
enum attack { Idle, Attacking, Waiting } // different states while the combo inputs are being checked
var attackState : attack; // current attack input state (public for viewing in the Inspector)
var test : int = 0;
var totalChainedHits : int = 0; // total Chained Hits without missing a LMB press (public for viewing in the Inspector)
function Start()
{
// set defaults
attackType = -1;
attackState = attack.Idle;
// tell animation to play Idle
totalChainedHits = 0;
// You could set up the attackTime array here (and make it private)
attackTime = new float[3];
attackTime[0] = 0.5;
attackTime[1] = 0.5;
attackTime[2] = 0.5;
}
function Test () {
test++;
}
function Update()
{
CheckForPlayerAttackInput();
}
function CheckForPlayerAttackInput()
{
switch( attackState ) // what state is the combo in
{
case attack.Idle :
if ( Input.GetMouseButtonDown(0) ) // start attacking
{
animation.CrossFade("Attack");
attackType = 0;
attackState = attack.Attacking;
attackTimer = attackTime[0];
// tell animation to play attack 0 (first attack)
totalChainedHits = 1;
}
break;
case attack.Attacking :
attackTimer -= Time.deltaTime; // wait for attackTimer
if ( attackTimer < 0 )
{
attackTimer = waitTime;
attackState = attack.Waiting;
}
/* // uncomment this to break the combo while attacking
if ( Input.GetMouseButtonDown(0) ) // break attack
{
attackType = -1;
attackState = attack.Idle;
// tell animation to play Idle
}
*/
break;
case attack.Waiting :
attackTimer -= Time.deltaTime; // check the Waiting Timer (attackTimer)
if ( attackTimer < 0 ) // ran out of time to chain combo
{
attackType = -1;
attackState = attack.Idle;
// animation.CrossFade("Idle");
// tell animation to play Idle
}
if ( Input.GetMouseButtonDown(0) ) // continue attacking
{
// animation.CrossFade("Attack1");
attackType ++; // go to next attack
if ( attackType >= attackTime.Length ) // check if the combo is over, start a new combo
{
attackType = 0;
attackState = attack.Attacking;
attackTimer = attackTime[0];
// tell animation to play attack 0 (first attack)
animation.CrossFade("Attack");
totalChainedHits ++;
}
else
{
attackState = attack.Attacking;
attackTimer = attackTime[ attackType ];
animation.CrossFade("Combo");
// tell animation to play attack 'attackType' (next attack in array)
totalChainedHits ++;
}
}
break;
}
}
// example GUI for testing this script
function OnGUI()
{
GUI.Box( Rect( 10, 10, 100, 25 ), "Hit " + attackType.ToString() );
GUI.Box( Rect( 10, 60, 100, 25 ), "Hit " + test.ToString() );
GUI.Box( Rect( (Screen.width * 0.5) - 50, 10, 100, 25 ), "" + attackState.ToString() );
GUI.Box( Rect( Screen.width - 110, 10, 100, 25 ), "Total " + totalChainedHits.ToString() );
GUI.Box( Rect( (Screen.width * 0.5) - 50, 45, 100, 25 ), "" + attackTimer.ToString() );
}