I think Unity's GUI System is too awkward to handle, so I decided to develop my own GUI class.
Here is what I am doing, I am trying to use a orthographic camera to show the GUI assets, this camera's near Clip is set to 0, and far Clip is set to 50, it means that it has 50 layers, yet I met a problem that I don't know how to get the width and height of the camera.
I mean, I want to put GUI Assets like this GUI_Asset.transform.position = new Vector3(GUI_Camera.width positionX%, GUI_Camera.height positionY%, layer);
so you can see I have to get the exact width and height of the camera if I want to set GUI assets this way...
anyone can help me? thank you very much!
Answer by rutter
Mar 21, 2012 at 04:25 PM
If you're sure that a particular camera is orthographic, you can find its width and height using its `orthographicSize` and `aspect` values.
The camera's height is twice its orthographic size; you can find its width by multiplying its height by its aspect:
Camera cam = Camera.main;
float height = 2f * cam.orthographicSize;
float width = height * cam.aspect;
thx！ that works.
My goodness. Almost 5 years later and I had the same question. It still works with 5.5, however, it is advisable to use a slightly different code now:`Camera cam = FindObjectOfType();`
Answer by Saldrac
Jul 10, 2014 at 11:36 AM
That not worked for me. I've in my camera script this function, which i call every update since the player can change resolution from GUI:
//Get the camera's boxcollider
var boxCollider = GetComponent(BoxCollider2D) as BoxCollider2D;
boxCollider.size.x = camera.aspect * 2f * camera.orthographicSize;
boxCollider.size.y = 2f * camera.orthographicSize;
The math changes a bit and its for camera collision with boundaries, but i think that if you use 2D orthographic camera that will be the same.
Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.
The best place to ask and answer questions about development with Unity.
To help users navigate the site we have posted a site navigation guide.
If you are a new user to Unity Answers, check out our FAQ for more information.
Make sure to check out our Knowledge Base for commonly asked Unity questions.
If you are a moderator, see our Moderator Guidelines page.
We are making improvements to UA, see the list of changes.
Answers and Comments
7 People are following this question.
Error : Missing GUILayout.EndScrollView/EndVertical/EndHorizontal? UnityEditor.DockArea:OnGUI()
Help with GUI !!
How to have correct color on imGUI Buttons (as dynamic textures) avoiding multiply effect ?
GUI Texture as background is hiding other objects in scene