节点简介原创
节点
节点
节点是构成沙盒世界的基本单位。世界中的玩家、生物、镜头、音效、脚本、服务等都是节点。
在沙盒世界中的每个元素(玩家、生物、方块、道具,以及每个玩家显示的界面、界面上的元件、玩家的镜头)都是节点。每个节点代表一个元素,例如一个玩家节点代表一个玩家,一个模型节点代表一个模型等。节点分很多种类型(无论抽象还是形象的类型),例如玩家和模型就是两种不同的类型,这两种类型分别代表不同在沙盒世界里的元素。
获取节点
获取节点可以在节点列表窗口中找到已经存在的节点,也可以在脚本中获取节点。
节点在脚本中则化为对象(Lua语言中的表)。我们可以直接使用game(GameNode
类)、script(Script
类)全局变量来获取节点,也可以通过索引来获取子节点,还可以通过节点名称来获取节点。
--使用GameNode:getService()获取节点
local world = game:getService("WorkSpace")
--使用索引直接获取节点
local world = game.WorkSpace
--使用Parent获取父节点
local world = script.Parent
--使用Children获取子节点
local actor = script.Children[1]
--使用SandboxNode:FindFirstChild()获取节点
local actor = script:FindFirstChild("Actor")
创建节点
节点列表中有一些默认存在的节点,我们既可以从这些默认节点中创建节点,也可以在脚本中使用SandboxNode.new(classType, ?parent)
创建节点。
若要创建节点,可以点击WorkSpace
后的加号后选择其中一种节点类型:
也可以在WorkSpace
中使用SandboxNode.New(classType, ?parent)
新建一个Script
节点:
--新建一个Node类型的节点,设置WorlkSpace为它的父节点
SandboxNode.New("SandboxNode",game.Workspace)
注意:用脚本创建的节点只能在MiniStudio中点击“调试运行”后才可以创建,创建后可以在节点列表中找到创建的节点。
若要创建其它节点,请参阅类索引。
删除节点
若要删除节点,可以在节点列表中右键点击需要删除的节点,然后选择“删除”;也可以使用脚本删除:
--删除node节点
node:destory()
属性
预设属性
每个节点都有与节点功能相关的预设属性。
若要获取、查看属性,可以在属性列表中查看,也可以使用脚本获取:
--获取node节点的Name属性
print(node.Name)
若要更改属性,可以在属性列表中更改,也可以使用脚本更改:
--设置node节点的名称为MyName
node.Name = "MyName"
若要更改其它属性,请参阅类索引。
自定义属性
若要添加自定义属性,需在属性面板中点击Custom Property添加属性。
若要更改属性,可以在属性面板中直接更改,也可以使用脚本中的SandboxNode
:
SetAttribute(attr, value)
更改:
--更改node节点的ExtraTag1属性为true
node:SetAttribute("ExtraTag1", true)
一些类型的节点
WorkSpace
所有沙盒世界中的场景都在WorkSpace
节点下,不在此节点下的场景均不会在世界中出现。
若要在世界中创建对象,可以在节点列表中添加节点,也可以在脚本中添加:
--新建一个Actor节点,设置WorlkSpace为它的父节点
local actor = SandboxNode.New("Actor",game.Workspace)
--设置此节点在节点列表中显示的名称
actor.Name = "MyActor"
--设置此生物的位置
actor.Position = Vector3.New(11654,460,-11510)
--设置此生物的模型ID
actor.ModelId = "sandboxSysId://entity/100011/body.omod"
Player
玩家节点,其中Backpack
表示当前玩家的背包,StarterPlayerScripts
表示玩家本地脚本,PlayerGui
表示玩家当前显示的界面。
StarterPack
起始背包,运行后会自动复制到玩家的Backpack
节点下。
StartPlayer
玩家初始设置,运行后会复制到玩家节点下。
StartPlayer->StarterPlayerScripts
玩家本地脚本,运行后会自动复制到玩家的StarterPlayerScripts节点下。
StartGui
起始界面,运行后会自动复制到玩家的PlayerGui节点下。