零件

  • 类型:Part

简介

零件是一个物理对象,当零件在工作区中时,零件可以移动、变化外形体积、并与其他零件交互。零件是构建世界的基础元件,几乎所有物体都是用零件构建的,可以改变零件大小制作大底板,也可以零件合并、切割创建异形块,也可以使用零件制作角色工具

  • 如何创建零件
    可以使用编辑器上方工具栏中“零件”菜单选择一个形状创建零件,或者在管理器中在对象后面点击加号按钮打开对象插入菜单选择零件进行创建,也可以使用函数RWObject:New(ClassName)创建。

  • 如何创建不同外观零件
    重启世界提供了方块、球、胶囊、圆柱、角楔体、楔体、四棱锥、圆锥体、圆环多种形状的基础零件,在创建零件时可在菜单中选择或在零件属性“改变形状”修改;为零件增加特殊模型对象可以使零件形状显示出基础形状之外的玩家上传的模型形状;改变零件材质颜色可以改变零件外观,也可以为零件增加贴图对象,贴上自定义的图片。

  • 如何编辑零件
    使用工具栏移动、缩放、旋转可改变零件的坐标位置、大小、角度,也可以直接通过属性修改。

  • 如何合并、切割零件
    多个零件可以通过实体建模操作合成新的各种形状的零件,可以把2个零件合并起来,也可以通过反向操作把与反向零件重合的部分删除掉。

  • 使零件参与物理交互
    可以为零件增加保持速度使零件运动或增加约束关节约束零件的运动。

  • 用零件制作传送带
    为零件设置方向速度角速度,然后把零件锚定。在此零件上的角色或其他零件就会获得此零件对象方向的速度或角速度作用。

  • 特殊形状的零件尺寸说明
    当零件形状被设为球、胶囊、圆柱和圆环时,编辑器会对零件的尺寸进行限制,以确保零件显示正确的形状。
    1.零件形状为球时:零件尺寸的三轴数值相等
    2.零件形状为胶囊时:零件尺寸的x轴与z轴相等,y轴为x轴的两倍
    3.零件形状为圆环时:零件尺寸的x轴与z轴相等,y轴为x轴的1/6
    4.零件形状为圆柱时:零件尺寸的x轴与z轴相等
    若通过编辑对尺寸的某一轴进行修改,则会以最后修改的数值作为基准,若直接对尺寸的三维向量参数进行修改,则会以z轴的修改数值作为基准
    若通过脚本对尺寸进行赋值,则会以三轴数值中最小的值作为基准。例如,将一个球型的零件尺寸设置为(1,2,3),则该零件的实际尺寸为(1,1,1)

相关链接

  • 教学视频

属性

继承自BasePart

    UseType     改变形状   Enum.MeshTypes   
    改变形状

继承自ScenePrimitive

    Color     颜色   Vector3    (#颜色)
    点击可打开详细的颜色调节面板

    Material     材质   Enum.MaterialType   (@材质)
    零件的材质,不同的材质具有不同的物理属性

    Tiling     平铺率   Vector2   
    材质贴图在零件表面的平铺次数,数值越大贴图越密。

    Offset     材质偏移   Vector2   
    材质贴图相对于默认位置的偏移量

    Transparency     透明度   float   
    零件的透明度

    AlphaCutoff     透明镂空   float   
    自定义零件没有贴图的部分会显示基本材质贴图,透明镂空指基本材质贴图的透明度

    Position     坐标   Vector3   
    显示对象的坐标,分为世界坐标和相对坐标

    Rotation     朝向   Vector3   
    显示对象的世界朝向

    Size     尺寸   Vector3   
    对象的具体尺寸大小

    WorldPosition     世界坐标   Vector3   
    世界坐标

    WorldRotation     世界方向   Vector3   
    世界方向

    LocalPosition     相对坐标   Vector3   
    相对坐标

    LocalRotation     相对方向   Vector3   
    相对方向

    IsLock     锁定   bool   
    锁定可使对象在编辑器窗口中不可被选中,但是在管理器中依然可以选中

    Anchored     锚定   bool   
    锚定可使对象不受物理规则影响

    CanCollide     是否碰撞   bool   
    对象是否可以与其他带有物理规则的对象产生碰撞

    RotVelocity     角速度   Vector3   
    当前角速度,单位弧度/秒;锚定之后会把自身角速度传递给在物体表面上的其他零件和角色

    Velocity     速度   Vector3   
    当前速度,单位米/秒,锚定之后会把自身速度传递给在物体表面上的其他零件和角色

    IsCustomPhysics     自定义物理属性   bool   
    自己定义零件的各种物理属性

    Density     密度   float   
    密度

    Friction     摩擦系数   float   
    两表面之间的摩擦力和作用在其一表面上的垂直力之比值,两物体接触时采用摩擦系数较小的一方

    Bounciness     弹性系数   float   
    弹性系数

    FrictionWeight     摩擦权重   float   
    摩擦权重,仅在人与其他物体接触时起效;权重越大自身的摩擦系数对最终摩擦系数影响越大

    UseGravity     是否开启重力   bool   
    是否开启重力

    IsCollisionCallBack     碰撞是否回调   bool    [只读]
   

    Mass     质量   float    [只读]
    质量

继承自RWObject

    Name     名称   string   
    该对象的自定义名称

    ClassName     类型   string   
    该对象对应的对象类型名称

    Parent     父级   RWObject   
    该对象的父级对象

函数

    UnionModle(partlist)
    对多个零件进行合并操作,参与合并的零件保持不变,生成新的合并对象。

    ReverseModle(partlist)
    对参数列表中的对象进行反向零件操作,并与原对象进行合并操作。参与合并的零件保持不变,生成新的合并对象。

继承自ScenePrimitive

    CreateJoint(target,jointType)
    在自身与目标对象之间创建指定类型的约束

    GetJointList()
    获取自身的所有约束,返回一个列表

    DelAllJoint()
    删除自身的所有约束

    GetJointPartList(recursive)
    获取与自身通过约束相连的所有零件类对象,返回一个列表

    GetMass()
    获取自身的质量

    GetTriggeringPart()
    暂不可用

    GetMaterial()
    获取自身材质的枚举类型

    GetNetworkOwner()
    返回现在拥有这个零件主权的玩家

    GetNetworkOwnershipAuto()
    返回这个零件的主权是否处于自动分配模式

    SetNetworkOwner(player)
    设置这个以及所有相连接的零件的主权

    SetNetworkOwnershipAuto()
    使游戏引擎能够自动处理零件。

继承自RWObject

    DelAllChild()
    删除所有子对象

    Available()
    检查对象是否可用

    Clone(parent)
    复制自身,若有参数则以参数为父级

    Destroy()
    删除自身

    GetAncestorByName(Name)
    通过对象名字寻找父级对象

    GetAncestorByClassName(className)
    通过对象类型寻找父级对象

    GetChildByName(Name,recursive)
    通过对象名字寻找子级对象

    GetChildByClassName(className,recursive)
    通过对象类型寻找子级对象

    GetAllChild()
    寻找自身所有子级对象,并作为一个列表返回

    GetAllDescendant()
    递归寻找自身所有后代,并作为一个列表返回

    IsAncestor(TarObj)
    判断自身是否为目标对象的祖先

    IsDescendant(TarObj)
    判断自身是否为目标对象的后代

    WaitForChild(childName,timeout)
    寻找自身的子对象。如果没有子对象,在没有填写timeout参数时,会暂停进程直到找到子对象;如果填写了timeout参数,会根据参数时间暂停进程,超出参数时间后,进程照常进行

    Child(childName)
    根据给定的名字寻找自身的子对象

    Equals(TarObj)
    判断自身是否为目标对象,结果为真返回True,结果为假返回False;注意克隆、新建同类型、同名对象,equal结果均为假

    IsClass(className)
    判断自身是否为给定的对象类型

事件

继承自ScenePrimitive

    JointBreak()
    约束删除或受到断开力的时候触发

    TriggerEnter(res)
    自身进入触发状态时,触发该事件

    TriggerExit(res)
    自身结束触发状态时,触发该事件

继承自RWObject

    Destroyed()
    删除自身时触发

    ChildAdded(childobject)
    添加子对象时触发

    ChildRemoved(childobject)
    移除子对象时触发

    DescendantAdded(descendantobject)
    添加后代时触发

    DescendantRemoved(descendantobject)
    移除后代时触发

    AncestryChanged(AncestryChanged)
    祖先变更时触发

文档更新时间: 2020-10-23 10:36   作者:刘征