Unity Editor Hello, Unity Dev’s I am back again with Part 3 of Creating custom editor window in unity. In today’s blog we will look around: “How to load Textures files from resource folder and create our buttons.” Step1. Gather some images related to the headers of our sub-toolbars or if you are good at photoshop create some, btw I have zero skills when it comes to photoshop so I am goanna gather images from internet. Once we have are images ready drag them into respected folder under root folder Resources. It will look something like this: Step2. Scripting Now we need to create a function which will be called once whenever we will switch from sub-tabs. Hmmmm, so how to do that!!! First create a function and name it as per your want’s I have named mine as: “MakeWindow” Then write down these lines: Create two variables a list: to store our loaded textures an
Ever wonder how one can click on GUI elements without
using any event script on GUI components.
On
button click, On value change are some event driven
functions of GUI components but what if I want to perform any action without
using these event driven function.
Well there are plenty of ways of doing it but the one I
am going to discuss today is GRAPHIC RAYCASTER.
Scene Setup
Step1. Create two images, add any sprite to it and
change their name to specify them later on. (For this tutorial purpose let’s
assume penguin and polar bear)
Put the images adjacent to each other.
Script
Step2. Create a script and attach it to your canvas.
Write down the following code.
Make sure to call all the libraries.
Next is our global variables
Graphical raycaster is used to call the raycaster attach
to your canvas,
Eventsystem is also used to call the event system of
canvas.
PointereventData is used to know the mouse position.
Initialize both Raycaster and eventsystem in start
method.
In update method whenever the user press the mouse
button we initialize the pointer event data and its position as mouse position.
To understand this just try to hover your mouse over images
and select eventsystem you will notice some value changing in eventsytem that;
what all we are accessing with scripting.
Click on any image and boom name of that image is
printed on console.
One other thing to notice in this is if you place your
images one above each other the Rayacaster will always point to the lower most
GUI element.
To get the name of upper GUI element you can use an
array to store all the elements the Raycaster hit and then access it from your
array.
Step1. Put all the GUI element above each other.
Step2.Add a list in your script globally.
And add the below red marked line to your script.
Step3. Compile and run and you will notice in your
script list is formed and on click it initialize the list with GUI elements the
Raycaster Hits.
I have made a
game using Grapical Raycaster, so i can say that this technique comes really
handy soon going to share the whole game tutorial with you guys.
Till than Happy
Coding
Well there you go, solving my life's problems. This turned out to be weirdly difficult to find and here you have a VERY succinct tutorial that is much faster than watching on video. And it worked brilliantly. Finally. THANK YOU!!!!!!!!
ReplyDeleteYour welcome, glad i could help.
DeleteHey is there a way to give random or specific positions to raycast at?
ReplyDeleteLike (100,100) on screen or at the center irrespective of the mouse position.
Thanks in advance.
Thak You !
ReplyDelete