- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
对不起我的英语(谷歌翻译)。以下是在所选目录 (Assets/Resources/TestObject.asset) 中创建 Assets (ScriptableObject) 的代码片段:
[MenuItem("Assets/Create/Test Object")]
private static void CreateTestObject()
{
var testObject = ScriptableObject.CreateInstance<TestObject>();
AssetDatabase.CreateAsset(testObject, "Assets/Resources/TestObject.asset");
AssetDatabase.SaveAssets();
}
如何获取我所在目录的路径?为了不手动对路径进行硬编码,而是将此游戏对象保存在我调用该方法的同一文件夹中。
例如:
1) 我从 Assets/TestFolder/TestFolder2 调用方法。
2) 并在同一目录中创建一个 Assets (TestObject)。并且不会在 Assets /资源中创建。
综上所述,我需要通过菜单(Assets/Create/Test Object)获取我调用方法的目录路径。
另外:我可以在创建游戏对象后立即重命名它吗?与其他对象(脚本、文件夹等)一样。
预先感谢您的回答!
Example (screenshot):如何获得以红色突出显示的路径。我将通过菜单调用该方法(创建/测试对象)。在我选择的目录中 (Assets/TestFolder/TestFolder2)。 Assets 是在那里创建的。而不是在 Assets /资源中。我需要一个可以向我返回字符串的方法:Assets/TestFolder/TestFolder2。
最佳答案
虽然 HedgehogNSK 的回答肯定是正确的,但您可能会发现自己处于这样一种情况,即您想在 Create
菜单上下文之外的当前文件夹中创建 Assets (例如,通过自定义 编辑器窗口
)。在这种情况下,您可以使用编辑器在内部执行的相同方法,ProjectWindowUtil.CreateAsset(Object asset, string path)
。这将从提供的对象创建 Assets ,并为用户提供重命名它的机会,就像 Create
下的默认条目一样。示例:
private static void CreateTestObject()
{
var testObject = ScriptableObject.CreateInstance<TestObject>();
// Do some custom initialization logic for testObject
ProjectWindowUtil.CreateAsset(testObject, "TestObject.asset");
}
ProjectWindowUtil
类没有记录,但是是public
并且可以很容易地在 Unity 引用源中找到 here .特别是 CreateAsset
已经存在了好几年,所以可以肯定地假设它不会消失。
关于c# - 如何获取当前目录的路径? (ScriptableObject, UnityEditor.AssetDatabase),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45786451/
我有一个 Unity3D 编辑器类,可以动态创建新资源。然后我打电话AssetDatabase.Refresh使用默认选项(强烈推荐)。由于刷新是一种异步方式,我需要一种在刷新准备就绪时获得通知的方法
对不起我的英语(谷歌翻译)。以下是在所选目录 (Assets/Resources/TestObject.asset) 中创建 Assets (ScriptableObject) 的代码片段: [Men
尝试使用 unity 构建游戏时收到以下错误: The name AssetDatabase does not exist in the current context 任何人都可以帮忙吗..我将感谢
我的游戏开发合作伙伴正在关注 Unity。我使用 Resource.Load() 动态加载资源,而他使用 AssetDatabase.LoadAssetAtPath()。它们似乎都有效,那么应该使用哪
我是一名优秀的程序员,十分优秀!