TexCoord(x) is a 2vec, you multiply it by a 1vec and then add to a 2vec you built, it’s still a 2vec when you stick it into the WorldAlignedTexture and the function is expecting you to feed it a 3vec.
Ideally you would append another scalar to make it a 3vec but what is the key… World-aligned will give you a triplanar projection, something is projected along each axis, weight-blended so a texture seems to seemlessly wrap around an object. It does this in worldspace, along the world’s XYZ axis). TexCoord(x) wraps/addresses along the local-space of the object, when someone creates it in Blender and sets up UVs. The addressing is part of the object and can be read in the shader. With Worldspace, you are just-tiling in a different coordinate-system, absolute, outside the object. If you move your wall the texture might appear to swim, since the world-coordinates won’t ever move themselves, only the object…
So! In this case, World-Aligned could be the way to go to wrap stuff seamlessly but wouldn’t give you mix-it-up/untiling.
You didn’t do it wrong, you just happened upon two incompatible methods.
FWIW, the tutorial looks good, particularly cheap for a per-object mix-it-up. With that it wouldn’t need the world-aligned node, so take those out for at least this use-case.
As for texture-object vs texture-sample vs texture-sample-parameter… A texture-object is a thing that points to a texture; done. It can then be plugged into a texture-sampler as one of the configuration options, like UVs. If you crack open the world-aligned node you should see samplers therein. They read in whatever texture you pass in via the texture-object node. YOU don’t actually sample the texture when calling the node, the code therein does. You just need to tell the engine what texture in particular you want.
A pedantic distinction to be sure but such is code…
Anything with ‘parameter’ in it’s name is exposed in a material instance when you apply it to an object. This makes it editable in the instance, setable by code so you can do stuffs at runtime. A texture sample parameter is the texture object and sampler in one. Why the multiple ways to do the same thing? Sometimes you just need to expose one thing and sample it multiple times, like in world-aligned, sometimes you need to set each sample(r), all depending on your shader logic.
Hope this helps.