// 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的更多相关文章

随机推荐

  1. python-切片实例

    针对list或tuple取指定范围的操作.可以使用切片(slice),非常有用 1.list:可变数组 L=['a','b','c','d','e'] >>> L[0:3] #从第0 ...

  2. SSH框架环境搭建问题:java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required

    SSH框架启动tomcate时出错 严重: Exception sending context initialized event to listener instance of class org. ...

  3. Java数组填充和初始化

    Java中,如何填充(一次初始化)数组? 示例 此示例使用Java Util类的Array.fill(arrayname,value)方法和Array.fill(arrayname,starting ...

  4. C#提高-------------------Assembly和Module的使用-------反射内涵

    转 :C#反射技术概念作用和要点 反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类.结构.委托.接口和枚举等)的成员,包括方法.属性.事件,以 ...

  5. unity-------------UI的界面调节

    Rect Transform 我们都知道,Unity3D中所有的GameObject都必须要携带一个Transform组件,且该组件无法移除,那么作为UI显示的GameObject则不是携带Trans ...

  6. 嵌入式开发值zynq驱动—— zynq SPI Flash 驱动过程

    http://blog.csdn.net/pengwangguo/article/details/52292664 http://blog.csdn.net/pengwangguo/article/d ...

  7. Kong安装简介

    评价:其实是一个整合型的方案,从它的安装页面看:http://getkong.org/download/#other该方案基于OpenResty,和lua 提供的功能是统一的Oauth认证.rest封 ...

  8. linux下nginx安裝

    1.yum安裝 yum安裝  http://nginx.org/packages/centos/7/noarch/RPMS/ 第一步: 安裝命令: yum localinstall http://ng ...

  9. springboot - Constructor、@Autowired、@PostConstruct分析

    1.Constructor 构造方法 2.@Autowired 依赖注入 3.@PostConstruct 在依赖注入完成后被自动调用 4. 三者的顺序: 从依赖注入的字面意思就可以知道,要将对象p注 ...

  10. linux下nginx配置ssl证书(https)

    nginx配置ssl很简单,首先需要两个文件,一个是crt文件,另一个是key文件,如下所示: xxx.crt;  #(证书公钥)xxx.key; #(证书私钥) 把这两个文件放到nginx的conf ...