x


GUI Button Position - Can it float to the top-left?

Hello,

I'm still getting used to the Unity Scripting language. However, I'm learning pretty fast now. I started writing a script for an inventory in my game. It's working quite well. But as it is right now, the buttons for each item have their own position inside the inventory. I need to get it so the buttons position is some type of "float: left". Is this possible? I have them in a GUI Group (the inventory space) so it would work if they float to the top-left of this group.

Here's the current code for one of the item buttons:

if (logs > 0){
if (GUI.Button (Rect (75,0,75,75), logs + " Logs")) {
        var otherMakingFire : MakingFire = gameObject.GetComponent(MakingFire);
        otherMakingFire.MakeCampFire ();
    }
    }

What I need to get is changing

Rect (75,0,75,75)

to something similar to

Rect (top,left,75,75)

Thanks for any help!

(If you want to see the game so you know what I'm talking about, the newest version is always available at http://www.mythstrott.webs.com/mythstrott.html)

more ▼

asked Aug 05 '10 at 02:24 AM

MythStrott gravatar image

MythStrott
176 22 23 31

(comments are locked)
10|3000 characters needed characters left

3 answers: sort voted first

After more searching, I found this:

http://unity3d.com/support/documentation/Components/gui-Layout.html

I haven't used it yet, but it seems to be the solution. So if anybody else was having this problem, read the link :)

Thanks to the 3dDude and spree for trying.

more ▼

answered Aug 06 '10 at 05:24 AM

MythStrott gravatar image

MythStrott
176 22 23 31

(comments are locked)
10|3000 characters needed characters left

in place of a pixel position you can use something like this :

var pos : Vector2;
Rect (Screen.width/pos.x,Screen.height/pos.y,75,75);

using this method it well always stay in the top left corner.

you just have to change the x and y of the pos var and it should make the gui position change

more ▼

answered Aug 05 '10 at 02:37 AM

3dDude gravatar image

3dDude
2.6k 65 76 103

I'm not sure what I am supposed to set x and y to?

Aug 05 '10 at 03:25 AM MythStrott

If it's in a group the top left position in this group is just 0,0 afaik.

Aug 05 '10 at 09:19 AM StephanK

well if you set x and y to 2 then it will make the position always be in the center because if you divide something by 2 its half of it. so you can just try different values to get it into the top left corner

Aug 05 '10 at 01:36 PM 3dDude

Ok, well this doesn't solve my problem. Did you read my question?

What I have is multiple buttons. Each button is an item. Sometimes the an item is active, sometimes not. I have that scripting done. But my problem is that the buttons for each item have their own position inside the inventory. I need to get it so the buttons go to the top-left position without overlapping

Thanks

Aug 05 '10 at 02:37 PM MythStrott

what do you mean "overLapping"?

Aug 05 '10 at 04:29 PM 3dDude
(comments are locked)
10|3000 characters needed characters left

Read this http://docs.unity3d.com/Documentation/Components/gui-Basics.html it might be helpful for your problem, go to the The Boxes positioned by the above example section.

more ▼

answered Nov 09 '12 at 08:59 AM

Timurov gravatar image

Timurov
37 3 8 15

(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x3686
x788
x224
x182
x1

asked: Aug 05 '10 at 02:24 AM

Seen: 2937 times

Last Updated: Nov 09 '12 at 08:59 AM