How To Make A Dynamic 3D Menu GUI | Roblox Studio
FULL TRANSCRIPT
[music]
Okay, so before make sure that whatever
you do in your workspace, you're facing
the back. How do you know if that's the
case? On the little dice on your screen
in the top right, it should be a
brilliant bag. Now create a part change
dimensions to the following and anchor
it. Name it cam part. This will be our
object to our camera that will focus on.
Then duplicate the part and name it
intro part. This is to reference the
position of where our menu will be
[music] held. You can bring the cam part
into the replica storage. You should
also set both parts transparency to one.
Then create another part and name it
play part.
Add a surface GUI on it.
Create a text button. You can customize
it however you want. Make sure that the
surface of the GUI location is set to
the back of the part.
You can modify those parameters in the
surface GUI to make it look better.
Duplicate the play part into how many
buttons you want. Each need a different
name.
Make sure that also you have one that is
named boot
and group all of the buttons as a model.
Now I'm just looking some things to make
my gy look better.
set the root as a primary part.
I'm adding R six, but of course for you,
you will have a sneak environment.
Bring back the menu UI in replica
storage and then create a local script
in the player script.
Hey yo, it's poison.
It is poison. [music] Where I learn it
should be burned. It is poisoning us.
[music]
First, we will need our variables. We
set our player and players just in case.
the camera of our player
run service as we're going to modify the
camp parts in a loop.
Replicate storage to bring out a menu
part. The part that the camera will
follow.
We immediately clone it. Then we parent
it to workspace
and set hit its position to the intro
part position. Religion over
choices drop out of school.
We set the subject of our camera to the
campart.
and the camera type to scriptable so it
won't move when we right click.
We add the move factor variable for when
we translate the mouse position from the
screen to the position of the campart in
the 3D world. Add two previous mouse
positions to later know if there is any
change. So if the player moves his mouse
or not and a max position which will
limit on how the camp parts can go to.
We set the original position as an
origin which is the initial campart
position.
We duplicate our UI on the workspace.
No need to put it into a specific
position. it will do itself later.
Although make sure to parent it to
workspace.
By default, our mouse isn't moving.
loop using run service.
As much as I would like to explain what
each line does, this will be too much
yapping. So, I'll just explain what I'm
doing since this is more on the math
learning side than the scripting side.
So, basically what we do is we get the
screen of the player dimensions. We also
get the mouse position over that screen.
Now we subscribed both axis on the full
screen to the mouse position to know how
much pixels from the right the mouse
hasn't traveled. If let's say my mouse
was on the full left of the screen, the
x dimension left over would be the full
screen size x. We need those variables
because afterwards we differentiate the
half of the screen to the leftover. So
now we know how much our mouse has
traveled from the original screen which
is the center.
[music] We then use we then using clamp
translate the amount of pixels into
studs that the campart will need to
[music] move. Cuz if we don't do this
the camp part will literally move more
than 1k studs which is too much.
[music]
So then we essentially check if our
mouse has been moved or
If it did, we modify the position that
the camera [music] part needs to move to
using lurp effect.
If it didn't move, the target position
will remain the same and the camper will
keep moving to its goal.
We then apply to the target. We then
apply the target position to the campart
again using lurp. [music]
And now all we need to do is to do the
same for the UI because remember the
compartment holds the camera but not the
UI.
The main difference in this is that I
offset the UI [music] from the crown
part and I added an [music] angle.
[music]
We also move the primary part [music] of
the UI which is the root.
When you try it, It should work
flawlessly.
Now, some of you guys might ask on how
to make the button works as well. Well,
here's a simple script on how you can
achieve that. The rest is for you to
figure out.
down.
Down.
[music]
[music]
UNLOCK MORE
Sign up free to access premium features
INTERACTIVE VIEWER
Watch the video with synced subtitles, adjustable overlay, and full playback control.
AI SUMMARY
Get an instant AI-generated summary of the video content, key points, and takeaways.
TRANSLATE
Translate the transcript to 100+ languages with one click. Download in any format.
MIND MAP
Visualize the transcript as an interactive mind map. Understand structure at a glance.
CHAT WITH TRANSCRIPT
Ask questions about the video content. Get answers powered by AI directly from the transcript.
GET MORE FROM YOUR TRANSCRIPTS
Sign up for free and unlock interactive viewer, AI summaries, translations, mind maps, and more. No credit card required.