当前位置: 首页 > news >正文

南昌网站开发培训班外链工具在线

南昌网站开发培训班,外链工具在线,wordpress自定页面,昆明利于优化的网站最终效果 文章目录 最终效果前言相机偏移震动相机震动脚本换弹节点震动 武器射击后退效果武器后坐力效果完结 前言 关于后坐力之前其实已经分享了一个:FPS游戏后坐力制作思路 但是实现起来比较复杂,如果你只是想要简单的实现,可以看看这个&…

最终效果

在这里插入图片描述

文章目录

  • 最终效果
  • 前言
  • 相机偏移震动
    • 相机震动脚本
    • 换弹节点震动
  • 武器射击后退效果
  • 武器后坐力效果
  • 完结

前言

关于后坐力之前其实已经分享了一个:FPS游戏后坐力制作思路

但是实现起来比较复杂,如果你只是想要简单的实现,可以看看这个,其实原理是控制相机的震动实现后坐力和偏移

相机偏移震动

相机震动脚本

新增CameraOffset,Singleton是一个泛型单例

// 控制相机偏移
public class CameraOffset : Singleton<CameraOffset>
{private Vector3 currentRotation; // 当前旋转角度private Vector3 targetRotation; // 目标旋转角度public float snappiness; // 旋转平滑度public float returnAmount; // 回归平滑度void Update(){// 让目标旋转角度逐渐回归到零向量targetRotation = Vector3.Lerp(targetRotation, Vector3.zero, Time.deltaTime * returnAmount);// 使用插值方法让当前旋转角度逐渐接近目标旋转角度currentRotation = Vector3.Slerp(currentRotation, targetRotation, Time.fixedDeltaTime * snappiness);// 将当前旋转角度应用到相机的局部旋转transform.localRotation = Quaternion.Euler(currentRotation);}// 震动相机public void Shake(int i){// 设置目标旋转角度为一个在(-i, i)范围内的随机向量targetRotation = new Vector3(Random.Range(-i, i), Random.Range(-i, i), Random.Range(-i, i));}
}

配置参数,脚本挂载在相机身上
在这里插入图片描述
注意,通常相机的偏移震动可能会和人物鼠标控制相机视角冲突,所以最好是给相机新增一个父类,防止二者互相干扰
在这里插入图片描述

换弹节点震动

还可以在武器换弹时的某些节点,调用相机的震动,实现不错的人物操作反馈
在这里插入图片描述

//动画事件
public class PangXieAnimEnvent : MonoBehaviour
{public void PangXieAnim(int i){CameraOffset.Instance.Shake(i);}
}

挂载PangXieAnimEnvent 脚本到对应带Animator的武器身上
在这里插入图片描述

武器射击后退效果

//枪支向后移动
public class WeaponBack : Singleton<WeaponBack> 
{private Vector3 startPosition;public float aimSmoothing = 10;//平滑度private void Start() {startPosition = transform.localPosition;}private void Update() {Vector3 desiredPosition = Vector3.Lerp(transform.localPosition, startPosition, Time.deltaTime * aimSmoothing); // 使用插值平滑过渡到目标位置transform.localPosition = desiredPosition; // 更新枪支的本地位置}public void Back(){transform.localPosition -= Vector3.forward * 0.1f; // 使枪支向后移动}
}

调用·

WeaponBack.Instance.Back();

武器后坐力效果

这里再分享一个实现武器后坐力脚本

// 武器后坐力脚本
public class WeaponRecoil : Singleton<WeaponRecoil>
{public float minX, maxX; // 后坐力产生的旋转角度范围public float minY, maxY;public Transform recoilCamera; // 产生后坐力的相机Vector3 rot; // 相机当前的旋转角度private void Update(){rot = recoilCamera.transform.localRotation.eulerAngles;if (rot.x != 0 || rot.y != 0){// 如果相机的旋转角度不为0,则逐渐回到0的旋转角度recoilCamera.transform.localRotation = Quaternion.Slerp(recoilCamera.transform.localRotation, Quaternion.Euler(0, 0, 0), Time.deltaTime * 3);}}// 产生后坐力效果的方法public void Recoil(){// 在规定的范围内随机产生旋转角度偏移量float recX = Random.Range(minX, maxX);float recY = Random.Range(minY, maxY);// 将相机的旋转角度设置为产生偏移后的角度,并更新到相机上recoilCamera.transform.localRotation = Quaternion.Euler(rot.x - recY, rot.y + recX, rot.z);}
}

在武器射击时调用后坐力

WeaponRecoil.Instance.Recoil();

配置参数
在这里插入图片描述
效果
在这里插入图片描述

完结

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,以便我第一时间收到反馈,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!

好了,我是向宇,https://xiangyu.blog.csdn.net

一位在小公司默默奋斗的开发者,出于兴趣爱好,最近开始自学unity,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!php是工作,unity是生活!如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~

在这里插入图片描述

http://www.khdw.cn/news/16517.html

相关文章:

  • 西红门做网站合肥头条今日头条新闻最新消息
  • 做网站硬件跨境电商seo什么意思
  • qq空间怎么跟网站做链接吗如何在百度上发表文章
  • 网站安全建设目的图片优化网站
  • 上海专业建站公seo兼职平台
  • 收费网站有哪些免费自动推广手机软件
  • 建设工程监理招标网站引流用什么话术更吸引人
  • 网站建设服务价格上海网络公司seo
  • 江西做网站多少钱常见网络营销推广方法
  • 一键制作网站软件正规的计算机培训机构
  • 新乡专业做网站公司如何创建自己的卡网
  • 网站公告怎么做百度app推广方法
  • 定制高端网站建设报价免费发布信息网
  • 建设了网站怎么管理系统产品网络营销方案
  • 什么做自己的网站最新网络营销方式有哪些
  • js网站文字重叠网络整合营销的特点有
  • 深圳网站建设培训机构做百度线上推广
  • 深圳h5模板建站全球搜索引擎排名2021
  • 做企业网站要多长时间站长工具域名解析
  • h网站模板整合营销案例
  • wordpress b站视频十大接单平台
  • 郑州做网站比较好的公司竞价托管一般要多少钱
  • 西安社会面疫情浙江网站seo
  • 网站备案是什么搜狗seo排名软件
  • 武汉市网站制作公司怎么创建一个自己的网站
  • 渠道合作一站式平台网络推广服务商
  • 肖云路那有做网站公司新冠病毒最新消息
  • 淘宝客网站怎么做百度关键词优化公司
  • 中国建设局网站首页台州关键词优化平台
  • 江苏网站设计公司电话双滦区seo整站排名