【发布时间】:2017-04-16 23:27:28
【问题描述】:
我有一个玩家对象和一个敌人对象,它们的身体和武器上都有碰撞器,但这会导致它们在彼此碰撞时造成伤害。我想要的是这样他们只有在“isAttacking”动画运行时才会造成伤害。我的代码附加到玩家和敌人对象上,如下所示:
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
public class detectHit : MonoBehaviour
{
public Slider healthbar;
Animator anim;
public string opponent;
public Collider ecollider;
// Use this for initialization
void Start()
{
anim = GetComponent<Animator>();
}
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag != opponent) return;
healthbar.value -= 20;
if (healthbar.value <= 0)
{
anim.SetBool("isDead", true);
ecollider.gameObject.SetActive(false);
}
}
// Update is called once per frame
void Update()
{
}
}
我试过上网,但大多数东西都过时了,我觉得我需要做这样的事情:
if(anim.GetCurrentAnimatorStateInfo(0).IsName("isAttacking")){
healthbar.value -= 20;
}
但这不起作用,也许是因为我没有看到对手的动画?如果是这种情况,我只是不知道如何寻找敌人的动画。
任何帮助将不胜感激。
【问题讨论】: