【工具插件类教学】实现运行时2D物体交互的利器Runtime2DTransformInteractor

news2025/4/17 19:32:42

目录

​编辑

1. 插件核心功能

1.1 基础变换操作

1.2 高级特性

2. 安装与配置

2.1 导入插件

2.2 配置控制器参数

2.3 为物体添加交互功能

3. 使用示例

3.1 基础操作演示

3.2 多选与批量操作

3.3 自定义光标与外观

4. 高级配置技巧

4.1 动态调整包围框控件尺寸

4.2 分层渲染控制

4.3 事件扩展

5. 常见问题解答

Q1:包围框未显示

Q2:光标未切换

Q3:缩放时宽高比未锁定

6. 结语

7.工具下载



1. 插件核心功能

1.1 基础变换操作

  • 移动:点击物体碰撞体(Collider2D)并拖拽,即可自由移动物体。

  • 缩放

    • 单轴缩放:拖拽包围框的边缘(Edge)可沿单个轴缩放。

    • 双轴缩放:拖拽包围框的角落(Corner)可同时在两个轴上缩放。

    • 保持宽高比:支持全局锁定宽高比,或通过快捷键临时锁定(如按住Shift键)。

  • 旋转:拖拽旋转控件(Rotation Gizmo)可自由旋转物体。

1.2 高级特性

  • 多选操作:支持同时选中多个物体进行统一移动(需启用Allow Multi Selection)。

  • 光标反馈:当鼠标悬停在交互区域(如角落、边缘、旋转控件)时,光标自动切换为预设图标。

  • 动态尺寸调整:包围框的控件(角落、边缘、旋转控件)会根据摄像机缩放(orthographicSize)自动调整屏幕显示尺寸。

  • 自定义外观:可修改包围框的颜色、图标及排序层级,适配不同美术风格。


2. 安装与配置

2.1 导入插件

  1. 将插件包导入Unity项目(通过Asset Store或手动导入)。

  2. 添加控制器预制体
    在场景中拖入 TransformInteractorController 预制体(位于 Package/Prefabs)。
    该控制器全局管理所有交互逻辑,必须存在于场景中。

2.2 配置控制器参数

打开 TransformInteractorController 组件的参数面板,关键配置如下:

参数分类关键参数
包围框外观Corner Color(角落颜色)、Line Color(边缘颜色)、Rotation Color(旋转控件颜色)
交互行为Allow Multi Selection(启用多选)、Allow Rotation(启用旋转)
光标设置Change Cursor(启用光标切换)、Move Cursor(移动光标图标)
摄像机与缩放Main Camera(绑定正交摄像机)、Adjust Size To Zoom(动态调整控件尺寸)
宽高比锁定Always Preserve Aspect Ratio(全局锁定)、Preserve Aspect Ratio On Key Hold(按键临时锁定)

2.3 为物体添加交互功能

  1. 添加组件:为需要交互的2D物体添加 TransformInteractor 脚本。

  2. 自动添加碰撞体:若物体没有 BoxCollider2D,插件会自动添加一个。调整碰撞体大小以匹配物体实际范围。

  3. 自定义包围框:通过修改 TransformInteractor 的 Collider Offset 和 Collider Size 调整交互区域。


3. 使用示例

3.1 基础操作演示

  1. 移动物体:点击物体碰撞体并拖拽。

  2. 缩放物体

    • 拖拽角落进行双轴缩放。

    • 拖拽边缘进行单轴缩放。

    • 按住 Aspect Ratio Keys(如Shift键)临时锁定宽高比。

  3. 旋转物体:拖拽旋转控件(默认位于包围框顶部)。

3.2 多选与批量操作

  1. 启用多选:在控制器中勾选 Allow Multi Selection

  2. 选择多个物体:按住 Multi Selection Keys(如Ctrl键)点击多个物体。

  3. 统一移动:拖拽任意选中物体,所有选中物体将同步移动。

3.3 自定义光标与外观

// 示例:通过代码动态修改光标图标(需提前导入纹理)
TransformInteractorController controller = FindObjectOfType<TransformInteractorController>();
controller.MoveCursor = YourCustomMoveCursorTexture;
controller.RotateCursor = YourCustomRotateCursorTexture;

4. 高级配置技巧

4.1 动态调整包围框控件尺寸

  1. 确保摄像机为 正交投影(Orthographic)。

  2. 在控制器中启用 Adjust Size To Zoom

  3. 设置 Default Corner Width/Height 等参数,控制控件的默认屏幕尺寸。

4.2 分层渲染控制

通过设置不同排序层级(Sorting Layer),避免控件与游戏物体重叠:

  • Corner Sorting Layer > Rotation Gizmo Sorting Layer > Line Sorting Layer

4.3 事件扩展

插件内置事件系统(需自行扩展):

TransformInteractor interactor = GetComponent<TransformInteractor>();
interactor.OnDragStart += () => { /* 拖拽开始逻辑 */ };
interactor.OnScale += (scale) => { /* 缩放中逻辑 */ };

5. 常见问题解答

Q1:包围框未显示

  • 确认 TransformInteractorController 预制体已添加到场景。

  • 检查物体的 TransformInteractor 脚本是否启用。

Q2:光标未切换

  • 在控制器中启用 Change Cursor

  • 确认 Default Cursor 和特定操作光标已正确赋值。

Q3:缩放时宽高比未锁定

  • 检查 Always Preserve Aspect Ratio 或 Preserve Aspect Ratio On Key Hold 是否启用。

  • 确认快捷键设置(Aspect Ratio Keys)是否冲突。


6. 结语

Runtime 2D Transform Interactor 是一款功能强大且高度可定制的2D交互插件,尤其适合编辑器工具、关卡设计或需要精细物体操作的2D游戏。通过灵活的配置和直观的操作,开发者可以显著减少编码时间,专注于核心玩法开发。立即尝试这款插件,提升你的开发效率!

7.工具下载

https://download.csdn.net/download/qq_37310110/90394947

【注:此博文为工具生成,内容未经校对,注意甄别】  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2302147.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV形态学操作

1.1. 形态学操作介绍 初识&#xff1a; 形态学操作是一种基于图像形状的处理方法&#xff0c;主要用于分析和处理图像中的几何结构。其核心是通过结构元素&#xff08;卷积核&#xff09;对图像进行扫描和操作&#xff0c;从而改变图像的形状和特征。例如&#xff1a; 腐蚀&…

【Ubuntu】GPU显存被占用,但显示没有使用GPU的进程

文章目录 一、问题描述二、解决方案2.1 寻找问题进程2.2 尝试杀死相关进程2.3 投放核弹&#xff0c;一键全杀2.4 再次查看GPU使用情况 参考资料 一、问题描述 今天使用服务器的时候发现gpu被占了很多内存&#xff0c;但是使用 nvidia-smi 命令并没有发现占这么多显存的进程&am…

通义灵码AI程序员

通义灵码是阿里云与通义实验室联合打造的智能编码辅助工具&#xff0c;基于通义大模型技术&#xff0c;为开发者提供多种编程辅助功能。它支持多种编程语言&#xff0c;包括 Java、Python、Go、TypeScript、JavaScript、C/C、PHP、C#、Ruby 等 200 多种编码语言。 通义灵码 AI…

以ChatGPT为例解析大模型背后的技术

目录 1、大模型分类 2、为什么自然语言处理可计算&#xff1f; 2.1、One-hot分类编码&#xff08;传统词表示方法&#xff09; 2.2、词向量 3、Transformer架构 3.1、何为注意力机制&#xff1f; 3.2、注意力机制在 Transformer 模型中有何意义&#xff1f; 3.3、位置编…

Redis-缓存过期和内存淘汰

缓存过期&&内存淘汰 过期删除如何设置过期时间判断key是否过期过期删除策略有哪些定时删除惰性删除定期删除Redis过期删除策略 内存淘汰策略如何设置Redis最大运行内存Redis内存淘汰策略有哪些不进行数据淘汰进行数据淘汰的策略设置了过期时间的数据中进行淘汰所有数据…

七星棋牌全开源修复版源码解析:6端兼容,200种玩法全面支持

本篇文章将详细讲解 七星棋牌修复版源码 的 技术架构、功能实现、二次开发思路、搭建教程 等内容&#xff0c;助您快速掌握该棋牌系统的开发技巧。 1. 七星棋牌源码概述 七星棋牌修复版源码是一款高度自由的 开源棋牌项目&#xff0c;该版本修复了原版中的多个 系统漏洞&#…

第六届计算机信息和大数据应用国际学术会议(CIBDA 2025)

重要信息 大会官网&#xff1a;www.ic-cibda.org&#xff08;了解会议&#xff0c;投稿等&#xff09; 大会时间&#xff1a;2025年3月14-16日 大会地点&#xff1a;中国-武汉 简介 第六届计算机信息和大数据应用&#xff08;CIBDA 2025&#xff09;将于2025年3月14-16日在中国…

PyTorch 深度学习框架中 torch.cuda.empty_cache() 的妙用与注意事项

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 在使用 PyTorch 进行深度学习模型训练与调优过程中&#xff0c;torch.cuda.empty_cache() 方法作为一种高效工具被广泛采用&#xff1b;但其正确应用要求充分理解该方法的功能及最佳实践。下文将对该方…

快速入门——Vue框架快速上手

学习自哔哩哔哩上的“刘老师教编程”&#xff0c;具体学习的网站为&#xff1a;8.Vue框架快速上手_哔哩哔哩_bilibili&#xff0c;以下是看课后做的笔记&#xff0c;仅供参考。 第一节&#xff1a;前端环境准备 编码工具VSCode【www.code.visualstudio.com】/WebStorm也可&am…

zookeeper集群配置

配置 一、配置myid文件 # 进入解压好的文件夹下面 touch myid vim myid # master节点写0&#xff0c;slave1节点写1&#xff0c;slave2节点写2二、配置zoo.cfg文件 1.在master节点编辑zookeeper配置文件 # 进入解压好的文件夹下面 cd conf/ cp zoo_sample.cfg zoo.cfg vim …

掌握.NET Core后端发布流程,如何部署后端应用?

无论你是刚接触.NET Core的新手还是已有经验的开发者&#xff0c;在这篇文章中你将会学习到一系列实用的发布技巧与最佳实践&#xff0c;帮助你高效顺利地将.NET Core后端应用部署到生产环境中 目录 程序发布操作 Docker容器注册表 文件夹发布 导入配置文件 网站运行操作 …

华为昇腾920b服务器部署DeepSeek翻车现场

最近到祸一台HUAWEI Kunpeng 920 5250&#xff0c;先看看配置。之前是部署的讯飞大模型&#xff0c;发现资源利用率太低了。把5台减少到3台&#xff0c;就出了他 硬件配置信息 基本硬件信息 按照惯例先来看看配置。一共3块盘&#xff0c;500G的系统盘&#xff0c; 2块3T固态…

使用Python添加、读取和删除Word文档属性

在Python中处理Word文档时&#xff0c;对文档属性进行操作是一项重要的任务。文档属性主要分为内置属性&#xff08;如标题、作者等&#xff09;和自定义属性&#xff08;用户根据自身需求定义的属性&#xff09;。合理地管理这些属性&#xff0c;能够提升文档管理效率、优化信…

Day15-后端Web实战-登录认证——会话技术JWT令牌过滤器拦截器

目录 登录认证1. 登录功能1.1 需求1.2 接口文档1.3 思路分析1.4 功能开发1.5 测试 2. 登录校验2.1 问题分析2.2 会话技术2.2.1 会话技术介绍2.2.2 会话跟踪方案2.2.2.1 方案一 - Cookie2.2.2.2 方案二 - Session2.2.2.3 方案三 - 令牌技术 2.3 JWT令牌2.3.1 介绍2.3.2 生成和校…

VSCode运行Go程序报错:Unable to process `evaluate`: debuggee is running

如果使用默认的VSCode的服务器来运行Go程序&#xff0c;那么使用fmt.Scan函数输入数据的时候就会报错&#xff0c;我们需要修改launch.json文件&#xff0c;将Go程序运行在shell终端上。 main.go package mainimport "fmt"func main() {var n intfmt.Scan(&n)v…

IntersectionObserver用法

IntersectionObserver用法 1.什么是IntersectionObserver&#xff1f;2.使用2.1 创建观察对象2.2 观察指定DOM对象2.3 参数详解(1)callback参数(2)options 配置参数 3.应用3.1 Dom进入页面的加载动画3.2 图片的懒加载 1.什么是IntersectionObserver&#xff1f; IntersectionO…

R语言NIMBLE、Stan和INLA贝叶斯平滑及条件空间模型死亡率数据分析:提升疾病风险估计准确性...

全文链接&#xff1a;https://tecdat.cn/?p40365 在环境流行病学研究中&#xff0c;理解空间数据的特性以及如何通过合适的模型分析疾病的空间分布是至关重要的。本文主要介绍了不同类型的空间数据、空间格点过程的理论&#xff0c;并引入了疾病映射以及对空间风险进行平滑处理…

DeepSeek - R1:模型架构深度解析

DeepSeek - R1&#xff1a;模型架构深度解析 引言 本文将深入探索DeepSeek - R1模型架构。将从输入到输出追踪DeepSeek - R1模型&#xff0c;找出架构中的新发展和关键部分。DeepSeek - R1基于DeepSeek - V3 - Base模型架构&#xff0c;本文旨在涵盖其设计的所有重要方面。 …

火绒终端安全管理系统V2.0【系统防御功能】

火绒企业版V2.0系统防御功能包含系统加固、应用加固、软件安装拦截、摄像头保护和浏览器保护。火绒终端安全管理软件V2.0守护企业用户终端安全。 系统防御 1. 系统加固 系统加固功能根据火绒提供的安全加固策略&#xff0c;当程序对特定系统资源操作时提醒用户可能存在的安…

Word中接入大模型教程

前言 为什么要在word中接入大模型呢&#xff1f; 个人觉得最大的意义就是不用来回切换与复制粘贴了吧。 今天分享一下昨天实践的在word中接入大模型的教程。 在word中接入大模型最简单的方式就是使用vba。 vba代码要做的事&#xff0c;拆分一下就是&#xff1a; 获取用户…