介绍
unity制作枪战游戏,如何实现瞄准效果?
点击鼠标右键,实现视野的放大
方法
/// <summary>
/// 瞄准的逻辑
/// </summary>
public void DoingAim() {
//如果鼠标右键被按下,且没有在换弹夹,且不在奔跑状态
if (Input.GetMouseButton(1)&&!isReloading&&!PM.isRun)
{
//开启瞄准状态
isAiming = true;
//设置动画参数
anim.SetBool("Aim",isAiming);
//关闭准心UI
crossHairUI.gameObject.SetActive(false);
//缩小摄像机视野,以模拟瞄准效果
mainCamera.fieldOfView = 25;
}
else
{
//关闭瞄准状态
isAiming = false;
//设置动画参数
anim.SetBool("Aim", isAiming);
//开启准心UI
crossHairUI.gameObject.SetActive(true);
//恢复摄像机视野
mainCamera.fieldOfView = 60;
}
}
该函数包含以下逻辑:
检测鼠标右键是否按下,同时检查是否在换弹夹和奔跑状态中。
如果是,则开启瞄准状态,设置动画参数控制瞄准动画播放,关闭准心UI,并且缩小摄像机视野,以模拟瞄准效果。
如果不是,则关闭瞄准状态,设置动画参数,开启准心UI,并且恢复摄像机视野。
最后添加动画即可