【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;  // 更新旋转起始点
        }
    }
}

♥️作者:白日参商

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

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

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

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

相关推荐
浅陌sss13 小时前
Unity中可靠的UDP实现
unity
虾球xz15 小时前
游戏引擎学习第107天
学习·游戏引擎
虾球xz15 小时前
游戏引擎学习第105天
前端·学习·游戏引擎
奔跑的犀牛先生18 小时前
unity学习46:反向动力学IK
unity
幻世界21 小时前
【工具插件类教学】实现运行时2D物体交互的利器Runtime2DTransformInteractor
unity·交互·运行时2d物体交互
虾球xz1 天前
游戏引擎学习第104天
学习·游戏引擎
音视频牛哥2 天前
Unity实现高性能多实例RTSP|RTMP播放器技术实践
unity·游戏引擎·音视频·实时音视频·大牛直播sdk·rtsp播放器·rtsp player
Artistation Game2 天前
三、Unity基础(主要框架)
游戏·unity·c#·游戏引擎
Edision_li2 天前
DeepSeek教unity------MessagePack-03
unity·messagepack
陈老老老板2 天前
让编程变成一种享受-明基RD320U显示器
计算机外设