我想要做的是在场景中预制件 GameObject
的 Start()
方法中,我想获取该预制件所在的位置一个字符串,但我不知道如何做到这一点。
我如何使用它的示例:
我在场景中放置了一个 Sword Prefab GameObject
,在 Start()
上,我想获取此 GameObject
在我的场景中的文件目录。项目。
最佳答案
包括使用UnityEditor;
注意:只有当预制件公开时,这才有效。
然后使用AssetDatabase.GetAssetPath
获取预制件的路径。
public GameObject prefab;
void Start(){
string prefabPath = AssetDatabase.GetAssetPath(prefab);
Debug.Log("Path: " + prefabPath);
}
编辑:
我用 PrefabUtility.GetPrefabType
、PrefabUtility.GetPrefabObject
和 PrefabUtility.GetPrefabParent
做了一些实验。 PrefabUtility.GetPrefabParent
解决了这个问题。您不需要使用 PrefabUtility.GetPrefabParent
将预制件设为公开。
void Start()
{
GameObject prefab = GameObject.Find("PrebabTest");
Object GameObject2 = PrefabUtility.GetPrefabParent(prefab);
string prefabPath = AssetDatabase.GetAssetPath(GameObject2);
Debug.Log("Path: " + prefabPath);
}
关于c# - 获取 Unity 中的预制件文件位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36850296/