This gets a little tricky, MM.
The “problem” is that the words “materials” and “textures” are often used interchangeably when they are actually 2 different things.
A “material” is any group of facets assigned a unique identity. In hexagon, these areas are called “material domains”. These domains may include all of the faces or only some of the faces of a given mesh.
Materials may also be assigned colors and/or transparency, but they cannot be “textured” - at least not yet.
A “texture” is an image file that is applied to a model to give it graphic detail such as flesh, wood grain, polka dots, tattoos and so forth.
A texture also REQUIRES a mesh to be “UV mapped” or as hexagon calls it: “unwrapped”.
This is because UV mapping flattens out all the faces of a 3D mesh onto a 2D plane so that all the faces of a mesh are visible at the same time. This is how the program knows which small section of a 2D image gets pasted to a particular facet on a 3D mesh.
Think of skinning a bear in such a way that his skin lays out flat on the floor to make a “bearskin rug”. You could then “paint a picture” on the bearskin rug, and if you took that rug and put it back on the bear, the bear would have that picture wrapped around his body.
In the above bearskin example, the “painted picture” would be the “texture image” or just “texture”, and the flattened bearskin rug would be the “texture template” upon which the artist would overlay/draw his picture.
So now let’s return to your inquiry about how to “automatically assign a material to each new object”.
Whenever a mesh object is created, hexagon automatically assigns a material domain to it. This domain is hidden from the user and is used exclusively by hexagon to assign colors to the objects you create. By default, this color is a kind of light grey and is shared by all the objects in your scene.
By checking “create colored objects” in preferences, a la JimmyC’s suggestion, hexagon then assigns different domains to each object and colors them differently.
If the user wants to assign his own colors, or to assign 2 or more colors to a single object, then the user must assign his own materials and material names to do it. These material names then become visible in the materials window and the user can assign his own colors/transparency to them.
As for textures, hexagon cannot auto-assign textures to objects upon creation as it does with materials. This is because texturing requires UV mapping, and hexagon doesn’t know how to map a model according to a users texture image.
There is a way that hexagon can auto-texture a mesh, and is used for things like “checkerboarding” a model. As with auto-materials, auto-mapping uses an internal UV map invisible to the user and cannot be accessed by the user for his own texture images.
I’ve taken a few shortcuts here and skipped some details that some may take issue with, but I hope I’ve given you the gist of what hexagon can and cannot do, and why it can or can’t do certain things.
But if anyone has any “yeahbuts”, I’ll either try editing this post to include them or I’ll try to explain them separately.