查看: 2467|回复: 2
打印 上一主题 下一主题

将GameObject移动到(0,0,0)[Editor Script的威力] (转载)

[复制链接]

2508

主题

2

听众

3万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
32806
精华
12

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2012-11-3 11:34:35 |只看该作者 |倒序浏览
是不是您已经对每次将大堆的GameObject移动到原点几经感到厌烦了呢?

来看看下面的代码是如何为unity3d添加新功能的吧


代码:

using UnityEditor;
using UnityEngine;

class MoveToOrigin {
    /// <summary>
    /// Moves the selected game object(s) to (0, 0, 0).
    /// <summary>
    /// <remarks>Keyboard shortcut: cmd-0 (Mac), ctrl-0 (Windows).</remarks>
    [MenuItem ("GameObject/Move To Origin %0")]
    static void MenuMoveToOrigin () {
        // Move each selected transform to (0, 0, 0)
        foreach (Transform t in Selection.transforms) {
            Undo.RegisterUndo(t, "Move " + t.name);
            t.position = Vector3.zero;
            Debug.Log("Moving " + t.name + " to origin");
        }
    }
   
    /// <summary>
    /// Validates the "Move To Origin" menu item.
    /// </summary>
    /// <remarks>The menu item will be disabled if no transform is selected.</remarks>
    [MenuItem ("GameObject/Move To Origin %0", ***e)]
    static bool ValidateMoveToOrigin () {
        return Selection.activeTransform != null;
    }
}

将此代码命名为MoveToOrigin.cs

并且在你的工程下建立名为Editor的文件夹,并将MoveToOrigin.cs放入其中

你将会在GameObject菜单下发现Move To Origin选项



现在选中一个或多个GameObject然后按cmd+0(Mac系统)/ctrl+0(Windows)

所有选中物体都移动到了原点位置
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

may    

8830

主题

81

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
52336
精华
343

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

沙发
发表于 2012-11-3 12:31:06 |只看该作者
不错的资料,学习!
回复

使用道具 举报

2722

主题

42

听众

3万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
38268
精华
111

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2012-11-4 00:38:29 |只看该作者
我倒是经常用move to view这个功能
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-24 10:26 , Processed in 0.178675 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部