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

♥️作者:白日参商

🤵‍♂️个人主页:白日参商主页

♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!!

🎈🎈加油! 加油! 加油! 加油

🎈欢迎评论 💬点赞👍🏻 收藏 📂加关注+!

项目场景:

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


解决方案:

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

csharp 复制代码
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;  // 更新旋转起始点
        }
    }
}

♥️作者:白日参商

🤵‍♂️个人主页:白日参商主页

♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!!

🎈🎈加油! 加油! 加油! 加油

🎈欢迎评论 💬点赞👍🏻 收藏 📂加关注+!

相关推荐
小春熙子10 分钟前
Unity图形学之Shader结构
unity·游戏引擎·技术美术
Sitarrrr3 小时前
【Unity】ScriptableObject的应用和3D物体跟随鼠标移动:鼠标放置物体在场景中
3d·unity
极梦网络无忧3 小时前
Unity中IK动画与布偶死亡动画切换的实现
unity·游戏引擎·lucene
逐·風11 小时前
unity关于自定义渲染、内存管理、性能调优、复杂物理模拟、并行计算以及插件开发
前端·unity·c#
_oP_i12 小时前
Unity Addressables 系统处理 WebGL 打包本地资源的一种高效方式
unity·游戏引擎·webgl
代码盗圣16 小时前
GODOT 4 不用scons编译cpp扩展的方法
游戏引擎·godot
Mac新人16 小时前
又发现了Mac妙控鼠标的新使用方法
计算机外设
Leoysq21 小时前
【UGUI】实现点击注册按钮跳转游戏场景
游戏·unity·游戏引擎·ugui
PandaQue1 天前
《潜行者2切尔诺贝利之心》游戏引擎介绍
游戏引擎
_oP_i1 天前
unity中 骨骼、纹理和材质关系
unity·游戏引擎·材质