- Home /
Any/best way to add a texture in Editor?
I'm making an script which requires a mesh and a texture. Therefore it requires also a material. That is it is a run-time component, but it draws gizmos (the mesh) but it needs a little setup first. I don't really want to burden the user with making a material by hand. I'd rather have them just drop a texture on my component, and have it somehow create the material for them. The material needs to exist while not running (while editing) because it needs to be rendered like gizmos. Works fine if I make a material and assign it, but I want to simplify this. Possible? How?
Answer by numberkruncher · May 10, 2012 at 11:49 PM
You should be able to save a material that is created dynamically by an editor script using UnityEditor.AssetDatabase.CreateAsset
. As @rutter explains you will probably need to create your own custom editor as well.
http://unity3d.com/support/documentation/ScriptReference/AssetDatabase.CreateAsset.html
thanks but I don't really want to have them show up in the Project or be saved as assets that way
Answer by rutter · May 10, 2012 at 09:30 PM
Sounds like you might be able to manage this with a custom inspector that watches out for texture changes, and automatically creates, configures, or adds new materials and components as needed.
For more information on writing your own inspectors, see the Editor class, CustomEditor attribute, and extending the editor manual page. This is an area of Unity many beginners find overwhelming, but if you have the time and ability to figure it out then you can potentially save yourself and your project a lot of time.
Your answer
Follow this Question
Related Questions
Getting properties on 'missing' things in Editor Scripts? 4 Answers
Manually triggering a script from the editor (utility, macro etc.) 1 Answer
Editor script - any callback when target is first instantiated? 1 Answer
Is there a way to mass assign materials? 4 Answers
Mipmap view not working in editor. 0 Answers