Hello!
To answer your question in brevity, yes it is possible. The Touched
event has a parameter (part
in the snippet below) that refers to the other part touching the part in question.
BasePart.Touched:Connect(function(part) print(part.Name) end)
You can read more about the Touched
event here and see a working example here.
Another way to do it is by using the FindFirstChild() method (NOT a function; functions do not run under a class or object):
part = script.Parent if part:FindFirstChild("Part") ~= nil then print("vaild Part") end
Both the Touched event and the FindFirstChild() method contribute to something touching another thing.
Other things that can be touched/clicked
ClickDetectors have the event MouseClick to detect whenever the Parent of the ClickDetector is clicked. It is used as so:
part = script.Parent part.ClickDetector.MouseClick:connect(function() print("Part has been clicked") end)
In Guis, this event has two names: MouseButton1Down and MouseButton1Click. They both do the same thing whenever a Text or ImageButton is clicked, so it doesn't matter:
gui = script.Parent --[[ 1st example, which uses MouseButton1Down This event is used to detect whenever a player left clicks on a Gui --]] gui.MouseButton1Down:connect(function() print("Valid Mouse Input: left Click") end) --[[ 2nd example, this one uses MouseButton1Click Again, they do the same thing, so don't be confused --]] gui.MouseButton1Click:connect(function() print("Gui has been clicked") end)
Now, there is something in Roblox called raycasting. Raycasting is when a ray touches a Part. I can't explain it without being complicated, so you can look for it on this site, the Wiki. or YouTube.