Я работаю в «Единстве 5» и пытаюсь заставить анимацию работать правильно. Когда нажимается кнопка «Fire1», то есть левый щелчок, здоровье моих врагов уменьшается до тех пор, пока оно не достигнет нуля.
Когда здоровье достигает нуля, должна воспроизводиться анимация смерти.
Ни GetComponent<animation>("Dead")
, ни play.animation("Dead")
не работают.
Я тоже пробовал GetComponent.<animation>("Dead")
.
Первый фрагмент кода не работает из-за <
и >
. Второй фрагмент не работает, потому что .
и play
(хотя я сделал переменную для него). Спасибо за любую помощь, которую вы можете предоставить. Мой код
#pragma strict
var range: float = 1.8;
var attackInterval: float = 0.7;
var meleeDamage: float = 30;
var GetComponent.<animation>("Dead");
private var nextAttack: float = 0;
function MeleeAttack()
{
if (Time.time > nextAttack)
{ // only repeat attack after attackInterval
nextAttack = Time.time + attackInterval;
// get all colliders whose bounds touch the sphere
var colls: Collider[] = Physics.OverlapSphere(transform.position,
range);
for (var hit : Collider in colls)
{
if (hit && hit.tag == "Enemy")
{ // if the object is an enemy...
// check the actual distance to the melee center
var dist = Vector3.Magnitude(hit.transform.position -
transform.position);
if (dist <= range)
{ // if inside the range...
// apply damage to the hit object
hit.SendMessage("ApplyDamage", meleeDamage);
}
}
}
}
}
function Update()
{
if (Input.GetButtonDown("Fire1"))
{
MeleeAttack();
}
}
var health: float = 100;
function ApplyDamage(damage: float)
{
if (health > 0)
{ // if enemy still alive (don't kick a dead dog!)
health -= damage; // apply the damage...
// <- enemy can emit some sound here with audio.Play();
if (health <= 0)
GetComponent.<animation>("Dead");
{ // if health has gone...
// enemy dead: destroy it, explode it etc.
}
}
}