CopyTransform

// TransformCopier.cs v 1.1
// homepage: http://wiki.unity3d.com/index.php/CopyTransform using UnityEngine;
using UnityEditor;
using System.Collections; public class TransformCopier : ScriptableObject { private static Vector3 position;
private static Quaternion rotation;
private static Vector3 scale;
private static string myName; [MenuItem ("Window/Transform Copier/Copy",false,)]
static void DoRecord () {
position = Selection.activeTransform.localPosition;
rotation = Selection.activeTransform.localRotation;
scale = Selection.activeTransform.localScale;
myName = Selection.activeTransform.name;
EditorUtility.DisplayDialog("Transform Copy", "Local position, rotation, & scale of "+myName +" copied relative to parent.", "OK", "");
} // PASTE POSITION:
[MenuItem ("Window/Transform Copier/Paste Position",false,)]
static void DoApplyPositionXYZ () {
Transform[] selections = Selection.transforms;
foreach (Transform selection in selections) selection.localPosition = position;
} [MenuItem ("Window/Transform Copier/Paste Position X",false,)]
static void DoApplyPositionX () {
Transform[] selections = Selection.transforms;
foreach (Transform selection in selections) selection.localPosition = new Vector3(position.x, selection.localPosition.y, selection.localPosition.z);
} [MenuItem ("Window/Transform Copier/Paste Position Y",false,)]
static void DoApplyPositionY () {
Transform[] selections = Selection.transforms;
foreach (Transform selection in selections) selection.localPosition = new Vector3(selection.localPosition.x, position.y, selection.localPosition.z);
} [MenuItem ("Window/Transform Copier/Paste Position Z",false,)]
static void DoApplyPositionZ () {
Transform[] selections = Selection.transforms;
foreach (Transform selection in selections) selection.localPosition = new Vector3(selection.localPosition.x, selection.localPosition.y, position.z);
} // PASTE ROTATION:
[MenuItem ("Window/Transform Copier/Paste Rotation",false,)]
static void DoApplyRotationXYZ () {
Transform[] selections = Selection.transforms;
foreach (Transform selection in selections) selection.localRotation = rotation;
} [MenuItem ("Window/Transform Copier/Paste Rotation X",false,)]
static void DoApplyRotationX () {
Transform[] selections = Selection.transforms;
foreach (Transform selection in selections) selection.localRotation = Quaternion.Euler(rotation.eulerAngles.x, selection.localRotation.eulerAngles.y, selection.localRotation.eulerAngles.z);
} [MenuItem ("Window/Transform Copier/Paste Rotation Y",false,)]
static void DoApplyRotationY () {
Transform[] selections = Selection.transforms;
foreach (Transform selection in selections) selection.localRotation = Quaternion.Euler(selection.localRotation.eulerAngles.x, rotation.eulerAngles.y, selection.localRotation.eulerAngles.z);
} [MenuItem ("Window/Transform Copier/Paste Rotation Z",false,)]
static void DoApplyRotationZ () {
Transform[] selections = Selection.transforms;
foreach (Transform selection in selections) selection.localRotation = Quaternion.Euler(selection.localRotation.eulerAngles.x, selection.localRotation.eulerAngles.y, rotation.eulerAngles.z);
} // PASTE SCALE:
[MenuItem ("Window/Transform Copier/Paste Scale",false,)]
static void DoApplyScaleXYZ () {
Transform[] selections = Selection.transforms;
foreach (Transform selection in selections) selection.localScale = scale;
} [MenuItem ("Window/Transform Copier/Paste Scale X",false,)]
static void DoApplyScaleX () {
Transform[] selections = Selection.transforms;
foreach (Transform selection in selections) selection.localScale = new Vector3(scale.x, selection.localScale.y, selection.localScale.z);
} [MenuItem ("Window/Transform Copier/Paste Scale Y",false,)]
static void DoApplyScaleY () {
Transform[] selections = Selection.transforms;
foreach (Transform selection in selections) selection.localScale = new Vector3(selection.localScale.x, scale.y, selection.localScale.z);
} [MenuItem ("Window/Transform Copier/Paste Scale Z",false,)]
static void DoApplyScaleZ () {
Transform[] selections = Selection.transforms;
foreach (Transform selection in selections) selection.localScale = new Vector3(selection.localScale.x, selection.localScale.y, scale.z);
} // CHANGE LOCAL ROTATION :
[MenuItem ("Window/Transform Copier/localRotation.x + 90",false,)]
static void localRotateX90 () {
Transform[] selections = Selection.transforms;
foreach (Transform selection in selections) selection.localRotation = selection.localRotation*Quaternion.Euler(90f,0f,0f);
} [MenuItem ("Window/Transform Copier/localRotation.y + 90",false,)]
static void localRotateY90 () {
Transform[] selections = Selection.transforms;
foreach (Transform selection in selections) selection.localRotation = selection.localRotation*Quaternion.Euler(0f,90f,0f);
} [MenuItem ("Window/Transform Copier/localRotation.z + 90",false,)]
static void localRotateZ90 () {
Transform[] selections = Selection.transforms;
foreach (Transform selection in selections) selection.localRotation = selection.localRotation*Quaternion.Euler(0f,0f,90f);
} // SWAP:
[MenuItem ("Window/Transform Copier/Swap Y and Z Scale", false, )]
static void SwapYZScale () {
Transform[] selections = Selection.transforms;
foreach (Transform selection in selections) selection.localScale = new Vector3 (selection.localScale.x,selection.localScale.z,selection.localScale.y);
}
}
CopyTransform的更多相关文章
随机推荐
- Ogre2.1 结合OpenGL3+高效渲染
在DX10与OpenGL3+之前,二者都是固定管线与可编程管线的混合,其中对应Ogre1.x的版本,也是结合固定与可编程管线设计.转眼到了OpenGL3+与DX10后,固定管线都被移除了,相对应着色器 ...
- python的callback函数原理
__getattribute__作用 """ class C(object): a = 'abc' def __getattribute__(self, *args, * ...
- AWT控件称为重量级控件
AWT 是Abstract Window ToolKit (抽象窗口工具包)的缩写,这个工具包提供了一套与本地图形界面进行交互的接口. AWT 中的图形函数与操作系统所提供的图形函数之间有着一一对应的 ...
- 目标检测之rcnn---开启检测新高度优于dpm
http://www.cnblogs.com/louyihang-loves-baiyan/p/4839869.html http://www.cnblogs.com/louyihang-loves- ...
- NPOI 2.1.1 系列(1) 使用NPOI读取 Excel文档 ;NpoiExcelHelper 导入导出 2003格式 2007格式的 Excel; Npoi 导出 xlsx 格式
下载地址 http://npoi.codeplex.com/releases 下面放一个 NPOIHelper 助手类吧,也不是我写的- NpoiExcelHelper 可以生成xlsx格式publi ...
- 让不支持MVC3的服务器/空间/虚拟主机 支持MVC3 (前提是必须支持 .net 4.0才可以)
在有的时候,你用的VPS,服务器或者是虚拟空间可能是没有安装MVC3的,下面我们就自己来手动来让虚拟空间支持(前提是空间必须是.net 4.0的,因为MVC3是在4.0下运行) 我们先在web.con ...
- VS 调试 无法启动IIS Express Web 服务器(进程不存在)
拷贝VS2015项目 出现无法启动IIS Express Web 服务器 一.把你们拷贝刀本机的解决方案文件中的隐藏文件夹.vs删除掉 重新生产解决方案就可以启动iis express了.
- C# 实现写入文本文件内容功能
private void write_txt(string str1, string str2, string str3) { System.DateTime currentTime = System ...
- Android使用http协议与服务器通信
网上介绍Android上http通信的文章很多,不过大部分只给出了实现代码的片段,一些注意事项和如何设计一个合理的类用来处理所有的http请求以及返回结果,一般都不会提及.因此,自己对此做了些总结,给 ...
- 百度编辑器插入视频、iframe 失败
插入失败是因为编辑器的xssFilter过滤,导致插入出现异常 文件位置:ueditor.config.js ,大概在428行加上 video: ['autoplay', 'controls', 'l ...