1
\$\begingroup\$

I'm using OnGUI to draw a rect when I "box select" or "drag select". The texture that gets drawn is a PNG file made in Paint.Net with the opacity - alpha channel set quite low. In Unity however, when I go to box select, the texture is completely opaque. How do I get Unity to honor the alpha set in Paint.Net? I also wouldn't mind using Unity itself to adjust the opacity, but I haven't found such an option in the import texture part of the inspector.

\$\endgroup\$
1
  • \$\begingroup\$ By the way: OnGUI is deprecated. You should use the new UI system instead. \$\endgroup\$
    – Philipp
    Commented Jul 18, 2017 at 9:30

1 Answer 1

2
\$\begingroup\$

First of all, avoid at all costs OnGUI except for debug purpose. Use the Unity GUI system.

In your favorite image software (Paint.Net), set the opacity of your image to 1 and import your image into Unity. Now, take a closer look to the following screenshot representing the Import Settings of an image and do the same to your own image :

Import Settings

The main things to notice are :

  • Texture type : Sprite (2D and UI)
  • Alpha source : Input Texture Alpha
  • Alpha is Transparency : checked

Then, in your scene, add a new Canvas and add an Image as a child. Select the Image gameobject and set your image as a sprite of your image. Finally, you will be able to manage the opacity using the Alpha channel of the sprite color.

Image

Note : To create a canvas and the child image :

  1. GameObject menu > UI > Canvas
  2. Select the canvas in the Hierarchy
  3. GameObject menu > UI > Image (or right click on your canvas : UI > Image)
\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .