【Unity3D日常开发】快速复制场景中的对象的坐标位置,并且复制
发布日期:2021-06-30 11:40:00 浏览次数:2 分类:技术文章

本文共 1285 字,大约阅读时间需要 4 分钟。

推荐阅读

一、前言

在开发中,会遇到要复制场景中对象的位置坐标的操作,通常的方法是看着对象的坐标,然后手动打出来坐标。

这种方式,效率会有点低,耽误时间,然后也可以打错,造成位置的偏移。

接下来就介绍如何快速复制坐标位置,并且复制

效果:

在这里插入图片描述

二、实现

代码:

复制坐标

using UnityEditor;using UnityEngine;public class CopyObjXYZ : Editor{
[UnityEditor.MenuItem("CopyXYZ/CopyXYZ %X")] static void CopyXYZ() {
GameObject obj = UnityEditor.Selection.activeGameObject; if (obj != null) {
string ret = obj.transform.localPosition.x + "f," + obj.transform.localPosition.y + "f," + obj.transform.localPosition.z + "f"; GUIUtility.systemCopyBuffer = ret; } }}

选中物体之后,使用快捷键 Ctrl+X ,就可以将选中的物体的坐标位置复制下来,然后在要复制的地方Ctrl+V就可以复制出来。。

复制旋转

using UnityEditor;using UnityEngine;public class CopyRotation : Editor{
static void CopyRotation() {
GameObject obj = UnityEditor.Selection.activeGameObject; if (obj != null) {
string ret = obj.transform.localEulerAngles.x + "f," + obj.transform.localEulerAngles.y + "f," + obj.transform.localEulerAngles.z + "f"; GUIUtility.systemCopyBuffer = ret; } }}

transform.localEulerAngles 欧拉角,这个复制出来的数据是物体的Transform组件的Rotation的值

使用transform.localRotation四元数也可以

但是需要transform.localRotation.eulerAngles转成欧拉角

四元数跟欧拉角之间的关系就不在这篇讲了 - -,

三、参考文档

转载地址:https://itmonon.blog.csdn.net/article/details/108638604 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【Unity3D日常开发】Unity Editor自定义快捷键
下一篇:【Unity3D日常开发】Unity2018打包WEBGL出错,输出异常等问题

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月13日 03时10分35秒