Unity场景物体路径复制插件

Unity场景物体路径复制插件


在unity开发中,经常需要去获取某个物体,这时我们需要用到Find方法,参数是一个路径。每次总是傻乎乎的复制黏贴,今天看到群里大佬说直接快捷键生成,自己也找资料搞了一个,代码基本没怎么改,整个代码的基本思路也很简单就不赘述了。增加了快捷键功能和Hierarchy面板右键功能。
原文地址:https://blog.csdn.net/yangjie6898862/article/details/51897335
下边有一部分设计Unity编辑器扩展,这里找了一个写的比较全面的文章
https://blog.csdn.net/wpapa/article/details/51066397

效果展示

这里写图片描述

这里写图片描述

使用方法

直接选中场景中的某个物体,然后使用CopyPath功能。
这里有三种方式,
一 菜单栏-GameObject-Copy Path
二 右键 Copy Path
三 默认快捷键 Ctrl + 1 (可以自己在代码里修改)
复制完后,可以直接去其他地方进行复制粘贴了。
这里写图片描述

完整代码

直接放在工程中即可,推荐还是放在Editor下边。

using UnityEngine;
using UnityEditor;
using System.Collections;
using System.Collections.Generic;
using System.IO;



public class FindPath
{
    public static List<string> filelist = new List<string>();
    public static List<string> deallist = new List<string>();
    public static string filepath;

    // Use this for initialization
    [MenuItem("GameObject/Copy Path %1", priority = 0)]
    public static void GetPath()
    {
        clearmemory();
        recursiveFind(Selection.activeGameObject.gameObject);

        printinScreen();
        clearmemory();
    }

    public static void recursiveFind(GameObject go)
    {
        if (go != null)
        {
            filelist.Add(go.name);
            if (go.transform.parent != null)
            {
                recursiveFind(go.transform.parent.gameObject);
            }
        }
    }


    public static void clearmemory()
    {
        filelist.Clear();
        deallist.Clear();
    }

    public static void printinScreen()
    {

        for (int i = filelist.Count - 1; i >= 0; i--)
        {
            string str = filelist[i];
            if (i != 0)
            {
                str = str + "/";
            }
            deallist.Add(str);
        }
        string showstr = "";
        foreach (var list in deallist)
        {
            showstr += list;

        }
        Debug.Log(showstr);

        //text copy to shear plate
        TextEditor te = new TextEditor();
        te.content = new GUIContent(showstr);
        te.SelectAll();
        te.Copy();


    }

}
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页