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

♥️作者:白日参商

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

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

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

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

相关推荐
xcLeigh9 小时前
Unity基础:Scene视图操作完全指南——视角控制、物体选择与场景导航
unity·游戏引擎·scene·试图·场景导航
mxwin13 小时前
Unity Shader exp 函数的算法与渲染应用
算法·unity·游戏引擎·shader
WarPigs19 小时前
AB包自定义打包工具
unity
集芯微电科技有限公司18 天前
四通道2A输出集成功率电感降压模块专为紧凑型方案设计
人工智能·单片机·嵌入式硬件·生成对抗网络·计算机外设
叶帆18 天前
【YFIOs】用C#开发硬件之设备上云
开发语言·unity·c#
久数君18 天前
AI三维建模工具“造形家”:地理场景三维化的高效解决方案
unity·glb·ai算法·ai三维建模工具·地图框选·造形家·城市建筑模型
lichong95118 天前
让AI自己用电脑!Cua:后台操作鼠标键盘,Mac/Windows/Linux全支持
人工智能·macos·ai·计算机外设·agent·提示词
会思考的猴子18 天前
Unity VFX 属性 Postion 和 TargetPostion
unity
hai31524754319 天前
九章编程法 · 猜数字游戏 (GW-BASIC 重构版) *
人工智能·microsoft·游戏引擎·游戏程序
心前阳光19 天前
Unity资源导入之自动化资源导入
unity·自动化·游戏引擎