老师,你好!
我定义了一个射门的方法,就是玩家按下射门键时,给会给足球添加一个速度,使之飞出去。发现射门动画,还没播放完呢,球就已经飞出去了。那我就想到了,用延时函数,延时几秒后,再给足球添加速度。不知道是什么原因,球不会飞出去了。Invoke,和 Coroutine 协程都试过了,都不行。后来我想给射门动画添加下事件,播放到关键帧,调用射门方法,结果球还是不会飞。
老师,您给看看 是哪里出了问题?
public void ShootBall()
{
if (haveball)
{
animator.CrossFade("Strike Foward Jog", 0f);//播放射门动画
}
}
public void SetVelocity()
{
football.SetActive(true);//显示足球
footballclass.haveballplayer = null;//将持球者设为空
Ball.GetComponent<SphereCollider>().isTrigger = false;//设置足球的碰撞器
falseball.SetActive(false);//假球隐藏
haveball = false;
// 设置足球的位置
Ball.transform.position = this.transform.Find("ShootPosition").position;
Ball.transform.rotation = transform.rotation;
//冻结足球的旋转
footballrRigidbody.constraints = RigidbodyConstraints.FreezeRotation;
//旋转足球的角度
float a = shootangle - 90;
Ball.transform.Rotate(a, 0, 0);
footballrRigidbody.velocity = Ball.transform.forward * 25f * shootmagnitude;
footballrRigidbody.constraints = RigidbodyConstraints.None;
Debug.Log("2222222222");
}