如何让我的 Roblox 可点击块停止移动

我创建了一个块,它有一个脚本可以使其在单击时移动

part = script.Parent

function move()
    part.Position = part.Position + Vector3.new(3,0,0)
    wait(1/30) --延迟
    if part.Position.X > 45 then -
      part.Position = part.Position - Vector3.new(5,5,5)
      wait(1/30) --
    end
end

part.ClickDetector.MouseClick:connect(move)

这个块会穿过其他物体,我只需要找到一种方法,在一定距离之后使它不可点击。

点赞
用户2858170
用户2858170

这个块无论如何都会经过其他对象,我只需要找到一种方法,在一定距离后使其不可点击。

好的,你的代码每次点击可以将块移动一定的距离。

在点击时检查块的位置。如果新位置在可点击范围之外,则断开事件监听器。

此外,请注意 connect 已被弃用。你应该使用 Connect。请阅读 Roblox 手册。

https://developer.roblox.com/en-us/articles/events#disconnecting-a-function

local points = Instance.new("NumberValue")
points.Name = "Points"
points.Value = 0

local connection

local function onPointsChanged(newPoints)
  print("Points: " .. newPoints)
  if newPoints >= 50 then
      -- 如果我们有至少50个点,则停止监听更改
      connection:Disconnect()
  end
end

connection = points.Changed:Connect(onPointsChanged)

-- 触发一些更改
points.Value = 25
points.Value = 100
points.Value = 0  -- 不会打印任何内容,因为我们调用了 Disconnect()
2021-06-18 06:55:51
用户16270541
用户16270541

这个块无论如何都会穿过其他对象

你的意思是它不会与其他对象发生碰撞吗?比如说,如果有一个墙挡住了它的路,它仍然会穿过去?如果是这样,也许你应该让它通过 tween 来停止,并在检测到碰撞时停下来。

2021-06-20 01:42:01