GSmGpE6CwX2y9JjB25B8
We use cookies on this site to enhance your user experience

确定对象的位置

确定对象的位置

Oct 18 2019, 2:48 PM PST 5 min

根据你的设计目标,可以采用多种方式确定 Roblox 游戏中物理对象的位置。

对象位置

对象的全局位置由其三个 **Position(位置)**属性决定:XYZ。此位置基于对象的中心。

若要在 Roblox Studio 中确定某个对象的位置,请使用 **Home(主页)**或 **Model(模型)**选项卡中的 **Move(移动)**工具。你也可以直接在“Properties(属性)”窗口设置 **Position(位置)**属性。

属性 - 部件 "Part"
数据
ClassName 部件
名称 部件
方向
0, 0, 0
父系 工作区
位置
-20, 4, 54
     X -20
     Y 4
     Z 54

对象方向

对象的方向(旋转)由其三个 **Orientation(方向)**属性确定。和位置一样,此方向也是基于对象的中心。

若要在 Studio 中更改某个对象的方向,请使用 **Home(主页)**或 **Model(模型)**选项卡中的 **Rotate(旋转)**工具。你也可以直接在“Properties(属性)”窗口中设置 **Orientation(方向)**属性(以度为单位)。

属性 - 部件 "Part"
数据
ClassName 部件
名称 部件
方向
0, 0, 0
     X 0
     Y 0
     Z 0
父系 工作区
位置
-20, 4, 54

坐标系

坐标系 (datatype/CFrame|CFrame) 是一个强大的数据类型,它包含全局 XY 以及每个轴的 Z 坐标旋转数据。此外,datatype/CFrame|CFrames 包含处理 3D 空间中对象的有用函数,例如:

  • 更改对象相对于其当前位置/方向的位置或方向。
  • 使部件的特定表面面向世界中的某个点,例如将火箭的尖端指向其目标。

有关详细信息和实际示例,请参阅 /articles/Understanding CFrame|了解 CFrames

锚固对象

默认情况下,所有物理对象都将遵守物理规则 — 它们将在模拟重力作用下坠落、滑落斜坡等。若要将对象锁定到某个位置,防止其移动(甚至在严重碰撞或其他极端力下的情况下也不移动),请在 Home(主页)/**Model(模型)**选项卡中或“Propertie(属性)”窗口中打开它的 BasePart/Anchored|Anchored 属性。

属性 - 部件 "Part"
行为
锚固
可存档
CanCollide
CollisionGroupId 0
锁定

确定模型的位置

当确定某个由很多 BasePart|BaseParts 组成的 Model 的位置时,它的边界框定义了它的中心。然而,对于像这棵松树这样的模型,一个更合理的定位点是其树干的基础。

在处理模型时,你应该为它分配一个 Model/PrimaryPart|PrimaryPart,它将用作定位的基础(可以直接在 Studio 中或通过脚本完成该操作)。模型的 Model/PrimaryPart|PrimaryPart 由上面树干上的灰色轮廓表示。

属性 - 模型 "Pine Tree"
数据
ClassName 模型
名称 松树
父系 工作区
PrimaryPart TrunkBase
行为

定义 Model/PrimaryPart|PrimaryPart 之后,就可以在脚本中调用模型的 Model/SetPrimaryPartCFrame|SetPrimaryPartCFrame() 方法,从而提供一个有效的 datatype/CFrame|CFrame 来确定模型的位置和方向。