角色

类型

Avatar

简介

Avatar是一个特殊对象,它使模型具有物理走动和与各种组件交互的能力。

Avatar作为父级,使用零件作为其子级组合成人体模型。默认情况下,Avatar的人体模型通常由:头、左手、左大臂、右大腿、右小腿、左大腿、左小腿、右手、右大臂、左脚、右脚、臀部、胸等13个部位组成,部位缺失或名称不符时,皆默认为缺失,在角色加载到客户端时,缺失部位为空。

添加自定义的外观时,保证其名称符合默认部位名称即可,并可添加衣服、配件等改变外观效果。

人物模型的物理交互都通过Avatar产生。

  • 如何创建角色
    点击工作区后的”+”,在可添加的对象中选择角色,可直接创建基础角色。

  • 角色的特性

  1. 角色由骨骼和零件构成,控制器控制其状态。
  2. 角色的每个身体部位(自定义零件)都有自己独立的刚体属性(尚未实现)。
  3. 角色的身体部位通过命名规则来对应自己的骨骼,命名规则见身体部位。
  4. 角色的各项属性都可以在角色参数组件中快速定义。
  5. 角色当前生命值为0时角色死亡,死亡时有布娃娃和碎裂两种效果可供选择,角色死亡后会在出生点复活。
  6. 运行后的角色属性由玩家初始化中的平台自定义角色来控制,外观来自平台,当在平台自定义角色之前创建一个角色对象则运行时生成该角色。

属性

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

    类型     string   ClassName 【只读】
    该对象对应的对象类型名称。

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

    坐标     Vector3   Position
    显示对象的坐标,分为世界坐标和相对坐标。(坐标上下限:512 ~ -512)

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

    尺寸     Vector3   Scale
    对象的具体尺寸大小。

    最大生命     float   MaxHealth
    角色的生命值上限。

    当前生命     float   Health
    角色的当前生命值,当前生命值小于等于0时角色会死亡。

    生命显示模式     Enum.HealthDisplayMode   HealthDisplayType
    角色生命条的显示模式,有一直显示,不显示和掉血后显示3种。

    名字是否显示     bool   NameEnable
    控制角色的名字是否显示。

    移动速度     float   MoveSpeed
    角色的移动速度。

    跳跃初速度     float   JumpSpeed
    角色跳跃时向上的初速度。

    攀爬速率     float   ClimbRate
    角色攀爬速度与移动速度的比值。

    信息显示距离     float   DisplayDistance
    角色头顶信息的显示距离,包括名字和血条。

    相机拍摄点偏移     Vector3   HumanCameraOffset
    摄像机在拍摄此角色时附加的偏移量。

    跨越台阶高度     float   StepUpHigh
    角色正常移动时可跨越障碍物的高度。

    死亡表现     Enum.DeadShowMode   DeadMode
    角色死亡时的表现,有布娃娃表现和碎裂表现两种。

    重力倍数     float   GravityMultiplier
    角色会受到的重力影响的倍数。

    对应的玩家Id     string   PlayerId 【只读】
    只读,对应的玩家Id。

    无敌时间     float   ForceFiledDuration 【只读】
    只读,玩家当前剩余无敌时间。

    自动转向     bool   IsAutoRotate
    控制角色是否随着移动方向自动转向。

    座位     RWObject   SubjectSeat 【只读】
    对角色当前所在座位的引用,如果有则显示,没有则为空;包括座位和驾驶座位。

    移动方向     Vector3   MoveOrientation 【只读】
    只读,角色行走的方向。

    复活时间     float   ResurrectionTime
    复活时间。

    出生特效启用     bool   EffectSwitch
    出生特效启用。

函数

    Sit(seatObj)
    使角色进入乘坐状态,并且与指定的座位/驾驶位固定。

    Jump()
    使角色进行一次跳跃。

    AddAccessory(Accessoryobj)
    使角色佩戴指定的角色配件。

    EquipTool(toolobj)
    使角色装备指定的工具对象。

    UnEquipTool()
    卸载角色正在装备的工具。

    GetCurrentEquip()
    返回当前装备的工具对象。

    GetAccessories()
    获取角色佩戴的所有角色配件,将其角色配件对象作为列表返回。

    GetPlayingAnimation()
    获取角色正在播放的动画对象,作为列表返回。

    GetState()
    获取角色的动作状态。

    Move(dir)
    使角色向指定方向移动,可以选择是否自动转向。

    MoveTo(part,point,time)
    限制时间使角色向指定的点或者指定的零件类对象移动或者移动一段时间。

    NavigateTo(target)
    使角色沿导航网格移动。自动用MoveTo移动到导航网格点。

    StopNavigation()
    停止角色沿导航网格移动。

    TakeDamage(damageValue)
    使角色的生命值降低,根据参数决定降低的数值。

    Heal(HealValue)
    使角色的生命值增加,根据参数决定增加的数值。

    BeKilled()
    使角色进入死亡状态。

    SetAvatarStateEnabled(state, value)
    设置该动作状态是否可以进入。

    GetAvatarStateEnabled(state)
    查询该动作状态是否可以进入。

    EnterLostControl(lostMode)
    使角色进入失控状态。

    ExitLostControl()
    使角色离开失控状态。

    SpecialStateChanged(state)
    返回要监听的指定状态变化的事件。

    GetLandMaterial()
    获取角色脚下站立位置的材质名称。

    RWObject.Create(classname)
    特殊函数,创建一个指定类型的实例。

    DelAllChild()
    删除所有子对象。

    Clone(parent)
    复制一个对象的副本。

    Destroy()
    删除对象。

    Available()
    检查对象是否可用。

    GetAncestorByName(Name)
    返回对象第一个名字相同的父节点。

    GetAncestorByClassName(className)
    返回对象第一个类型相同的父节点。

    GetChildByName(Name,recursive)
    返回对象第一个名字相同的子对象,第二个参数为true则所有层级的子级都会搜索。

    GetChildByClassName(className,recursive)
    返回对象第一个类型相同的子对象,第二个参数为true则所有层级的子级都会搜索。

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

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

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

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

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

    WaitForChild(childName,timeout)
    寻找自身的子对象。

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

    Equals(TarObj)
    判断目标对象与自身是否相同。

事件

    OnAvatarEnterState(state, true)
    角色进入动作状态时,触发此事件。

    OnAvatarExitState(state, false)
    角色离开动作状态时,触发此事件。

    AvatarStateEnabledChanged(state, value)
    监听状态的禁用或启用时,触发此事件。

    onEnterSeatState()
    进入乘坐状态时触发。

    onLeaveSeatState()
    离开乘坐状态时触发。

    onEnterDriveState()
    进入驾驶状态时触发。

    onLeaveDriveState()
    离开驾驶状态时触发。

    onHealthChange(healthValue)
    角色生命值变化时,触发此事件。

    onAvatarDead()
    角色进入死亡状态时,触发此事件。

    onAvatarAnimationPlayed()
    角色动画播放时,触发此事件。

    onMoveToFinished(result)
    在MoveTo函数执行完毕后,触发此事件。

    TriggerEnter(res)
    角色进入碰撞状态时,触发此事件。

    TriggerExit(res)
    角色离开碰撞状态时,触发此事件。

    Destroyed()
    删除自身时触发。

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

    ChildRemoved(childobject)
    删除所有子对象。

    DescendantAdded(descendantobject)
    添加后代时触发。

    DescendantRemoved(descendantobject)
    移除后代时触发。

    AncestryChanged(AncestryChanged)
    祖先改变时触发。

文档更新时间: 2020-07-16 15:03   作者:admin