【问题标题】:Unity editor ping class monoscript file from file pathUnity 编辑器从文件路径 ping 类 monoscript 文件
【发布时间】:2019-12-08 03:57:08
【问题描述】:

我有一个用于事件系统的代表列表。我正在使用一个自定义编辑器,它查看代表列表并显示一个带有代表名称的按钮。我想知道如何使用editor ping object ping 委托所在的脚本。由于Delegate.Method.DeclaringType,我有.cs 文件的文件路径,我只是不知道如何找到要 ping 的 monoscript 对象。

                foreach (var callback in obj.Callbacks)
                {
                   // Path to .cs file
                   var path = callback.Method.DeclaringType + ".cs";
                 
                   // Button showing the delegates
                   if(GUILayout.Button($"{callback.Method.Name}", new GUIStyle(EditorStyles.objectField))){

                   // WANT TO PING .cs FILE OF THE DELEGATE FROM FILE PATH ON BUTTON CLICK 
                   //EditorGUIUtility.PingObject((MonoScript.FromMonoBehaviour(path));}}

我知道 stackoverflow 上有类似的问题,但我找不到关于该主题的任何结论性答案。知道我已经在寻找解决方案并正在向互联网寻求帮助。

谢谢

【问题讨论】:

标签: unity3d unity-editor


【解决方案1】:

我意识到关于命名空间不与文件夹路径对齐的评论是正确的,所以从技术上讲,我也没有文件路径。我无法弄清楚如何从 type 获取文件路径,以便我可以希望从上面的评论中提到的 ping 文件。

我最终走了一条更糟糕的路线,我提供了通过事件调用传入对象(单声道或可编写脚本的对象)的选项,因此编辑器可以通过 MonoScript.FromMonobehaviour 或 Monoscript.FromScriptableObject ping 对象。

我不太喜欢这个解决方案,但它是我能得到的最好的解决方案。如果有人知道如何获取文件路径然后 ping .cs 文件,我将非常感谢您的回复!

【讨论】:

    猜你喜欢
    • 2011-06-01
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多