- Home /
Can't set GUI.matrix...
Hi, Im trying to make my GUI resolution independent for certain low screen resolution.
Here is my code:
public void GUIMatrix() { Fraction res = new Fraction((long)Screen.width, (long)Screen.height);
float width_ratio;
float height_ratio;
Fraction.ReduceFraction(ref res);
if (Screen.width < 1300 && Screen.height < 1000)
{
if ((res.Numerator / res.Denominator) < 1.55) // Not widescreen
{
width_ratio = 1024f;
height_ratio = 768f;
}
else // Widescreen
{
width_ratio = 1280f;
height_ratio = 800f;
}
}
else
{
width_ratio = (float) Screen.width;
height_ratio =(float) Screen.height;
}
GUI.matrix = Matrix4x4.TRS(Vector3.zero, Quaternion.identity, new Vector3((1.0f * Screen.width)/width_ratio, (1.0f * Screen.height)/height_ratio, 1f));
}
The function is called OnGUI the first time, but when I press play in the editor I receive the following error:
NullReferenceException: Object reference not set to an instance of an object UnityEngine.GUI.set_matrix (Matrix4x4 value) (at E:/BuildAgent/work/68355d6e5d19d587/Runtime/Export/Generated/GUI.cs:64)
I really don't know what produces the issue... Anyone can help??
Thanks.
Answer by user-710 (google) · Oct 20, 2010 at 12:23 PM
Solved!!
I was calling the function OnGUI() and Update(), and it can obly be called OnGUI().
Your answer
Follow this Question
Related Questions
GUI Matrix problem 1 Answer
GUI.Matrix Problems 0 Answers
How to Calculate BindPoses From My data? 2 Answers