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

【Unity脚本开源】记录鼠标按下的位置和移动的距离来进行物体的旋转,并在鼠标释放后将物体恢复到初始旋转位置

♥️作者:白日参商
🤵‍♂️个人主页:白日参商主页
♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!!
🎈🎈加油! 加油! 加油! 加油
🎈欢迎评论 💬点赞👍🏻 收藏 📂加关注+!

项目场景:

例如:项目场景:在unity开发过程中,我们有时候会希望在鼠标按下时开始旋转,通过记录鼠标按下的位置和移动的距离来进行物体的旋转,并在鼠标释放后将物体恢复到初始旋转位置。


解决方案:

提针对这个需求,以下是示例脚本代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class ObjectRotationWithMouse : MonoBehaviour
{public float rotationSpeed = 1.0f;  // 旋转速度private Quaternion initialRotation;  // 初始旋转private bool isRotating = false;  // 标记是否正在旋转private float rotationStartX;  // 旋转起始点的X坐标private void Start(){initialRotation = transform.rotation;  // 记录初始旋转}private void Update(){if (Input.GetMouseButtonDown(0)){isRotating = true;rotationStartX = Input.mousePosition.x;}else if (Input.GetMouseButtonUp(0)){isRotating = false;transform.rotation = initialRotation;  // 恢复初始旋转}if (isRotating){// 获取鼠标水平移动的值float mouseX = Input.mousePosition.x - rotationStartX;// 计算旋转角度float rotationAmount = mouseX * rotationSpeed * Time.deltaTime;// 围绕自身 Y 轴旋转物体transform.Rotate(Vector3.up, rotationAmount);rotationStartX = Input.mousePosition.x;  // 更新旋转起始点}}
}

♥️作者:白日参商
🤵‍♂️个人主页:白日参商主页
♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!!
🎈🎈加油! 加油! 加油! 加油
🎈欢迎评论 💬点赞👍🏻 收藏 📂加关注+!

http://www.lryc.cn/news/124984.html

相关文章:

  • 金蝶软件实现导入Excel数据分录行信息到单据体分录行中
  • C# 11 中的新增功能
  • Postman通用接口加密解决方案
  • java,钉钉小程序免密登录
  • 基于docker部署的Selenium Grid分布式自动化测试
  • 目标和——力扣494
  • sql 执行的顺序
  • TCP收发信息(C++)
  • windows Socket简单编程实例
  • 外企开展中国在线业务的三种网络加速方案:含免ICP备案CDN解决方案
  • 室内UWB定位到达角(AOA)测量精度的提高
  • “深入理解JVM:探索Java虚拟机的内部工作原理“
  • TC3XX - MCAL知识点(三十一):FlsLoader MCAL配置及代码实战
  • Yii2 mongodb分组查询
  • Springboot的多种部署方式和Linux具体的 service 操作介绍
  • 【EI/SCOPUS检索】2023年第二届光学成像与测量国际会议 (ICOIM2023)
  • 6 个简单步骤,教你创建可视化看板工作流
  • 时间相减 示例kotlin LocalDateTime
  • Boost开发指南-4.5swap
  • OpenStack对接Ceph平台
  • 【Vue2】动态组件的使用-切换组件和keep-alive,以及异步组件
  • C++的IO流
  • nodejs+vue+elementui电影订票网站系统_wqc3k
  • 2023-08-14 linux 串口终端输入长命令不换行,覆盖前面内容,stty命令设置串口终端行列数
  • 根据指定日期获取周,月,季度,年的第一天和最后一天
  • CRMEB商城系统:便捷、安全、多样化的购物方式
  • 同步_异步请求和Ajax并利用axios框架简化
  • 取个对象值导致系统崩溃
  • nestjs 基础、使用 passport 来进行鉴权
  • 1.1 : DNA 螺旋