Unity编辑器从文件路径中ping类monoscript文件

问题描述 投票:0回答:1

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

                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个回答
0
投票

我意识到关于名称空间未与文件夹路径对齐的注释是正确的,因此从技术上讲我也没有文件路径。我无法弄清楚如何从类型中获取文件路径,以便希望从上面的注释中提及来对文件进行ping操作。

我最终走了一条更糟的路线,在该路线上,我可以选择通过事件调用传递对象(单声道或可脚本化对象),以便编辑器可以通过MonoScript.FromMonobehaviour或Monoscript.FromScriptableObject对对象进行ping操作。

我不是很喜欢这种解决方案,但是它是我能得到的最好的解决方案。如果有人知道如何获取文件路径,则对.cs文件执行ping操作,我将非常感谢您的响应!

© www.soinside.com 2019 - 2024. All rights reserved.