i hope you can help me ... I chose a sprite background of size 2048x1365. My camera size is 6. The aspect ratio is 4:3. This is the math i did to claculate the PPU for that sprite:
I multiply my camera size by two to get my camera height and got 12.
Then I divided the height of the sprite by the height of the camera to get PPU and got 113.75 PPU.
Then I set the sprite PPU to 113.75 and the sprite size is still way smaller than the camera...
i hope you can help me .... thank you ...
I got this image from a Brackeys video. You want to divide the number of pixels of the image by the number of units it should take in the game. It sounds like you are on the right track with your math.
Here is an example I just made with the sprite's import settings.
And here is the sprite in the scene view.
I am able to successfully make the image cover the entire height of the camera.
Related
Is there a way to draw a 10x20px sprite always with 10x20px regardless of the resolution?
I don't mean to add it as a UI/canvas object, I want to be able to place it in the world and move it or move the camera.
thx for any help!
If using an Image component you can hit the Set Native Size button in the Inspector
Set the dimensions of the image box to the original pixel
size of the Texture.
In order to move it and place it in 3D it has to be a child of a Canvas with RenderMode = WorldSpace
Then also note the options of the Canvas especially the CanvasScaler -> Reference Pixels Per Unit value. It should be 1 in your case before hitting Set Native Size in the Image.
You can do that by setting the Camera ortographic size to the correct size. Try the 2D Pixel Perfect Camera package by Unity https://blogs.unity3d.com/2019/03/13/2d-pixel-perfect-how-to-set-up-your-unity-project-for-retro-8-bits-games/
The script in that package will automatically set your Camera ortographic size with provided parameters. If you want to manually set it, the formula is:
Camera ortographic size = vertical resolution / PPU / 2
Vertical resolution means the target vertical resolution that your sprite was designed for. For example, if your sprite is designed to look pixel perfect on 1600x900 screen, then the vertical resolution will be 900.
PPU means the pixel per unit, by default all imported sprites are set to 100.
I'm working on a 2D project in unity and I'm having trouble getting the camera to the exact size I need. I would like the camera to be centered around a level I've already created, so I know exactly how tall and wide it should be, and where it should be centered. Where I get lost is translating these values to the properties of the camera. Any advice would be appreciated.
You can put more details about your problem.
Unity's camera rect is resolution depend. So you cannot set width and height of camera size. For example if you have resolution 16:10, camera rect will have that ratio, you can only change scale of that real resolution.
I am new to unity and I am trying to attach my camera to a fixed background. So I have a camera object, and a sprite object that is the background, but I can't make the camera to be in the exact same height and width of the sprite background.
this is screenshots of my project:
Your camera "size", is actually made up two factors.
Orthographic size.
Aspect ratio of player.
To fit the background into the camera, change player aspect ratio to be same as background image. And then play with size to let the background cover 100% of camera view size.
I hope it is clear what I am saying, if not let me know.
I'm trying to get an image to be a background on my camera. It's one picture, it doesn't need to be repeated. It would be nice to have it stretch out when the resolution of the screen changes. I've found older tutorials that show how todo it in an older version of unity, like this one: Link
However it seems that functionality is no longer in the newest version of Unity. Does anyone have any idea how to put a single picture as background?
thanks in advance.
Add a Canvas (UI --> Canvas) to your scene and set it's render mode to "Screen Space - Camera".
Set the Canvas' Render Camera to your scenes main camera (i.e. the camera you render your 3D scene with... or the only camera in the scene ;) )
make sure the Plane Distance of the Canvas is set to the far plane of your camera. So if your far clipping plane is set to 1000 set the Plane Distance to 1000 as well (or 999, if images in the canvas happen to be clipped away by the camera). If your Plane Distance is lower than the far clipping plane of your camera, objects behind the Plane Distance will be occluded by Images on the canvas.
Add an Image (UI --> Image) to the Canvas and set its anchor presets to strech on both axes.
Set the Left, Top, Right and Bottom Parameters of the Image's Rect Transform to 0. Now the image should be full screen and adjust to any change in the aspect ratio.
That should do the trick :)
I have a Unity 2D project with a fixed screen size of 800x450 pixels.
I have imported a background image that is also 800x450 pixels.
When placed on the stage, the image only takes up half of the screen.
The scale of the image is set to 1,1. The Z position is 0.
Why is the image displayed too small? How can I display the image at the correct resolution?
Does this mean that I have to design all my game assets at 2x the required size? Or that I somehow have to set the scale for all imported assets at 2? What is the recommended workflow?
EDIT
I have added a screenshot of the camera settings:
I would trying making your camera orthographic, and set the size of the camera (not the transform) to be half the height that you would like it to be (225)
Also if you are looking for pixel perfect game. here is a pretty good article from Unity about how to make that work and it explains some of the camera aspect ratios and scaling
http://blogs.unity3d.com/2015/06/19/pixel-perfect-2d/