- Home /
Find Asset from Mesh
How to find the Asset given a Mesh? I have a MeshFilter which points to a Mesh, I need to get the corresponding "asset" mesh. In fact I need to restore the position of a mesh in game to the position saved in the aaset model.
Answer by Mikilo · Feb 28, 2013 at 02:10 PM
Hi!
If I understand your problem, you need to have the path of the mesh?
There is a function which possibly answers your question:
Hope this is your answer, good day.
I'm sorry, this way does not work, returned paths are empty
$$anonymous$$eshFilter mf = lod_child.GetComponent<$$anonymous$$eshFilter>();
if(mf != null)
{
$$anonymous$$esh sm = mf.shared$$anonymous$$esh;
$$anonymous$$esh m = mf.mesh;
string sm_path = AssetDatabase.GetAssetPath(sm.GetInstanceID());
string m_path = AssetDatabase.GetAssetPath(m.GetInstanceID());
Debug.Log("Shared$$anonymous$$esh Path:" + sm_path);
Debug.Log("$$anonymous$$esh Path:" + m_path);
}
GetInstanceID() return an int, GetAssetPath() need a real object. Can you try AssetDatabase.GetAssetPath(m)?
Same result as above. By the way GetAssetPath() seem to accept an ID too. http://docs.unity3d.com/Documentation/ScriptReference/AssetDatabase.GetAssetPath.html
You said right. It accepts an ID. I'm not even sure that you can find the origin, with only a mesh. Edit: I've deleted my last post...
Using C# I passed a meshFilter.shared$$anonymous$$esh object into the GetAssetPath function and was able to get the correct path out.
string meshPath = AssetDatabase.GetAssetPath(my_meshFilter.shared$$anonymous$$esh);
Your answer
Follow this Question
Related Questions
AssetDatabase.AddObjectToAsset is not persistent? 0 Answers
Getting a prefab with javascript FindAsset (Solved) 0 Answers
I can modify the GameObject transform using the inspector, how can I modify the mesh as well? 0 Answers
How to import a mesh NOT as a Prefab 2 Answers
Best way to render a character with extra accessories? 1 Answer