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

cms 动态网站开发百度官方客服

cms 动态网站开发,百度官方客服,魏县网站建设,互站网源码商城文章目录 前言开始完结 前言 添加程序摇摆和摆动是为任何FPS游戏添加一些细节的非常简单的方法。但是并不是所以的模型动画都会配有武器摆动动画效果,在本文中,将实现如何使用一些简单的代码实现武器摇摆和摆动效果,这比设置动画来尝试实现类…

文章目录

  • 前言
  • 开始
  • 完结

前言

添加程序摇摆和摆动是为任何FPS游戏添加一些细节的非常简单的方法。但是并不是所以的模型动画都会配有武器摆动动画效果,在本文中,将实现如何使用一些简单的代码实现武器摇摆和摆动效果,这比设置动画来尝试实现类似效果要容易得多。

开始

新增SwayNBobScript代码

using UnityEngine;// 武器摆动脚本
public class SwayNBobScript : MonoBehaviour
{[Header("Sway")]public float step = 0.01f;  // 摆动步长public float maxStepDistance = 0.06f;  // 最大步长距离Vector3 swayPos;  // 摆动位置[Header("Sway Rotation")]public float rotationStep = 4f;  // 摆动旋转步长public float maxRotationStep = 5f;  // 最大旋转步长Vector3 swayEulerRot;  // 摆动旋转角度public float smooth = 10f;  // 平滑移动速度float smoothRot = 12f;  // 平滑旋转速度[Header("Bobbing")]public float speedCurve;  // 速度曲线参数float curveSin { get => Mathf.Sin(speedCurve); }  // 曲线正弦值float curveCos { get => Mathf.Cos(speedCurve); }  // 曲线余弦值public Vector3 travelLimit = Vector3.one * 0.025f;  // 移动限制public Vector3 bobLimit = Vector3.one * 0.01f;  // 摆动限制Vector3 bobPosition;  // 摆动位置偏移量public float bobExaggeration;  // 摆动夸张系数[Header("Bob Rotation")]public Vector3 multiplier;  // 摆动旋转系数Vector3 bobEulerRotation;  // 摆动旋转角度void Update(){GetInput();Sway();SwayRotation();BobOffset();BobRotation();CompositePositionRotation();}Vector2 walkInput;  // 行走输入Vector2 lookInput;  // 视角输入// 获取输入void GetInput(){walkInput.x = Input.GetAxis("Horizontal");walkInput.y = Input.GetAxis("Vertical");walkInput = walkInput.normalized;lookInput.x = Input.GetAxis("Mouse X");lookInput.y = Input.GetAxis("Mouse Y");}// 摆动void Sway(){Vector3 invertLook = lookInput * -step;invertLook.x = Mathf.Clamp(invertLook.x, -maxStepDistance, maxStepDistance);invertLook.y = Mathf.Clamp(invertLook.y, -maxStepDistance, maxStepDistance);swayPos = invertLook;}// 摆动旋转void SwayRotation(){Vector2 invertLook = lookInput * -rotationStep;invertLook.x = Mathf.Clamp(invertLook.x, -maxRotationStep, maxRotationStep);invertLook.y = Mathf.Clamp(invertLook.y, -maxRotationStep, maxRotationStep);swayEulerRot = new Vector3(invertLook.y, invertLook.x, invertLook.x);}// 合成位置和旋转部分void CompositePositionRotation(){transform.localPosition = Vector3.Lerp(transform.localPosition, swayPos + bobPosition, Time.deltaTime * smooth);transform.localRotation = Quaternion.Slerp(transform.localRotation, Quaternion.Euler(swayEulerRot) * Quaternion.Euler(bobEulerRotation), Time.deltaTime * smoothRot);}// 摆动偏移void BobOffset(){speedCurve += Time.deltaTime * (MovementScript.Instance.isGround ? (Input.GetAxis("Horizontal") + Input.GetAxis("Vertical")) * bobExaggeration : 1f) + 0.01f;bobPosition.x = (curveCos * bobLimit.x * (MovementScript.Instance.isGround ? 1 : 0)) - (walkInput.x * travelLimit.x);bobPosition.y = (curveSin * bobLimit.y) - (Input.GetAxis("Vertical") * travelLimit.y);bobPosition.z = -(walkInput.y * travelLimit.z);}// 摆动旋转void BobRotation(){bobEulerRotation.x = (walkInput != Vector2.zero ? multiplier.x * (Mathf.Sin(2 * speedCurve)) : multiplier.x * (Mathf.Sin(2 * speedCurve) / 2));bobEulerRotation.y = (walkInput != Vector2.zero ? multiplier.y * curveCos : 0);bobEulerRotation.z = (walkInput != Vector2.zero ? multiplier.z * curveCos * walkInput.x : 0);}
}

代码挂载在武器父类上即可
在这里插入图片描述
正常情况下,我们还要实现武器在瞄准时,减低或者禁用武器摆动效果,可以选择在瞄准时启动和禁用SwayNBobScript脚本

public SwayNBobScript swayNBobScript;private void Update()
{DetermineAim();
}//瞄准
void DetermineAim(){swayNBobScript.enabled = true;if (Input.GetMouseButton(1)){swayNBobScript.enabled = false;} 
}

效果
在这里插入图片描述

完结

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

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

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

在这里插入图片描述

http://www.ritt.cn/news/20244.html

相关文章:

  • 网站建设 字体版权在线一键生成网页
  • vue 大型网站开发网络推广是网络营销的基础
  • 浙江品牌网站建设网络流量分析工具
  • 东莞做个网站百度山西授权代理
  • 天津平台网站建设报价百度地图网页版
  • wordpress文章如何去除p节点温州seo排名公司
  • 宝鸡网站制作公司广州网站优化步骤
  • 网站制作技术使用说明宜昌今日头条新闻
  • 网站建设合同缴纳印花税吗建立网站需要多少钱
  • 单位网站怎么做搜索引擎优化排名技巧
  • 如何申请域名网站注册关键词优化的策略有哪些
  • 网站上如何做天气插件常用的seo查询工具有哪些
  • 网站流量地址评价是什么意思厦门网
  • 可以做软件的网站网站建设黄页在线免费
  • seo技术优化怎么优化一个网站
  • 织梦中二次开发新的网站郑州网络推广公司
  • 企业网站建设服务热线百度平台我的订单查询在哪里
  • 电子科技网站模板郑州seo代理外包公司
  • 百度广州给做网站公司搜狗收录入口
  • 武汉武昌做网站推广龙岗网络公司
  • 做网站客户给不了素材如何联系百度平台客服
  • 专业的模板建站企业电商培训班一般多少钱一个月
  • 网站优化怎么做pptgoogleplay
  • 琼海在线seo快速排名优化方法
  • 音乐播放器网站怎么做网站推广优化方法
  • 爱站工具包如何增加网站网络推广服务费
  • jetpack by wordpress百度推广优化师
  • 建网站多少钱一平方曼联官方发文
  • axure怎么做网站的抽屉导航西安seo计费管理
  • 彩票网站做代理网站怎样优化文章关键词