本地脚本 - LocalScript
官方定义
LocalScript
是用于在连接到 迷你世界 Studio
服务器的客户端上运行 Lua
代码的 Lua
源容器。它们用于访问仅限客户端的对象,如玩家的 Camera
。对于通过 LocalScript
运行的代码,Players
服务的 LocalPlayer
属性将返回客户端正在运行脚本的玩家。
仅当 Lua
代码是以下某个对象的子类时,LocalScript
才会运行该代码:
- Player 的 ,如 的子项
- Player 的 模型
- Player 的 ,联机情况下只有
LocalPlayer
对应的Actor
对象的LocalScript
才会运行,非LocalPlayer
的Actor
即使有LocalScript
也不会执行 - Player 的
- Player 的
- 服务
自己的理解
当你想对本地(即客户端)对象操作时,通常都会用到 LocalScript
.
常用的情况:
1. 改变摄像机的相关属性
2. 获取本地玩家对象: LocalPlayer
3. 获取用户输入
4. 改变 Gui
通常,在
LocalScript
里做出的修改,比如修改某个物体的颜色大小等,只会在该客户端有效,其它玩家看到的该物体还是之前的样子。但是对玩家人物的修改(比如修改玩家的移动速度,弹跳力等)如果想要同步到服务器,则应该放到服务器脚本中,这样所有人都可以看到修改后的效果。
代码示例
1、打印当前照相机的位置
print(game:GetService("WorkSpace").CurrentCamera.Position)
2、改变当前玩家的移动速度
local player = game:GetService("Players").LocalPlayer
local character = player.Character
character.Movespeed = 30
3、获取用户输入,用户按下J键,打印Hello
local contextActionService = game:GetService("ContextActionService")
function PrintHello()
print("Hello")
end
contextActionService:BindAction("printHello", PrintHello, false, Enum.KeyCode.J