I’ve been wondering this for a bit now, but why are the references for assets named the way they are? For example, a level asset named ‘level1’ could be called “World’/Game/Maps/Level1.Level1’”. The problem I have is that the final part of the asset is literally the asset name with the file extension of the asset name. This creates a few problems, such as not being able to have a material and texture named the same thing within a folder, for example. Is there a design limitation that is the reason for this, is it intentional?
You just have to use names like this
Also take a look at this page: https://wiki.unrealengine.com/Assets_Naming_Convention
Technically, I believe level01.level01 is referring the level01 object within the level01 package (or uasset file). In UE4, we use a single asset per package system, but there actually are specific instances where the uasset file actually contains more than one object. For instance, a Blueprint asset actually contains the Blueprint object and the class generated when compiling the Blueprint. All the user ever sees is the single asset, but there is more going on behind the scenes there.
The reason you can’t have a Material and Texture with the same name in the same folder is because of the single asset per package system. Every asset is contained in a .uasset file. So, if you had a Material named Bricks and a Texture named Bricks, they would both be Bricks.uasset. You can’t have multiple files with the same name in the same folder so you can’t have two assets named the same in the same folder.