老师,我这个机器人追主角的时候,会卡在这个地方。我版本比视频里面的版本高,好像navmeshagent更新了,updateposition=false时候,他那个寻路插件的框就不和主角一起移动,我网上查说用navmeshagent.nextposition=transform.position就可以了。不知道是不是因为这个所以会卡在这里,这是机器人移动的代码
我想了个方法是设置一个静态的3d正方体,设置他的大小,重新烘焙navmeshangent,然后再删除这个物体。目前是没什么问题了,不知道这个方法可取不可取。
public class EnemyShoot : MonoBehaviour
{
public float minDamage = 30;
private Animator animator;
private bool haveShoot=false;
private PlayerHealth playerHealth;
void Awake ()
{
animator = GetComponent<Animator>();
playerHealth = GameObject.FindGameObjectWithTag(Tags.player).GetComponent<PlayerHealth>();
}
// Update is called once per frame
void Update ()
{
if (animator.GetFloat("Shot") > 0.5)
{
Shooting();
print("调用射击");
}
else
{
haveShoot = false;
}
}
private void Shooting()
{
if (haveShoot==false)
{
//计算伤害
float damage = minDamage + 90 - 9 * (transform.position - playerHealth.transform.position).magnitude;
playerHealth.TakeDamage(damage);
haveShoot = true;
}
}
还有个问题就是机器人射击动画的时候不调用红色部分,我按您视频里面做的,在状态机里面弄了个和动画curves一样的shot变量,但是没输出print。