前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >“复制100个物体的坐标的值(xyz)和旋转的值(xyz)你需要几次操作?----600次”,“我只需要2次”

“复制100个物体的坐标的值(xyz)和旋转的值(xyz)你需要几次操作?----600次”,“我只需要2次”

作者头像
恬静的小魔龙
发布2022-08-07 09:09:21
9950
发布2022-08-07 09:09:21
举报
文章被收录于专栏:Unity3DUnity3D

一、前言

在开发中,会遇到要复制场景中对象的位置坐标的操作,通常的方法是分别复制物体的xyz的值,然后再粘贴,这样效率非常低,耽误时间,也可以复制错误,造成位置的偏移。

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

效果:

在这里插入图片描述
在这里插入图片描述

二、实现

代码: 复制坐标

代码语言:javascript
复制
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就可以复制出来。。

复制旋转

代码语言:javascript
复制
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转成欧拉角

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

三、参考文档

1、[Unity]提供效率,方便策划复制地图布点对象的坐标朝向 贴到excel里。 2、基于团队的持续优化之道

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-07-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、实现
  • 三、参考文档
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档