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?

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

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.