How to make Canvas appear after GUI texture? Unity 4.7
Hi, I am making a FPS android sniper game.
I have some GUI elements on my screen and I have a feature for the user to zoom with the sniper rifle in game.
When pressing the zoom button, I use GUI.DrawTexture to make a 2D Texture scope on my camera screen, and when I do this all GUI Buttons and Labels are visible.
I have a canvas that contains two images, one inside another, which are used to make a movement joystick since this game is for android.
Now, the problem is that when the 2D scope texture is drawn, the joystick is not visible in the same way as the GUI elements, it is still kinda visible because the 2D scope texture is transparent, but it is very dark.
I want it to appear like the other GUI elements above the 2D scope texture. Any ideas on how to do this?
The code for drawing the 2D texture using GUI.DrawTexture:
void OnGUI()
{
if (!Active)
return;
if (NormalCamera.camera.enabled) {
if (!Zooming) {
if (CrosshairImg) {
GUI.color = new Color (1, 1, 1, 0.8f);
GUI.DrawTexture (new Rect ((Screen.width * 0.5f) - (CrosshairImg.width * 0.5f), (Screen.height * 0.5f) - (CrosshairImg.height * 0.5f), CrosshairImg.width, CrosshairImg.height), CrosshairImg);
GUI.color = Color.white;
}
} else {
scale.x = Screen.width/originalWidth; // calculate hor scale
scale.y = Screen.height/originalHeight; // calculate vert scale
scale.z = 1.0f;
var svMat= GUI.matrix;
GUI.matrix = Matrix4x4.TRS (Vector3.zero, Quaternion.identity,scale);
if (CrosshairZoom) {
float scopeSize = (Screen.height * 1.1f);
GUI.DrawTexture (new Rect(0,0, originalWidth, originalHeight) , CrosshairZoom);
}
GUI.matrix = svMat;
}
}
}
Here is how the game looks like without zooming, the orange joystick is in the down-left corner.
And here is how it looks like when the user zooms with the sniper rifle, the joystick is still there but barely visible.
Answer by hexagonius · Feb 23, 2017 at 06:09 PM
You shouldn't use the legacy GUI inside your game. Its also easier to just make the crosshair a UI sprite and just toggle it.
Your answer
Follow this Question
Related Questions
GUI buttons within an augmented GameObject AR Foundation 0 Answers
Unity 5.2.2 - Canvas Button, Image, Text - Crashes on Android Immediately 1 Answer
AssetBundle Textures not loading 0 Answers
Black sprites on Android device 1 Answer
After compiling and installing apk game becomes transparent and you can see the mobile home screen 1 Answer