PlayInteractive
游玩交互
 用于游玩时对场景物体进行点击拖拽等交互行为的控制枚举列表
PlayInteractive.HIT_TYPE
- 描述: 碰撞物体类型
| 成员名称 | 成员说明 | 
|---|---|
| Element | 元件 | 
| Creature | 生物 | 
| Character | 角色 | 
| TriggerBox | 触发盒 | 
PlayInteractive.DIR_TYPE
- 描述: 平面方向类型
| 成员名称 | 成员说明 | 
|---|---|
| XY | 沿XY平面方向 | 
| XZ | 沿XZ平面方向 | 
| YZ | 沿YZ平面方向 | 
函数列表
SetEnableMotionState
- 
描述: 设置玩家是否启用陀螺仪。 
- 
范围: 客户端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| IsEnable | boolean | 是否启用陀螺仪 | 
PlayInteractive:SetEnableMotionState(true)GetIsMotionStateEnable
- 
描述: 获取玩家是否启用陀螺仪。 
- 
范围: 客户端 
返回字段:
| 返回字段 | 字段类型 | 说明 | 
|---|---|---|
| isEnable | boolean | 是否启用陀螺仪 | 
local isEnable = PlayInteractive:GetIsMotionStateEnable()GetTile
- 
描述: 返回陀螺仪倾斜度。 
- 
范围: 客户端 
返回字段:
| 返回字段 | 字段类型 | 说明 | 
|---|---|---|
| tile | Engine.Vector | 陀螺仪倾斜度 | 
local tile = PlayInteractive:GetTile()GetRotationRate
- 
描述: 返回陀螺仪角速度。 
- 
范围: 客户端 
返回字段:
| 返回字段 | 字段类型 | 说明 | 
|---|---|---|
| rotationRate | Engine.Vector | 陀螺仪角速度 | 
local rotationRate = PlayInteractive:GetRotationRate()GetGravity
- 
描述: 返回陀螺仪重力。 
- 
范围: 客户端 
返回字段:
| 返回字段 | 字段类型 | 说明 | 
|---|---|---|
| gravity | Engine.Vector | 陀螺仪重力 | 
local rotationRate = PlayInteractive:GetGravity()GetAcceleration
- 
描述: 返回陀螺仪加速度。 
- 
范围: 客户端 
返回字段:
| 返回字段 | 字段类型 | 说明 | 
|---|---|---|
| acceleration | Engine.Vector | 陀螺仪加速度 | 
local acceleration = PlayInteractive:GetAcceleration()SetCreatureClick
- 
描述: 设置生物是否可以被点击 
- 
范围: 服务端、客户端 
- 
警告: 游戏开始时会初始化地图数据,请在 Events.ON_BEGIN_PLAY 事件至少一帧之后设置,避免数据被重置 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| CreatureId | number | 生物元件ID | 
| ClickAble | boolean | 是否可以被点击 | 
PlayInteractive:SetCreatureClick(343, true)SetCreatureDrag
- 
描述: 设置生物是否可以被拖动 
- 
范围: 服务端、客户端 
- 
警告: 游戏开始时会初始化地图数据,请在 Events.ON_BEGIN_PLAY 事件至少一帧之后设置,避免数据被重置 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| CreatureId | number | 生物元件ID | 
| DraggAble | boolean | 是否可以被拖动 | 
PlayInteractive:SetCreatureDrag(343, true)SetCreatureDragDirectionType
- 
描述: 设置拖拽平面,拖拽时沿着此平面运动 
- 
范围: 服务端、客户端 
- 
警告: 游戏开始时会初始化地图数据,请在 Events.ON_BEGIN_PLAY 事件至少一帧之后设置,避免数据被重置 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| CreatureId | number | 生物元件ID | 
| DirectionType | PlayInteractive.DIR_TYPE | 指定平面方向 | 
PlayInteractive:SetCreatureDragDirectionType(343, PlayInteractive.XY)SetCreatureOwner
- 
描述: 设置生物所属玩家 
- 
范围: 服务端、客户端 
- 
警告: 游戏开始时会初始化地图数据,请在 Events.ON_BEGIN_PLAY 事件至少一帧之后设置,避免数据被重置 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| CreatureId | number | 生物元件ID | 
| PlayerIds | number[] | 玩家ID数组 | 
local playerIds = Character:GetAllPlayerIds()PlayInteractive:SetCreatureOwner(343, playerIds)SetElementClick
- 
描述: 设置元件是否可以被点击 
- 
范围: 服务端、客户端 
- 
警告: 游戏开始时会初始化地图数据,请在 Events.ON_BEGIN_PLAY 事件至少一帧之后设置,避免数据被重置 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| ElementId | number | 元件ID | 
| ClickAble | boolean | 是否可以被点击 | 
PlayInteractive:SetElementClick(347, true)SetElementDrag
- 
描述: 设置元件是否可以被拖动 
- 
范围: 服务端、客户端 
- 
警告: 游戏开始时会初始化地图数据,请在 Events.ON_BEGIN_PLAY 事件至少一帧之后设置,避免数据被重置 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| ElementId | number | 元件ID | 
| DraggAble | boolean | 是否可以被拖动 | 
PlayInteractive:SetElementDrag(347, true)SetElementDragDirectionType
- 
描述: 设置拖拽平面,拖拽时沿着此平面运动 
- 
范围: 服务端、客户端 
- 
警告: 游戏开始时会初始化地图数据,请在 Events.ON_BEGIN_PLAY 事件至少一帧之后设置,避免数据被重置 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| ElementId | number | 元件ID | 
| DirectionType | PlayInteractive.DIR_TYPE | 指定平面方向 | 
PlayInteractive:SetElementDragDirectionType(347, PlayInteractive.DIR_TYPE.XY)SetElementOwner
- 
描述: 设置元件所属玩家 
- 
范围: 服务端、客户端 
- 
警告: 游戏开始时会初始化地图数据,请在 Events.ON_BEGIN_PLAY 事件至少一帧之后设置,避免数据被重置 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| ElementId | number | 元件ID | 
| PlayerIds | number[] | 玩家ID数组 | 
local playerIds = Character:GetAllPlayerIds()PlayInteractive:SetElementOwner(347, playerIds)GetHitResultWithRaycast
- 
描述: 获取射线碰撞检测的首个物体(角色、生物、元件、触发盒) 
- 
范围: 服务端、客户端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| HitType | PlayInteractive.HIT_TYPE | 碰撞检测物体类型 | 
| StartWorldPos | Engine.Vector | 起始坐标 | 
| EndWorldPos | Engine.Vector | 终止坐标 | 
| EnableDebugLine | boolean | 是否绘制Debug射线(仅试玩),默认为false | 
| DebugLineDuration | number | Debug射线的持续时间,单位秒,默认为1 | 
返回字段:
| 返回字段 | 字段类型 | 说明 | 
|---|---|---|
| id | number | 碰撞到的物体ID,没有碰撞到时返回nil | 
| hitInfo | {hitPos:Engine.Vecto,hitNormal:Engine.Vector} | 碰撞信息,{hitPos-射线碰撞到的位置坐标点, hitNormal-射线碰撞到的表面法线方向} | 
local startPos = Engine.Vector(500, -100, 150)local endPos = Engine.Vector(500, -500, 150)local id, hitInfo = PlayInteractive:GetHitResultWithRaycast(PlayInteractive.HIT_TYPE.Element, startPos, endPos, false, 0)GetHitResultsWithRaycast
- 
描述: 获取射线碰撞检测的物体id数组(角色、生物、元件、触发盒) 
- 
范围: 服务端、客户端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| HitType | PlayInteractive.HIT_TYPE | 碰撞检测物体类型 | 
| StartWorldPos | Engine.Vector | 起始坐标 | 
| EndWorldPos | Engine.Vector | 终止坐标 | 
| EnableDebugLine | boolean | 是否绘制Debug射线(仅试玩),默认为false | 
| DebugLineDuration | number | Debug射线的持续时间,单位秒,默认为1 | 
返回字段:
| 返回字段 | 字段类型 | 说明 | 
|---|---|---|
| ids | number[] | 碰撞到的物体ID数组 | 
local startPos = Engine.Vector(500, -100, 150)local endPos = Engine.Vector(500, -500, 150)local ids = PlayInteractive:GetHitResultsWithRaycast(PlayInteractive.HIT_TYPE.Element, startPos, endPos, false, 0)GetHitResultWithCapsule
- 
描述: 获取一个竖立摆放的胶囊体在两点之间移动进行扫掠过程中碰撞检测的首个物体(角色、生物、元件、触发盒) 
- 
范围: 服务端、客户端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| HitType | PlayInteractive.HIT_TYPE | 碰撞检测物体类型 | 
| StartWorldPos | Engine.Vector | 胶囊体进行扫掠检测碰撞时的起始坐标 | 
| EndWorldPos | Engine.Vector | 胶囊体进行扫掠检测碰撞时的终止坐标 | 
| CapsuleRadius | number | 胶囊体的半径,胶囊体两端半球的半径大小 | 
| CapsuleHalfHeight | number | 胶囊体的半高,胶囊体中心点到两端的距离大小,当半高<=半径时,表现为一个半径为CapsuleRadius球体扫掠 | 
| EnableDebugLine | boolean | 是否绘制胶囊体扫射轨迹Debug线(仅试玩),默认为false | 
| DebugLineDuration | number | Debug线的持续时间,单位秒,默认为1 | 
返回字段:
| 返回字段 | 字段类型 | 说明 | 
|---|---|---|
| id | number | 碰撞到的物体ID,没有碰撞到时返回nil | 
local startPos = Engine.Vector(500, -100, 150)local endPos = Engine.Vector(500, -500, 150)local radius, height = 30, 30local id = PlayInteractive:GetHitResultWithCapsule(PlayInteractive.HIT_TYPE.Element, startPos, endPos, radius, height, false, 0)GetHitResultsWithCapsule
- 
描述: 获取一个竖立摆放的胶囊体在两点之间移动进行扫掠过程中碰撞检测的物体id数组(角色、生物、元件、触发盒) 
- 
范围: 服务端、客户端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| HitType | PlayInteractive.HIT_TYPE | 碰撞检测物体类型 | 
| StartWorldPos | Engine.Vector | 胶囊体进行扫掠检测碰撞时的起始坐标 | 
| EndWorldPos | Engine.Vector | 胶囊体进行扫掠检测碰撞时的终止坐标 | 
| CapsuleRadius | number | 胶囊体的半径,胶囊体两端半球的半径大小 | 
| CapsuleHalfHeight | number | 胶囊体的半高,胶囊体中心点到两端的距离大小,当半高<=半径时,表现为一个半径为CapsuleRadius球体扫掠 | 
| EnableDebugLine | boolean | 是否绘制胶囊体扫射轨迹Debug线(仅试玩),默认为false | 
| DebugLineDuration | number | Debug线的持续时间,单位秒,默认为1 | 
返回字段:
| 返回字段 | 字段类型 | 说明 | 
|---|---|---|
| ids | number[] | 碰撞到的物体ID数组 | 
local startPos = Engine.Vector(500, -100, 150)local endPos = Engine.Vector(500, -500, 150)local ids = PlayInteractive:GetHitResultsWithCapsule(startPos, endPos, false, 0)CheckCharacterHit
- 
描述: 两个角色之间做射线检测 
- 
范围: 服务端、客户端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| PlayerId1 | number | 玩家1 uid | 
| PlayerId2 | number | 玩家2 uid | 
| EnableDebugLine | boolean | 是否绘制Debug射线,仅试玩生效 | 
| DebugLineDuration | number | Debug射线的持续时间,单位:s | 
返回字段:
| 返回字段 | 字段类型 | 说明 | 
|---|---|---|
| bHit | boolean | 是否有遇到障碍物 | 
local bHit = PlayInteractive:CheckCharacterHit(playerId1, playerId2, true, 10)