【极简代码】Unity控制3D物体的自由旋转 缩放和移动

2023-11-07

Unity中以最少代码,控制3D物体的自由旋转、缩放和移动。

using UnityEngine;

public class TestMatrix : MonoBehaviour
{
    float scaleparam = 0f;
    Vector3 oldScale;

    private void Start()
    {
        oldScale = transform.localScale;
    }

    private void Update()
    {
        void Trans_Rotation()
        {
            float mouse_x = -Input.GetAxis("Mouse X");//鼠标X轴移动
            float mouse_y = Input.GetAxis("Mouse Y");//鼠标Y轴移动
            if (Input.GetMouseButton(0))
            {
                transform.RotateAround(transform.position, Vector3.up, mouse_x * 10);
                transform.RotateAround(transform.position, -Vector3.right, -mouse_y * 10);
            }
        }
        Trans_Rotation();//自由旋转

        
        void Trans_Scale()
        {
            if (Input.GetAxis("Mouse ScrollWheel") != 0f)
            {
                scaleparam += Input.GetAxis("Mouse ScrollWheel");
                Vector3 newScale = new Vector3(Mathf.Clamp(oldScale.x+ scaleparam,0f,100f), Mathf.Clamp(oldScale.y + scaleparam, 0f, 100f), Mathf.Clamp(oldScale.z + scaleparam, 0f, 100f));
                transform.localScale =newScale;                
            }
        }
        Trans_Scale();//缩放

        void Trans_Mv()
        {
            if (Input.GetMouseButton(1))
            {
                Vector3 screenPos = Camera.main.WorldToScreenPoint(transform.position);
                Vector3 mousePos = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPos.z);
                transform.position = Camera.main.ScreenToWorldPoint(mousePos);
            }
        }
        Trans_Mv();//移动
    }

}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【极简代码】Unity控制3D物体的自由旋转 缩放和移动 的相关文章

  • 如何旋转 3D 散点图

    下面的代码使用 scatterplot3d 函数来运行高度 重量和体积的 3D 散点图 其中点是 1 6 之间的类值 角度目前为 45 度 我知道我可以通过改变角度来倾斜绘图 我应该使用什么代码将绘图向左或向右旋转 以便我可以提供绘图的多个
  • 在 Unity 3D 中使用触摸输入在地形上移动相机

    我是 Unity 新手 我正在尝试弄清楚如何使用触摸输入在地图 地形上移动相机 摄像机将以 90 0 0 的旋转角度俯视地形 地形位于第 8 层 我用键盘移动它没有问题 现在我尝试移动到触摸 如果你想在 iOS 上保持预期的使用情况 那就非
  • 给定 3D 空间中的一条线,如何找到从它到一点的角度?

    我在 3D 空间中有两组点 我想画一条穿过两组点的中心的线 然后找到从该线到每个点的角度 从那里开始 我将根据两个角度的接近程度来确定两组中的匹配点 我知道如何找到每组点的中心 只需将它们平均在一起 并且我知道如何将它们匹配 甚至考虑到它们
  • 如何使用更少的包绘制二元正态分布的表面和轮廓

    我将绘制二元正态分布的 3D 曲面及其轮廓 可以是任何二元正态分布 我想用persp and contour在我的画中 我在网上搜索了一下 但发现了很多方法 大多数人都使用过一些软件包 但我想以使用更少的软件包甚至不安装任何软件包的方式来执
  • 如何在 Three.js 中从三角面获取多边形?

    我在网上查了一下是否有人遇到同样的问题 我正在使用 Three js 我有一个 3DObject 其中可能包含孔 面是三角形的 假设我想从上面看到它 我的目标是获得一个代表顶面周长的多边形 这对我来说意味着不再有三角面 而只有 1 个多边形
  • 3D 游戏的 Libgdx 渲染层

    在我的第一个 3D 游戏中 我现在想要渲染地板 它实际上是一个平面 不是 libgdxPlane on y 0 我想添加一个Texture到它 这样我就可以在每个级别有不同的楼层 现在我的问题是 创建和渲染这种纹理地板的最佳方法是什么 我考
  • 点列表的 3D 轮廓(凹壳)

    我有一个 C 中的 Vector3 点列表 我需要计算这些点的凹轮廓 确实有很多参考资料 特别是对于 凸 分辨率 由于格雷厄姆算法 我已经成功实现了 然而 由于我现在需要有效地计算凹轮廓 所以我迷失了 维基百科确实列出了很多用于凸计算的资源
  • 可点击的精灵标签?

    我一直在玩精灵文本标签 更具体地说是这个例子 http stemkoski github io Three js Sprite Text Labels html http stemkoski github io Three js Sprit
  • OpenGL z轴指向哪里?

    我正在尝试了解 OpenGL 坐标系 我到处都看到它被描述为右撇子 但这与我的经验不符 我尝试绘制一些形状和 3 d 对象 我发现 z 轴显然指向 屏幕 而 x 指向右侧 y 指向上方 这是左手坐标系的描述 我缺少什么 编辑 例如 http
  • 投影 3D 网格的 2D 轮廓算法

    给定 一个 3D 网格 由一组顶点和三角形定义 并用这些点构建网格 问题 找到任意平面上投影的任意旋转网格的二维轮廓 投影很容易 挑战在于找到平面中投影三角形边的 外壳 我需要一些有关研究该算法的输入 指针的帮助 为简单起见 我们可以假设
  • 如何在 GTX 560 及更高版本上使用 OpenGL 进行立体 3D?

    我正在使用在 Windows 7 上运行的开源触觉和 3D 图形库 Chai3D 我重写了该库以使用 Nvidia nvision 执行立体 3D 我将 OpenGL 与 GLUT 一起使用 并使用 glutInitDisplayMode
  • 我应该如何格式化 .dat 文件以便制作 3D 矢量图?

    我正在为大学做这个编程任务 我们必须写一个c 计算 3D 空间中某些线圈的磁场矢量的程序 我已经成功编写了这个程序 并且我认为它运行得很好 不过 我想添加一个特殊的东西 这是我的试卷 所以它必须特别好 我想绘制出向量 我习惯打电话gnupl
  • 在 RGL 中将立方体绘制到 3D 散点图中

    我正在尝试向 3D 散点图添加较小的立方体 网格 具有指定边长 我希望立方体位于原点 我该怎么做呢 我已经玩过cube3d 但我似乎无法将立方体正确定位 也无法使其成为网格 因此我可以看到它包含的数据点 这是我所拥有的 library rg
  • 简单模式7公式/例子?

    我最近发现了利用 SNES 模式 7 的伪 3D 效果 并想尝试在 Godot 引擎中复制它 我尝试在网上查找 但所有内容要么以我无法理解的方式解释 要么以我不知道的编程语言解释 我还需要学习如何旋转该区域 并将精灵作为角色或敌人放入 但我
  • 如何向 3D 表面添加文本

    我使用plot surface 创建了具有平行四边形底座的矩形棱柱 我需要向其中一个表面添加一些文本 我试过ax text 3 0 5 1 red 1 1 0 color red 但文本在表面上不可见 import matplotlib p
  • 在 3D 场景中实现“抓取”相机平移工具

    在我的场景中 我有想要 抓取 的地形 然后在移动光标时让相机平移 其高度 视图向量 视野等全部保持不变 因此 最初的 抓取 点将是世界空间中的工作点 我希望在拖动时该点保留在光标下方 我当前的解决方案是获取前一个和当前的屏幕点 取消投影它们
  • 无法使用 vcglib 简化 3D 模型,断言“0”失败

    I used vcglib https github com cnr isti vclab vcglib简化 3D 模型文件 我使用了 master a8e87662 git 存储库 我运行示例 trimesh clustering htt
  • 使用开源 3D 引擎从 Openstreetmap 数据渲染地图? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 从 Openstreetmap 数据渲染 3D 地图可能会很漂亮麻烦的 https gis stack
  • 在 3d 空间中的两个平面之间进行插值

    我正在开发一种工具 可以让您在 3D 体积 上圈出 包围事物 我想通过标记 切片 1 和 3 并从该信息 填充 切片 2 来节省时间 两个简单的解决方案是 1 slice2 slice1 AND slice3 gets the overla
  • 求截头棱锥体/截棱锥体横截面的边长

    如何找到横截面的边长 如图所示 下图 横截面 红色 截头锥体 截棱锥体 我知道顶部和底部的边长 以及底部的高度 截锥体和到横截面的距离 此外我还知道 顶部和底部底座平行 并且顶部和底部的中心 底部底座直接位于彼此之上 比例是线性的 因此只需

随机推荐

  • Java基础语法教学视频,MySql知识体系总结(SQL优化篇

    备注 因为mysql优化器的缘故 与索引顺序不一致 也会触发索引 但实际项目中尽量顺序一致 5 联合索引 但其中一个条件是 gt 6 联合索引 order by where和order by一起使用时 不要跨索引列使用 三 单表sql优化
  • LDO低压差线性稳压器

    LDO 转自 http baike baidu com view 1042146 htm 百科名片 LDO是low dropout regulator 意为低压差线性稳压器 是相对于传统的线性稳压器来说的 传统的线性稳压器 如78xx系列的
  • 元宇宙产业委一届二次全会召开 同步举办共享大会和全球元宇宙大会

    2022全球元宇宙大会 上海站将于8月18 19日在沪召开 央链直播快讯 2022年8月18 19日 由中国移动通信联合会主办 上海市通信管理局联合主办 众视Tech 中移联会展部 中国移动通信联合会元宇宙产业委员会承办 BIC EURON
  • Aop反射机制实现某个参数值 修改

    项目中使用敏感字段的加解密 但是有的是直接在url中拼接的 所以我就想根据一个自定义注解的方式做匹配 修改值 利用反射的机制实现值的修改 以下是具体的代码 依赖aop
  • VSCode顶端文件名多行显示

    VScode默认顶端一行显示所有打开的文件名 1 直接在设置中搜索 多行 在 Workbench Editor Wrap Tabs 前选中即可 2 也可用快捷键 Ctrl P 查看最近浏览文件记录
  • 2023华为od机试 Python 实现【德州扑克】

    前言 本题使用Python解答 如果需要Java代码 请参考 链接 题目 我们可以选择五张牌 它们的范围是 每张牌的大小在2 10之间 或者字母J Q K A 牌花色为红桃 黑桃 梅花 方块四种花色之一 现在一共有6种牌型 牌型1 同花顺
  • 运维体系框架标准化模型简介

    为什么要做标准化 标准化的过程实际上就是对运维对象的识别和建模过程 形成统一的对象模型后 各方在统一的认识下展开有效协作 然后针对不同的运维对象 再抽取出它们所对应的运维场景 接下来才是运维场景的自动化实现 这有点像我们学的面向对象编程的思
  • Fabric.js

    Fabric js是什么 Fabric js 是一个简化HTML5 Canvas开发的Javascript库 Fabric js提供了HTML5 Canvas本身缺失的对象模型 交互层 SVG解析器以及其他一整套工具 它是一个完全开源的项目
  • C中的预编译宏定义

    C中的预编译宏定义 作者 infobillows 发表日期 2007 09 15 21 34 点击数 1507 在将一个C源程序转换为可执行程序的过程中 编译预处理是最初的步骤 这一步骤是由预处理器 preprocessor 来完成的 在源
  • 根据文字长度,设置文字滚动的速度

    div class tips box span class scroll text span div 根据文字长度设置中文滚动时间 const animateTextlength this conference importantInfo
  • pygame模块介绍

    pygame模块介绍 在python中开发游戏 通常会用到pygame这个模块 pygame模块总览 模块 作用 cdrom 管理cdrom设备和音频播放 cursors 加载光标图像 包括标准光标 display 控制显示窗口或屏幕 dr
  • FCN学习:Semantic Segmentation(摘自知乎)

    源文章地址 https zhuanlan zhihu com p 22976342 utm source tuicool utm medium referral FCN学习 Semantic Segmentation 余俊 计算机视觉及深度
  • 计算机图形学年鉴:研究现状、应用和未来

    计算机图形学是支持各种影视特效 三维动画影片 计算机游戏 虚拟现实以及大家手机上各种照片视频美化特效背后的技术基础 在本文中 微软亚洲研究院网络图形组深入解释了图形学的现状 发展和未来 谈及 计算机图形学 可能很多人会觉得很有距离感 或者和
  • 微信小程序弹窗提示:wx.showToast、wx.showModal、wx.showLoading的使用场景与实现

    1 wx showToast 使用场景 常规的提示 没有确定和取消按钮 例 属性 title 提示的内容 icon 显示的图标 合法值有success error loading none image 自定义图标的本地路径 优先级高于ico
  • K8S部署步骤:8-部署Master节点

    kubernetes master节点包含的组件 etcd flannel docker kube apiserver kube scheduler kube controller manager 目前这三个组件需要部署在同一台机器上 ku
  • python面试的3大重点,让你顺利拿到offer!

    5月已经过去大半个月了 马上就要迎来毕业季了 你准备好去面试了么 W3C咨询了不少python爬虫岗位从业者 如果你也打算从事python爬虫岗位 掌握这三个重点 能让你更顺利的get到理想的offer 1 Python 因为面试的是Pyt
  • C++入门——引用(重点!!!)

    文章目录 引用概念 引用特性 常引用 const 使用场景 1 做参数 输出型参数 2 做返回值 引用返回 引用和指针的区别 引用概念 引用不是新定义一个变量 而是给已存在的变量取了一个别名 编译器不会为引用变量开辟内存空间 它和它的引用变
  • springboot+MD5实现注册登录的密码的加密解密

    写在前面 你们好 我是小庄 很高兴能和你们一起学习mybatis 如果您对Java感兴趣的话可关注我的动态 写博文是一种习惯 在这过程中能够梳理知识和巩固知识点 需求 登录和注册的密码涉及到网络安全 对密码的加密能够在一定程度上增加安全性
  • linux shell字符串截取

    linux字符串截取很有用 有八种方法 有变量url https www test com 123 html 号截取 删除左边字符 保留右边字符 echo url 输出 www test com 123 html 其中url是变量名 是运算
  • 【极简代码】Unity控制3D物体的自由旋转 缩放和移动

    Unity中以最少代码 控制3D物体的自由旋转 缩放和移动 using UnityEngine public class TestMatrix MonoBehaviour float scaleparam 0f Vector3 oldSca