I need some help with Unity and pixel perfect in 2D. I have a character which can aim with his slingshot and shoot some projectiles with it.
The main problem with this is when I rotate his arm to make it look at the mouse, the sprite looks perfectly rotated and shaped which makes it looks ugly since the rest of the game is pixelated.
What I’d like to achieve is a “pixel perfect rotation”, I mean, I don’t want the pixels to rotate themselves but I need them to “reset” or “look for” a new position inside the sprite and keep it pixelated every time I rotate it. Sorry if I can’t explain it better
I’ve searching the entire forum and internet but I can’t find any good article about this. A “rotation matrix” seems to be the way to follow. I know what it is but I would need some help to start with it and use it in Unity… Someone can point me in the right direction with this?
I’m already using “point” filtering but it doesn’t work. You can try yourself, Unity rotate the the sprite and keeps it sharp :S
Creating individual animation frames seems a way to follow but I think that’s a lot of work that can be avoided, I really think other devs make the sprite dynamically, check this out (“new rotation technique”):
maybe you have sprite pixels which are actually more than 1x1 pixel on the screen, like you’re using a higher resolution than the texture for display? In that case rotation would make the pixels appear to get diagonal edges. Or using bilinear filtering. Or using antialiasing with pixels in the sprite being too near to the edges of the sprite geometry.
Actually, I want the opposite of this to happen. I mean I don’t want pixels to rotate in a pixel perfect way. It might seem strange, but I really want my sprite’s arm to rotate normally, cause it is not that pixelated.