实现枪开枪后, 向上偏移一段距离,再缓慢下移复位(模仿cs)

调小后座力

using UnityEngine;
using System.Collections;public class Camera2Follower : MonoBehaviour {// 枪cd计时器float timer;// 后座力 之前枪摄像头的角度Vector3 s_pre_euler;public float gun_end_force = 0.53f; // 枪后座力大小 (可以先调大些方便调试)void Update (){....timer += Time.deltaTime;if (Input.GetButton("Fire1") && timer >= 0.15){// 计时器清零timer = 0f;s_pre_euler = transform.eulerAngles;// 后座力rotationY += Input.GetAxis("Mouse Y") * sensitivityY + gun_end_force;Quaternion yQuaternion2 = Quaternion.AngleAxis(rotationY, Vector3.left);transform.localRotation = originalRotation * yQuaternion2;}// 检测鼠标有没有移动if (Input.GetAxis("Mouse Y") != 0){//Debug.Log("X: " + transform.eulerAngles);s_pre_euler = transform.eulerAngles;rotationY += Input.GetAxis("Mouse Y") * sensitivityY;rotationY = ClampAngle(rotationY, minimumY, maximumY);Quaternion yQuaternion = Quaternion.AngleAxis(rotationY, Vector3.left);transform.localRotation = originalRotation * yQuaternion;}else{recoverGun();}}// 恢复后座力以前的位置void recoverGun() {s_pre_euler.y = transform.eulerAngles.y;Quaternion current_cam = Quaternion.Euler(transform.eulerAngles);Quaternion target_cam = Quaternion.Euler(s_pre_euler);transform.eulerAngles = Quaternion.Slerp(current_cam, target_cam, 5 * Time.deltaTime).eulerAngles;}void Start (){s_pre_euler = transform.eulerAngles;}// 限制角度public static float ClampAngle (float angle, float min, float max){if (angle < -360F)angle += 360F;if (angle > 360F)angle -= 360F;return Mathf.Clamp (angle, min, max);}
}

看了一下cs的枪后座力 发现还有左右抖动,于是又加了点代码

y_angle_mat = xxxxxxxx;    // 上下方向
....
// 在枪开火的方法区加
float xAngle = Random.Range(0.0f,1.0f);
Quaternion x_angle_mat = Quaternion.AngleAxis(xAngle, Vector3.up);
transform.localRotation = originalRotation * y_angle_mat * x_angle_mat;                  // 相当于乘以一个矩阵

unity3d FPS 枪的后座力相关推荐

  1. FPS游戏:实现人物高跳无后座力

    实现FPS游戏内,人物三倍高跳,高空直走,以及枪械无后座力等常用功能. 三倍高跳/高空直走: 一般情况下,我们会通过自己Z坐标的基地址,来浏览内存,内存中有我们人物跳跃时的属性变化,找到变化范围在-2 ...

  2. android和平灵敏度,和平精英灵敏度怎么设置好 和平精英无后座力灵敏度设置攻略...

    和平精英灵敏度怎么设置好?和平精英与刺激战场一样,游戏中也有灵敏度的设置,各位玩家玩游戏是最后选择一个适合自己的灵敏度玩,不然游戏中的操作会有点差别,下面小编为大家推荐了一个无后座力灵敏度设置,一起来 ...

  3. Unity3D FPS Game:第一人称射击游戏(一)

    耗时一周制作的第一人称射击游戏,希望能帮助到大家! 由于代码较多,分为三篇展示,感兴趣的朋友们可以点击查看! Unity3D FPS Game:第一人称射击游戏(一) Unity3D FPS Game ...

  4. Unity3D FPS Game:第一人称射击游戏(二)

    耗时一周制作的第一人称射击游戏,希望能帮助到大家! 由于代码较多,分为三篇展示,感兴趣的朋友们可以点击查看! Unity3D FPS Game:第一人称射击游戏(一) Unity3D FPS Game ...

  5. Unity3D FPS Game:第一人称射击游戏(三)

    耗时一周制作的第一人称射击游戏,希望能帮助到大家! 由于代码较多,分为三篇展示,感兴趣的朋友们可以点击查看! Unity3D FPS Game:第一人称射击游戏(一) Unity3D FPS Game ...

  6. Unity3D FPS帧数修改

    1.在Quality(质量)设置里把帧数设定关闭之后才能在代码中修改游戏运行的帧数 2.在Unity中新建脚本UpdateFrame.cs ,编写如下代码 targetFrameRate = Appl ...

  7. Unity3D FPS帧数修改实现详解

    http://www.yxkfw.com/?p=11620 1.在Quality(质量)设置里把帧数设定关闭之后才能在代码中修改游戏运行的帧数 2.在Unity中新建脚本UpdateFrame.cs ...

  8. Unity3D FPS射击游戏

    FPS射击游戏 前言 一.TapTap链接 二.游戏运行截图 总结 前言 抗日期间,一名士兵无意间得到了一张藏宝图,打开地图的一瞬间被传送到了外星球,心生贪念的士兵开启了寻宝之旅,士兵需要闯过重重关卡 ...

  9. Unity3D | FPS游戏_人物相关

    这次报名参加了训练营,初次尝试Unity3D的游戏开发,很庆幸的是有老师很详细的指导,拖了一些时间,也总算完成了.依照惯例,继续来写总结,同时这次几乎上学到的都是新知识,在不熟悉的前提下,还比较复杂散 ...

最新文章

  1. python注释#、Ctrl+/
  2. 【错误归纳】E: Sub-process /usr/bin/dpkg returned an error code (1)子进程 已安装 post-installation 脚本 返回了错误号 1
  3. gis根据行政区计算栅格数据计算_Java中根据半径计算圆的周长和面积
  4. 20155220吴思其 实验2 Windows口令破解
  5. Android Service 的一些笔记
  6. java script 技巧_java script 技巧
  7. Reset Password 重置密码 (CentOS 5,6,7 ; Juniper Networks: SRX100 )
  8. 孕期服务器声音影响,噪音多少分贝影响胎儿听力
  9. Switch case 超经典练习题
  10. 【Golang】如何不反序列化为前提的情况下,修改ProtoBuffer某个Tag的值
  11. laravel使用artisan报错SQLSTATE[42S02]: Base table or view not found: 1146
  12. java 打印制表符_开发简单的Java应用
  13. 安卓输入法 车机版_搜狗输入法车机下载安装-搜狗输入法车载版下载v10.10.1 安卓版-单机手游网...
  14. 影视后期制作(Pr)
  15. 「开发者说」钉钉连接平台实现OA审批与企业内部系统数据互通
  16. Codeforces Round #736 (Div. 2)
  17. ROS——基于python3实现opencv图像处理任务
  18. 【Python习题】计算弓形的面积(保姆级图文+实现代码)
  19. 多任务让你走得更慢(很好,转自infoq)
  20. PythonOpenCV基础篇2线段

热门文章

  1. 63.android 简单的下拉刷新动画水滴效果
  2. 无人驾驶车辆纵向速度PID控制
  3. 位(bit)、字节(Byte)、MB(兆位)之间的换算关系
  4. 项管行知04--项目章程
  5. vue服务端渲染——项目搭建、开发、生产环境的部署、浏览渲染、SEO优化
  6. POSCMS 域名绑定
  7. python人脸识别表情检测器(2):基本框架的制作
  8. Python判断一个正整数是否为素数的算法
  9. 人月神话(四)削足适履、提纲挈领、未雨绸缪
  10. 手机本地文档文件不能扫描出来的问题