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
GetComponent<type>()
In unity every Gameobject has some components attach
to it.Components like gameobject’s- transform, image, text, collider, rigidbody,
script.
All these are components of a gameobject.
To know the components attach to a specific gameobject
just select the gameobject and in inspector all its components can be seen.
Now how to use all this components using script.
This can be achieved in many ways but the basic is using
getcomponent<type>() function.
Getting the Whole component
Step1: Write the following code.
Step2: Save the script head to unity, create a
gameobject name finder and attach the script.
You will notice that two dialog box will appear one
with type meshrenderer and second as boxcollider.
Play the game and you will notice that dialog box will
be filled with the cube box collider and cube mesh renderer.
Now we can play with this components and their
properties.
Let’s understand what just happened.
If you pay attention to the code we have created two
public variables name as Box and mesh to store the component of our cube.
Than we have written gameobject.find with the name
specified of gameobject of whose components we need after that we uses getcomponent
function.
You can write the code like this as well and it will
perform the same way.
Getting the Whole component of Parent
We can also get the component of parent object. Do
this we first have to make a parent Gameobject and name it ParentCube and name
the previous Cube as ChildCube, So head onto unity and create a new Cube and
make it parent of ChildCube.
Do this simple drag the ChildCube into new Cube
gameobject.
Step1: Add a rigidbody component to your parent Cube. Do this select parent cube and in inspector click on add component than write
rigidbody and press enter.
Step2: Write the following code.
Step3: You will notice that a small box is appeared in
inspector of finder gameobject.
Play the game and it will be filed with the rigidbody
of your parent component.
Getting the
Whole component of Child
We can also get the component of the child object of
any gameobject by using GetcomponentInChildren<>().
Step1: Create a child of object named ChildCube and
name its child as Son.
Too create a child of any gameobject either select
that gameobject than right click and create the new gameobject or create the
new gameobject and drag it into the gameobject you want it to be child of.
Step2: Write the following code.
Step3: Save the script and scene and a dialog box in
finder gameobject will be appeaaed named Spherecoll with type sphere collider.
Play the game and script will get the component of son
gameobject.
Thank you! I have been fighting with this for a long time. No one seems to take the time to explain it. Cheers.
ReplyDeleteAlways Welcome
DeletePlease explain what to do if I need more than one Rigidbody components. Thank you!
ReplyDeleteYou can use getcomponents and store it in array or list.
DeleteCheck the blog: https://unfragilecoding.blogspot.com/2018/06/getcomponents.html?m=1