- Home /
Bug with GetPixels()?
Hello guys,
I don't know if this is a bug. Take a look at this code:
private Texture2D tempTexture;
private void CopyToTestTexture(Texture2D source) { if (tempTexture == null) { tempTexture = new Texture2D(source.width, source.height); }
tempTexture.SetPixels(source.GetPixels()); tempTexture.Apply();
GUITexture testGuiTexture = GameObject.Find("Test").guiTexture; testGuiTexture.texture = tempTexture; // just to render to see if it copied it well }
It just copies the specified source texture unto a temporary using SetPixels(). It works fine for power-of-2 textures, but not for non power-of-2 textures.
What I'm trying to achieve is get a pixel from the texture, check its alpha against a certain threshold such that I can flag it as a collision hit when clicked. My game requires that clicking on a transparent part of the image should not trigger a hit. Maybe you can give another solution.
Note that my textures are imported with:
void OnPreprocessTexture() {
TextureImporter importer = (TextureImporter) assetImporter;
importer.textureType = TextureImporterType.Advanced;
importer.npotScale = TextureImporterNPOTScale.None;
importer.isReadable = true;
}
I can't scale textures because it produces visual artifacts on the scene. I am porting a hidden object game. You might have other ideas.
Answer by maxime.du · Jan 31, 2012 at 10:44 PM
Hi Pennylane,
as I have seen your post is outdated a little. But I came across this problem recently too.
The solution is simple: set your Texture format to ARGB32, RGBA32 or Alpha8. See: http://unity3d.com/support/documentation/ScriptReference/Texture2D.SetPixels.html
The default "Automatic compressed" does not work here with npo2 textures.
Regards, Roger
Answer by amit-chai · Sep 22, 2011 at 01:13 AM
TY m8! in your code (even though i dont know whats wrong in it), ive finally found the obvius about using getPixels and SetPixels in order to load a saved image into a texture!
This was the one i needed :
mainBG.SetPixels(mainBGSource.GetPixels()); so simplem but couldnt find it anywhere else ;)
Your answer
Follow this Question
Related Questions
Problem using multiple materials 0 Answers
Bug? CUBE map using a LOT of memory 1 Answer
cut texture with cut object 0 Answers
Set texture / EnableKeyword not working in build 1 Answer
Setting pixels on a texture? 2 Answers