by user 103054507105067008
which version are you on?
2.59.3-pre
by user 103054507105067008
Will roll up to 2.60.2-pre1
by user 103054507105067008
Yup I added it last release - just for you ![]()
(internally we used it already - just not exposed)
Thanks! Should I try to use it in preprocesstexture using the path then? Here is gets upset when I try to give it a texture in postprocesstexture which is where I can actually get the texture, I would rather do it in preprocesstexture but then I can’t check with TryGetTextureSettings in Preprocess
by user 103054507105067008
SetTexture doesnt have an out parameter
I took the out out of it in the last screenshot there, think I’m close now
by user 103054507105067008
I packaged up my import script and asmdef here in Editor>NeedleImporter but it simply doesn’t change the Needle texture import settings when I test with a file called Dog_Normal.jpeg
by user 103054507105067008
I’m close here as it doesn’t error on import, should I be running them in PostprocessTexture?
If I try it there it complains about using a Texture2d and not a string on TrySetTextureSettings as you can see here https://discord.com/channels/717429793926283276/1067869919192039504/1068202375183073290
by user 103054507105067008
Made a change internally t make it easier. It did internally call AssetDatabase.GetAssetPath which didnt work in preprocess apparently (it returned an empty string).
This works in the next update:
using System.Threading.Tasks;
using Needle.Engine;
using Needle.Engine.Utils;
using UnityEditor;
// Automatically convert any texture file with "_bumpmap"
// in its file name into a normal map.
internal class AssetPreprocessor : AssetPostprocessor
{
private void OnPreprocessTexture()
{
if (assetPath.Contains("q11Gd"))
{
if (NeedleAssetSettingsProvider.TryGetTextureSettings(assetPath, out var settings))
{
settings.Override = true;
settings.CompressionMode = TextureCompressionMode.UASTC;
NeedleAssetSettingsProvider.TrySetTextureSettings(assetPath, settings);
}
}
}
}
just published!
Will test this tomorrow morning, thanks for fixing so fast I think having this exposed is super useful, just being able to do this is going to save me hours of manually faffing with texture import settings in projects ![]()
by user 103054507105067008
Works great, last thing is when I declare private NeedleTextureSettings textureSettings; can I set the default settings of textureSettings up there when it is declared or do I need to set these everytime onPreProcessTexture gets called?
settings.Override = true;
settings.CompressionMode = TextureCompressionMode.UASTC;
by user 103054507105067008
You can declare them up there
Just be aware that NeedleTextureSettings is a struct ![]()


