组合单位
类型
Model
简介
作用
组合单位是用于保存和组织其他对象的容器,与文件夹
不同,组合单位提供了一系列用于移动和操作零件的有用功能。
组合对象可以将多个对象编辑为一个组,组内对象的属性相对独立,但是可以作为一个整体进行移动、旋转、缩放等基础操作。
创建和使用
玩家可以在工作区创建组各单位对象。
玩家可以在组合单位下自由添加零件类对象,并可以对每个零件进行移动、旋转、缩放等基础操作。
玩家可以对组合单位整体进行移动、旋转、缩放等基础操作,对组合单位的操作会影响组合单位的所有子对象。
玩家可以通过MoveOffset(delta)
、RotationTo(rotation)
、ScaleTo(scale)
和MoveTo(position)
等方法对组合单位进行移动、旋转、缩放等操作。
组合单位中的对象可以自由与其它对象建立约束,组中单个对象上的约束不会影响组合单位整体。
特点和注意事项
由于组合单位下的对象相对独立,可能会频繁的修改位置,所以组合单位本身是没有坐标、旋转和缩放这些位置属性的,为了方便操作,组合单位的位置以核心零件的位置为准,脚本中的所有位移、旋转和缩放等操作都会根据核心零件的坐标信息对整个组合单位进行操作。
需要注意的是在编辑器中通过可视化操作组合单位移动、旋转和缩放时,不是根据核心零件的位置信息进行操作的,但是会修改核心零件的位置信息。
属性
Subject 核心零件 RWObject
用于复合对象(工具、配饰、组合单位)在脚本中进行MoveTo,RotationTo,ScaleTo方法时基准坐标的确定。
继承自RWObject:
Name 名称 string
该对象的自定义名称
ClassName 类型 string
该对象对应的对象类型名称
Parent 父级 RWObject
该对象的父级对象
函数
MoveOffset(delta)
根据给定的增量移动Model下的所有可移动对象。
RotationTo(rotation)
根据给定的角度旋转Model下的所有可旋转对象。
ScaleTo(scale)
根据给定的系数缩放Model下的所有可缩放对象。
MoveTo(position)
使Model对象移动到该点,所有可移动对象保持相对位置不变。
GetBoundingSize()
获取Model下所有零件类对象构成碰撞体的最小尺寸。
MakeSplitJoint()
对Model下所有零件类对象进行拼接操作。
继承自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)
判断自身是否为给定的对象类型
事件
继承自RWObject:
Destroyed()
删除自身时触发
ChildAdded(childobject)
添加子对象时触发
ChildRemoved(childobject)
移除子对象时触发
DescendantAdded(descendantobject)
添加后代时触发
DescendantRemoved(descendantobject)
移除后代时触发
AncestryChanged(AncestryChanged)
祖先变更时触发