Hello everyone,
I currently have an inventory system that causes an equipped item to be created in the players hands. The only problem is, the Animator (the arms) is left blank, since it the arms exist in the scene while the created item does not until now.
I was wanting to know if there is a way to assign a gameObject (the arms) to the Animator variable (for the weapon). (or if you know another way to do it?)
Below is the script I am using. it is attached to the created item.
I really appreciate your help on this!
here is my script to play the animation once the flashlight is equipped. (I am also aware it is on “fire2” to play the animation)
#pragma strict
var TheDamage : int = 50;
var Distance : float;
var MaxDistance : float = 0.5;
var TheAnimator : Animator;
var DamageDelay : float = 0.6;
private var Swing01Streak = 0;
private var Swing02Streak = 0;
function Update ()
{
if (Input.GetButtonDown("Fire2"))
{
AttackDamage ();
}
}
function AttackDamage ()
{
if (Random.value >= 0.5 && Swing01Streak <= 2)
{
TheAnimator.SetBool ("Swing01",true);
Swing01Streak += 1;
Swing02Streak = 0;
}
else
{
if (Swing02Streak <= 2)
{
TheAnimator.SetBool ("Swing02", true);
Swing01Streak = 0;
Swing02Streak += 1;
}
else
{
TheAnimator.SetBool ("Swing01", true);
Swing01Streak += 1;
Swing02Streak = 0;
}
}
yield WaitForSeconds (DamageDelay);
//Actual attacking
var hit : RaycastHit;
var ray = Camera.main.ScreenPointToRay (Vector3(Screen.width/2,Screen.height/2,0));
if (Physics.Raycast (ray, hit))
{
Distance = hit.distance;
if (Distance < MaxDistance)
{
hit.transform.SendMessage ("ApplyDamage", TheDamage, SendMessageOptions.DontRequireReceiver);
}
}
TheAnimator.SetBool("Swing01",false);
TheAnimator.SetBool("Swing02",false);
}