当前位置: 首页 > wzjs >正文

十堰专业网站建设公司运营管理方案

十堰专业网站建设,公司运营管理方案,广西建设培训网,怎么做直播视频教学视频网站背景: 最近从cocos那边转过来的unity同事总是吐糟我们unity选中一个资源后都无法清晰的看到他的文件路径,这给他的工作带来了很多的烦恼,于是我想到昨天刚看到一个unity编辑器下的简易协程实现,通过2个接口Selection.activeObjec…

背景:

最近从cocos那边转过来的unity同事总是吐糟我们unity选中一个资源后都无法清晰的看到他的文件路径,这给他的工作带来了很多的烦恼,于是我想到昨天刚看到一个unity编辑器下的简易协程实现,通过2个接口Selection.activeObject = selectedObject; EditorGUIUtility.PingObject(selectedObject); 可以实现选中一个目标资源并且跳转到该资源,于是我们可以先选中文件的文件夹,然后协程等待一帧然后选中并跳转到选中文件。这样就实现了2边都展开的问题了。所以有时候有个同事问你问题真的是非常好,往往他们能让你产生很多有趣的想法。
               

运行结果:

1.之前的结果:

2.打开开关后运行结果 可以看到整个左侧的文件路径都暂开了,这样对于ui工作很频繁的同学

就很友好拉,可以节省一点点时间。

前置知识:

unity编辑器下的简易协程EditorCoroutine.cs 下方有代码

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

public class EditorCoroutine
{
    readonly EditorYieldInstruction mRoutine;

    public EditorCoroutine(EditorYieldInstruction pRoutine)
    {
        mRoutine = pRoutine;
    }

    static public EditorCoroutine StartCoroutine(EditorYieldInstruction pRoutine)
    {
        var tRoutine = new EditorCoroutine(pRoutine);
        tRoutine.Start();
        return tRoutine;
    }

    static public void StopCoroutine(EditorCoroutine pCoroutine)
    {
        if (pCoroutine != null) pCoroutine.Stop();
    }

    void Start()
    {
        EditorApplication.update -= Update;
        EditorApplication.update += Update;
    }

    void Stop()
    {
        EditorApplication.update -= Update;
    }

    void Update()
    {
        if (mRoutine != null && !mRoutine.MoveNext())
        {
            Stop();
        }
    }
}

public abstract class EditorYieldInstruction : IEnumerator
{
    public abstract object Current { get; }

    public abstract bool MoveNext();

    public abstract void Reset();
}

public class EditorWaitForSeconds : EditorYieldInstruction
{
    readonly long mTicks;
    readonly float mSeconds;
    readonly Action mCallBack;

    public EditorWaitForSeconds(float pSeconds, Action pCallBack)
    {
        mSeconds = pSeconds;
        mCallBack = pCallBack;
        mTicks = DateTime.Now.AddSeconds(pSeconds).Ticks;
    }

    public override object Current { get { return null; } }

    public override bool MoveNext()
    {
        if (DateTime.Now.Ticks >= mTicks)
        {
            if (mCallBack != null) mCallBack();
            return false;
        }
        return true;
    }

    public override void Reset()
    {
    }
}

高亮接口:


using UnityEditor;
using UnityEngine;

[InitializeOnLoad]

public class SelectionTools
{
    static SelectionTools()
    {
        // 监听 Selection 变化事件
        Selection.selectionChanged += OnSelectionChanged;
    }

    private static void OnSelectionChanged()
    {

 // 开关 如果你不想使用这个功能应该可以关闭 
        if (!EditorPrefs.GetBool("SelectionTools", true))
        {
            return;
        }

        // 获取当前选中的资源
        var selectedObject = Selection.activeObject;
        if (selectedObject == null)
            return;

        // 获取资源的路径
        string path = AssetDatabase.GetAssetPath(selectedObject);
        //目录不要这种操作
        if (string.IsNullOrEmpty(path) || System.IO.Directory.Exists(path))
            return;

        // 获取资源所在的目录
        string folderPath = System.IO.Path.GetDirectoryName(path);
        var folder = AssetDatabase.LoadAssetAtPath<UnityEngine.Object>(folderPath);
        if (folder != null)
        {
            // 将焦点切换到 Project 窗口
            //EditorUtility.FocusProjectWindow();
            Selection.activeObject = folder;
            EditorGUIUtility.PingObject(folder);
            //unity编辑下模拟协程 
            EditorCoroutine.StartCoroutine(new EditorWaitForSeconds(0.00001f, () =>
            {
                Selection.activeObject = selectedObject;
                EditorGUIUtility.PingObject(selectedObject);
            }));
            // Ping 目录(高亮显示但不会选中它)

        }
    }
}
 


文章转载自:

http://0ISHzvsu.rsbqq.cn
http://3ndSEiSb.rsbqq.cn
http://qbaZWBti.rsbqq.cn
http://m72wCegR.rsbqq.cn
http://LfLu7m21.rsbqq.cn
http://Gxic8ULM.rsbqq.cn
http://oX1zdzh9.rsbqq.cn
http://uzBoA1a0.rsbqq.cn
http://yObXWPVR.rsbqq.cn
http://m6uhibOw.rsbqq.cn
http://fhSv8IPf.rsbqq.cn
http://wVMGl7vX.rsbqq.cn
http://nnd5vafd.rsbqq.cn
http://nOrogyHh.rsbqq.cn
http://c1y19cfV.rsbqq.cn
http://Y7sfJmBy.rsbqq.cn
http://eZVK8ZeL.rsbqq.cn
http://ji4uLPd0.rsbqq.cn
http://7m1flKO9.rsbqq.cn
http://SUQGSBlP.rsbqq.cn
http://oKzw4HNZ.rsbqq.cn
http://kmv7XkV6.rsbqq.cn
http://oqInZnzL.rsbqq.cn
http://dsYap4rE.rsbqq.cn
http://8RAwgYM6.rsbqq.cn
http://zSmH1fVt.rsbqq.cn
http://SrYb69tE.rsbqq.cn
http://oscPfbMc.rsbqq.cn
http://61NHkwG0.rsbqq.cn
http://z72IEXe0.rsbqq.cn
http://www.dtcms.com/wzjs/690367.html

相关文章:

  • 学校网站建设解决方案河北省住房城乡建设厅网站
  • 用wex5 网站开发中国核工业华兴建设有限公司
  • 合肥网站建设制作价格优秀个人网页设计案例分析
  • 百度站长拼多多刷销量网站开发
  • 网站域名注册人查询哪家公司做企业网站稳定优惠
  • 怎么建设一个电影资源网站解析微信推广方案
  • 购物网站开发公司免费建立网站论坛
  • 网站开发哈尔滨网站开发公司电话国内贸易平台
  • 站酷网如何接单如何优化搜索关键词
  • 什么是网站反向链接保定高碑店网站建设
  • 网站网页设计模板自建的电子网站如何做推广
  • 专业做网站的公司哪家好网络营销是什么时候出现的
  • 做网站应下哪个软件企业平台入口
  • 苏宁易购网站建设目标中国设计师个人网站
  • 怎呀做网站成品视频直播软件推荐哪个好用
  • 广州网站建设oem网站字体使用
  • 网站 绝对路径 相对路径wordpress 迁移 新目录
  • 陕西网站开发联系方式建立什么网站可以赚钱
  • 江苏兴力建设集团有限公司网站门户网站是什么
  • 网站最合适的字体大小哪里有网站设计学
  • 网站栏目做树形结构图商洛 网站建设
  • 开县网站建设网站建设实验原理
  • 浙江省建设政务网站海外购物网站大全
  • angularjs 做团购网站大阳摩托车官网
  • 中文域名和网站的关系wordpress网站不收录
  • 微信电脑网站是什么原因android开发是做什么的
  • php+mysql网站开发...php做网站用什么软件好
  • 城乡建设杂志官方网站wordpress 登录后台
  • 织梦网站tel标签易优cms企业网站管理系统
  • 怎么在网站上做宣传云主机购买