功能效果展示
思路分析
想要实现在物体的表面任意位置生成物块的功能,我们可以通过鼠标点击获取3D位置,在点击的坐标创建出一个零件,就可以实现这样的效果。
功能搭建
一、底板搭建过程
1.在 Workspace 内创建一个零件,将其锚定,修改零件的属性作为生成物体的底板。零件的属性如下图所示:
二、核心功能搭建过程
在StarterPlayerScripts下创建一个 客户端脚本 。如下图所示:
编写 客户端脚本 如下:
local player = game.Players.LocalPlayer --获取玩家
local Mouse = player:GetMouse() --通过玩家获取鼠标对象
Mouse.Button1Down:Connect(function() --创建零件
local Part = Instance.new(“Part”)
Part.Parent = game.Workspace
Part.CFrame = Mouse.Hit
end)
补充说明
1.什么是Workspace?
Workspace中的对象是会被可视化显示到3D场景中的,并且只有在Workspace中的对象才会发生物理交互。
2.什么是客户端脚本?
只会在客户端执行的脚本,执行的逻辑和表现也只会在本地客户端展现;可在以下几个文件目录下自动执行,客户端脚本在“Workspace”下不会自动执行,需要放在以下对象里面:
- Workspace中的角色模型。StarterPlayer中的StarterCharacterScripts,在运行后会自动移动到角色模型下。
- StarterPlayer中的StarterPlayerScripts。在运行后会自动移动到玩家下
- StarterGui
- StarterPack
好了,接下来我们开始游戏,我们鼠标点击的位置就会生成一个零件啦。如果有什么问题或者有更好的实现方式,大家可以在下方积极交流讨论,我们也会参与进来和大家一起分享经验,期望能和大家共同进步~~