unity 鼠标移动控制枪口方向
将本代码拖给枪物体即可;功能是鼠标控制枪口方向,及固定时间内发射子弹;
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 鼠标移动控制枪口方向相关推荐
- Unity/c#鼠标右键控制相机围绕物体旋转/滚轮控制远近
鼠标右键控制相机围绕物体旋转/滚轮控制远近 #c#代码` 鼠标右键控制相机围绕物体旋转/滚轮控制远近 using System.Collections; using System.Collection ...
- Unity鼠标控制摄像机 围绕物体旋转
Unity鼠标控制摄像机 围绕物体旋转 角度范围判定 // An highlighted block using UnityEngine;public class CameraCtrl : MonoB ...
- Qt Quick 3D学习:使用鼠标键盘控制节点位置和方向
(注意,开源版的 Qt Quick 3D 是狗都不用的 GPL 协议) Qt Quick 3D 模块提供了 WasdController 类型来控制节点的位置和方向,受控节点一般是 Camera.( ...
- 详解Unity的移动控制实现
前言 上一篇写了数种Unity中的移动方式,有物理移动,有非物理移动等,这篇我们来谈谈Unity中的移动控制方式,来结合上一篇所说的方法,用起来.一般控制是通过获取用户输入来处理角色移动逻辑的,而用户 ...
- CSS(五):背景、列表、超链接伪类、鼠标形状控制属性
一.背景属性 1.背景属性用来设置页面元素的背景样式. 2.常见背景属性 属性 描述 background-color 用来设置页面的背景色,取值如red,#ff0000 background-ima ...
- unity 鼠标放置 ui_ui层次结构以及不常见但至关重要的任务放置在哪里
unity 鼠标放置 ui Modern technology is complex. It's not always complicated though, thanks to our consta ...
- WPF 使用鼠标滚轮控制ListBox水平滚动条滚动
我们都知道在WPF中鼠标滚轮可以控制垂直滚动条滚动,但没有什么属性设置可以让它控制水平滚动条滚动,所以我们需要自己去实现水平滚动. 首先,在ListBox的Mousewheel事件中获得ListBox ...
- 【Unity】人物控制 移动/跳跃/蹲下/奔跑/视野旋转 代码
项目场景: 需求:物体跟随鼠标所指引的方向移动,可以跳跃,奔跑,蹲下. 1.视野跟随鼠标移动 2.由键盘控制物体的上下左右移动过程 3.可以跳跃和奔跑等 解决方案: 有很多在中解决方法,这里讨论两种 ...
- unity 机械臂控制(一)
unity 机械臂控制 基本原理 机械臂的控制主要是通过控制父节点的旋转,带动子节点移动,子节点的旋转再带动自己的子节点移动以此类推.每个节点的旋转单一,通常是水平方向和垂直方向,即x轴旋转和y轴旋转 ...
最新文章
- 直播 | DSTC 8“基于Schema的对话状态追踪”竞赛冠军方案解读
- shell如何自动输入密码
- C++ deque
- python 数据格式转换_python常用数据格式转换
- 逻辑斯蒂回归_逻辑回归 - 3 逻辑回归模型
- 指纹机和计算机无法连接,指纹考勤系统常见问题及解决办法
- ubuntu16.04磁盘分区及挂载
- CVE-2018-7490 uWSGI PHP Plugin目录遍历
- Python用最简单的代码画出一箭穿心
- Scrapy中的item和pipline
- 如何区分MOS管、三极管(从MOS管、三极管的结构方面理解)
- Mansory 基本用法
- NLP入门概览(4)—— 序列标注a:隐马尔科夫模型(HMM)
- IQueryable VS IEnumerable
- Rubber Translator一款更人性化的免费文献翻译工具,支持多翻译引擎
- ES8——Generator函数的使用
- ueditor百度富文本编辑器隐藏一下不需要的工具按钮
- win11兼容性_win11系统软件兼容性测试
- 频谱仪的基本使用之RBW设置
- 关于正则表达式的简单记忆