Video wird geladen...

Video konnte nicht geladen werden

Zur Startseite

Another game dev pop quiz! I want to move a block forward until it hits the closest surface in front of it without clipping. Blockcasting can be used. But on Roblox, the result gives you a single point of contact (yellow dot). How do you solve for the green...

12,689 Aufrufe • vor 1 Jahr •via X (Twitter)

11 Kommentare

Profilbild von Evelyn
Evelynvor 1 Jahr

I would say something like: OriginCFrame * CFrame\.new(0, 0, -(ray.Distance - plane.Size.Z)); Through a Blockcast that replicates the size of the block itself!

Profilbild von RedDeer.Games
RedDeer.Gamesvor 4 Jahren

Customise the colours yourself or simply connect the Joy-Cons ! Head to ➡️ for more details about #AAAClock ! #indiedev #indiegame #IndieGameDev #nintendo #OLED #switchOLED

Profilbild von Kohl
Kohlvor 1 Jahr

finalposition = startpos + direction * result.Distance can't test this but this would work right?

Profilbild von sleitnick
sleitnickvor 1 Jahr

The result is the yellow dot, so that would end up clipping the cube through the part ahead of it by a little bit

Profilbild von Peter McNeill
Peter McNeillvor 1 Jahr

What's the green dot? If the block was at the yellow dot would it be the center of the face of the cube? In which case it should be: origin + ray.Unit * hitResults.Distance

Profilbild von sleitnick
sleitnickvor 1 Jahr

Maybe better worded: Solve for the black plane so that it doesn't clip into the surface in front of it. The yellow dot is the result from the blockcast; green is the "solved" reprojection that the black plane is on

Profilbild von Rory “Computer wizard”
Rory “Computer wizard”vor 1 Jahr

I'm surprised that the engine returns only the point of contact from the block cast and not also the length of the vector that causes contact. You're basically asking to map the yellow point to a point on the surface of the cube. Min cos distance a grid of cube's surface points?

Profilbild von sleitnick
sleitnickvor 1 Jahr

Here's the fun part that @ColRealPro showed: The Distance property of RaycastResult will give you the proper distance to the green dot. But the Position property will give you the yellow dot. This is nice b/c you get both the contact point & the correct distance to project it.

Profilbild von Jimeyy
Jimeyyvor 1 Jahr

Make the greendot’s CFrame the lookvector of the cube * the block cast distance?

Profilbild von Simbuilder
Simbuildervor 1 Jahr

Use the surface normal for orientation, for the distance use ray casting.

Profilbild von EverDaleTop
EverDaleTopvor 1 Jahr

This is the kind of stuff i suck at, i am only good at the logic part of coding, not the math part

Ähnliche Videos