将本代码拖给枪物体即可;功能是鼠标控制枪口方向,及固定时间内发射子弹;

using System.Collections;using System.Collections.Generic;using UnityEngine;public class GunManager : MonoBehaviour{private AudioSource gunAudio;//最大和最小的X,Y轴的旋转角度private float maxYRotation = 120;private float minYRotation = 0;private float maxXRotation = 60;private float minXRotation = 0;//射击的间隔时长private float shootTime = 1;//射击间隔时间的计时器private float shootTimer = 0;//子弹的游戏物体,和子弹的生成位置public GameObject bulletGO;public Transform firePosition;private void Awake(){gunAudio = gameObject.GetComponent<AudioSource>();}private void Update(){//游戏是非暂停状态时才可以进行射击,并且枪随着鼠标旋转if (GameManager._instance.isPaused == false){shootTimer += Time.deltaTime;if (shootTimer >= shootTime){//点击鼠标左键,进行射击if (Input.GetMouseButtonDown(0)){//实例化子弹GameObject bulletCurrent =GameObject.Instantiate(bulletGO, firePosition.position, Quaternion.identity);//通过刚体组件给子弹添加一个正前方向上的力,以达到让子弹向前运动的效果bulletCurrent.GetComponent<Rigidbody>().AddForce(transform.forward * 2200);//播放手枪开火的动画gameObject.GetComponent<Animation>().Play();shootTimer = 0;//播放手枪开火的音效gunAudio.Play();//增加射击数UIManager._instance.AddShootNum();}}//根据鼠标在屏幕上的位置,去相对应的旋转手枪float xPosPrecent = Input.mousePosition.x / Screen.width;float yPosPrecent = Input.mousePosition.y / Screen.height;float xAngle = -Mathf.Clamp(yPosPrecent * maxXRotation, minXRotation, maxXRotation) + 15;float yAngle = Mathf.Clamp(xPosPrecent * maxYRotation, minYRotation, maxYRotation) - 60;transform.eulerAngles = new Vector3(xAngle, yAngle, 0);}}}

unity 鼠标移动控制枪口方向相关推荐

  1. Unity/c#鼠标右键控制相机围绕物体旋转/滚轮控制远近

    鼠标右键控制相机围绕物体旋转/滚轮控制远近 #c#代码` 鼠标右键控制相机围绕物体旋转/滚轮控制远近 using System.Collections; using System.Collection ...

  2. Unity鼠标控制摄像机 围绕物体旋转

    Unity鼠标控制摄像机 围绕物体旋转 角度范围判定 // An highlighted block using UnityEngine;public class CameraCtrl : MonoB ...

  3. Qt Quick 3D学习:使用鼠标键盘控制节点位置和方向

    (注意,开源版的 Qt Quick 3D 是狗都不用的 GPL 协议) Qt Quick 3D 模块提供了  WasdController 类型来控制节点的位置和方向,受控节点一般是 Camera.( ...

  4. 详解Unity的移动控制实现

    前言 上一篇写了数种Unity中的移动方式,有物理移动,有非物理移动等,这篇我们来谈谈Unity中的移动控制方式,来结合上一篇所说的方法,用起来.一般控制是通过获取用户输入来处理角色移动逻辑的,而用户 ...

  5. CSS(五):背景、列表、超链接伪类、鼠标形状控制属性

    一.背景属性 1.背景属性用来设置页面元素的背景样式. 2.常见背景属性 属性 描述 background-color 用来设置页面的背景色,取值如red,#ff0000 background-ima ...

  6. unity 鼠标放置 ui_ui层次结构以及不常见但至关重要的任务放置在哪里

    unity 鼠标放置 ui Modern technology is complex. It's not always complicated though, thanks to our consta ...

  7. WPF 使用鼠标滚轮控制ListBox水平滚动条滚动

    我们都知道在WPF中鼠标滚轮可以控制垂直滚动条滚动,但没有什么属性设置可以让它控制水平滚动条滚动,所以我们需要自己去实现水平滚动. 首先,在ListBox的Mousewheel事件中获得ListBox ...

  8. 【Unity】人物控制 移动/跳跃/蹲下/奔跑/视野旋转 代码

    项目场景: 需求:物体跟随鼠标所指引的方向移动,可以跳跃,奔跑,蹲下. 1.视野跟随鼠标移动 2.由键盘控制物体的上下左右移动过程 3.可以跳跃和奔跑等 解决方案: 有很多在中解决方法,这里讨论两种 ...

  9. unity 机械臂控制(一)

    unity 机械臂控制 基本原理 机械臂的控制主要是通过控制父节点的旋转,带动子节点移动,子节点的旋转再带动自己的子节点移动以此类推.每个节点的旋转单一,通常是水平方向和垂直方向,即x轴旋转和y轴旋转 ...

最新文章

  1. 直播 | DSTC 8“基于Schema的对话状态追踪”竞赛冠军方案解读
  2. shell如何自动输入密码
  3. C++ deque
  4. python 数据格式转换_python常用数据格式转换
  5. 逻辑斯蒂回归_逻辑回归 - 3 逻辑回归模型
  6. 指纹机和计算机无法连接,指纹考勤系统常见问题及解决办法
  7. ubuntu16.04磁盘分区及挂载
  8. CVE-2018-7490 uWSGI PHP Plugin目录遍历
  9. Python用最简单的代码画出一箭穿心
  10. Scrapy中的item和pipline
  11. 如何区分MOS管、三极管(从MOS管、三极管的结构方面理解)
  12. Mansory 基本用法
  13. NLP入门概览(4)—— 序列标注a:隐马尔科夫模型(HMM)
  14. IQueryable VS IEnumerable
  15. Rubber Translator一款更人性化的免费文献翻译工具,支持多翻译引擎
  16. ES8——Generator函数的使用
  17. ueditor百度富文本编辑器隐藏一下不需要的工具按钮
  18. win11兼容性_win11系统软件兼容性测试
  19. 频谱仪的基本使用之RBW设置
  20. 关于正则表达式的简单记忆

热门文章

  1. Java基础必须了解(含xmind思维导图)
  2. 前端js实现时钟效果
  3. 物联网开源数据库分析归纳
  4. 用DOS-BOX搭建x86汇编语言学习环境
  5. 用python画路飞代码_用Python画路飞骷髅图案【附代码】
  6. 虚拟机建立的服务器让主机登陆,添加ESXi主机并建立虚拟机
  7. 飞贷app,资金从银行到生意人
  8. spritekit 动画_iOS 2D游戏引擎框架SpriteKit入门
  9. 搭建个人网站需要选择什么样配置的服务器
  10. flutter 死亡红屏 隐藏