1.1.0 • Published 2 years ago

@cve-ts/controls v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

CVE Controls

CVE Controls 插件提供各类 Control,其中封装了最常使用的 UE 交互指令。

云渲染控制

class CveControl {
  /** 和云端交互的超时阈值,默认为 15 秒 */
  timeoutSpan: number
  /** 执行自定义指令。通常该指令和数据由虚幻引擎开发人员定义。 */
  executeCustomCommand(Command: string, Data: string | undefined, callback?: CveCallback): Promise`<ResponseData>`
  /** 执行虚幻引擎指令。该指令为虚幻引擎内置的控制台指令。 */
  executeUeCommand(command: string): Promise`<ResponseData>`
  getResponse(uid: string, callback?: CveCallback): Promise`<ResponseData>`
  getrenderer(): CvePlayer | null
  sendCommand(descriptor: UIDescriptor, callback?: CveCallback): Promise`<ResponseData>`
}

Actor 控制

class ActorControl extends CveControl {
  /** 显示指定 Tag 的 Actor */
  showByTag(tag: string, callback?: CveCallback): Promise`<CveResponse>`
  /** 隐藏指定 Tag 的 Actor */
  hideByTag(tag: string, callback?: CveCallback): Promise`<CveResponse>`
}

镜头控制

interface CameraData {
  ArmLength: number
  Duration?: number
  Location: [x: number, y: number, z: number]
  Rotation: [roll: number, pitch: number, yaw: number]
}
class CameraControl extends CveControl {
  /** 飞到指定的位置,duration:飞行时间(s) */
  flyTo(position: CameraData, duration: number, callback?: CveCallback): Promise`<CveResponse>`
  /** 获取当前位置 */
  getPosition(callback?: CveCallback): Promise`<CveResponse>`
}

测量控制

type MeasureType = 'Area' | 'Distance' | 'Height'
class MeasureControl extends CveControl {
  /** 开始测量 */
  startMeasure(type: MeasureType, callback?: CveCallback): Promise`<CveResponse>`
  /** 取消测量 */
  cancelMeasure(callback?: CveCallback): Promise`<CveResponse>`
  /** 清除测量结果*/
  clearMeasureResults(callback?: CveCallback): Promise`<CveResponse>`
}

Feature 控制

Interface

  • 用于选中/显隐控制 Point/Polygon/Polyline/Polymesh 的数据集合
interface CveSelector {
  [x: string]: unknown
  ID?: string
  Name?: string
  Tags?: SelectorTags
}
  • 用于删除 Point/Polygon/Polyline 的数据集合
interface ToBeDeleted {
  ID?: string[]
  Name?: string[]
  Tag?: string[]
}

Point 控制

Methods

方法名必要参数数据类型说明
checkExistanceSelectorCveSelector检查指定的 Point 是否已存在
createPointsPointData<PointStyle>生成 Point
deleteListToBeDeleted删除指定的 Points
hideSelectorCveSelector隐藏指定的 Point
pickSelectorCveSelector选择指定的 Point,只能选中一个
showSelectorCveSelector显示指定的 Point
unpick--取消选择的 Point

Usage

import { PointControl } from '@cve-ts/controls'

const control = new PointControl()

// PointData 参见 @cve-ts/features
const points = [...]

control.checkExistance({ ID: 'A1B2C3D4E5F6' })
control.create(points)
control.delete({ Tag: ['第一批'] })
control.hide({ ID: 'A1B2C3D4E5F6' })
control.pick({ ID: 'A1B2C3D4E5F6' })
control.show({ ID: 'A1B2C3D4E5F6' })
control.unpick()

Polygon 控制

Methods

方法名必要参数数据类型说明
checkExistanceSelectorCveSelector检查指定的 Polygon 是否已存在
createPolygonsPolygonData<PolygonStyle>生成 Polygon
deleteListToBeDeleted删除指定的 Polygons
hideSelectorCveSelector隐藏指定的 Polygon
pickSelectorCveSelector选择指定的 Polygon,只能选中一个
showSelectorCveSelector显示指定的 Polygon
unpick--取消选择的 Polygon

Usage

import { PolygonControl } from '@cve-ts/controls'

const control = new PolygonControl()

// PolygonData 参见 @cve-ts/features
const polygons = [...]

control.checkExistance({ ID: 'A1B2C3D4E5F6' })
control.create(polygons)
control.delete({ Tag: ['第一批'] })
control.hide({ ID: 'A1B2C3D4E5F6' })
control.pick({ ID: 'A1B2C3D4E5F6' })
control.show({ ID: 'A1B2C3D4E5F6' })
control.unpick()

Polyline 控制

Methods

方法名必要参数数据类型说明
checkExistanceSelectorCveSelector检查指定的 Polyline 是否已存在
createPolylinesPolylineData<PolylineStyle>生成 Polylines
deleteListToBeDeleted删除指定的 Points
hideSelectorCveSelector隐藏指定的 Polyline
hideWithAnimateAndDurationSelector, Animate, DurationCveSelector, PLAnimate, number同上,指定显示动画和动画持续时间
hideWithAnimateAndSpeedSelector, Animate, SpeedCveSelector, PLAnimate, number同上,指定隐藏动画和动画速度
pickSelectorCveSelector选择指定的 Polyline,只能选中一个
showSelectorCveSelector显示指定的 Polyline
showWithAnimateAndDurationSelector, Animate, DurationCveSelector, PLAnimate, number同上,指定显示动画和动画持续时间
showWithAnimateAndSpeedSelector, Animate, SpeedCveSelector, PLAnimate, number同上,指定显示动画和动画速度
unpick--取消选择的 Polyline

Usage

import { PolylineControl } from '@cve-ts/controls'

const control = new PolylineControl()

// PolylineData 参见 @cve-ts/features
const polylines = [...]

control.checkExistance({ ID: 'A1B2C3D4E5F6' })
control.create(polylines)
control.delete({ Tag: ['第一批'] })
control.hide({ ID: 'A1B2C3D4E5F6' })
control.hideWithAnimateAndDuration({ ID: 'A1B2C3D4E5F6' }, 'StartToEnd', 1)
control.hideWithAnimateAndSpeed({ ID: 'A1B2C3D4E5F6' }, 'StartToEnd', 5)
control.pick({ ID: 'A1B2C3D4E5F6' })
control.show({ ID: 'A1B2C3D4E5F6' })
control.showWithAnimateAndDuration({ ID: 'A1B2C3D4E5F6' }, 'StartToEnd', 1)
control.showWithAnimateAndSpeed({ ID: 'A1B2C3D4E5F6' }, 'StartToEnd', 5)
control.unpick()

Polymesh 控制

Methods

方法名必要参数数据类型说明
hideSelectorCveSelector隐藏指定的 Polymesh
pickSelectorCveSelector选择指定的 Polymesh,只能选中一个
showSelectorCveSelector显示指定的 Polymesh
unpick--取消选择的 Polymesh

Usage

import { PolymeshControl } from '@cve-ts/controls'

const control = new PolymeshControl()

// PointData 参见 @cve-ts/features
const points = [...]

control.hide({ ID: 'A1B2C3D4E5F6' })
control.pick({ ID: 'A1B2C3D4E5F6' })
control.show({ ID: 'A1B2C3D4E5F6' })
control.unpick()

场景控制

class SceneControl extends CveControl {
  /** 重置当前场景视角 */
  resetView(callback?: CveCallback): Promise`<CveResponse>`
  /** 切换自定义场景 */
  switchToCustomScene(sceneName: string, callback?: CveCallback): Promise`<CveResponse>`
}

过场控制

class SequenceControl extends CveControl {
  /** 暂停 */
  pause(isLockCamera: boolean, callback?: CveCallback): Promise`<CveResponse>`
  /** 播放 */
  play(sequenceName: string, callback?: CveCallback): Promise`<CveResponse>`
  /** 停止播放 */
  stop(callback?: CveCallback): Promise`<CveResponse>`
}

系统控制

class SystemControl extends CveControl {
  /** 开始连接云渲染,URL: 云渲染实例地址 */
  start(url: string): void
  /** 结束连接云渲染 */
  stop(): void
  /** 设置云渲染实例分辨率 */
  setResolution(width: number, height: number, callback?: CveCallback): Promise`<CveResponse>`
  /** 设置云渲染实例帧率上限 */
  setFramerateCap(rate: number, callback?: CveCallback): Promise`<CveResponse>`
  /** 设置云渲染实例带宽(Mb) 上限 */
  setBandwidthCap(bandwidth: number, callback?: CveCallback): Promise`<CveResponse>`
  /** 设置云渲染实例流送质量偏好 */
  setDegradationPreference(degradationPreference: RTCDegradationPreference, callback?: CveCallback): Promise`<CveResponse>`
  /** 重设页面渲染器尺寸 */
  resetPlayerSize(): void
  /** 重启云渲染实例当前关卡 */
  restartLevel(callback?: CveCallback): Promise`<CveResponse>`
  /** 打开云渲染实例指定关卡 */
  openLevel(levelName: string, sceneName: string, callback?: CveCallback): Promise`<CveResponse>`
  /** 显示、隐藏云渲染实例的帧率指示 */
  toggleFps(callback?: CveCallback): Promise`<CveResponse>`
  /** 设置云渲染实例音量大小,volume: [0.0,1.0] */
  setVolume(volume: number, callback?: CveCallback): Promise`<CveResponse>`
  /** 设置云渲染实例关闭声音 */
  mute(callback?: CveCallback): Promise`<CveResponse>`
  /** 设置云渲染实例打开声音 */
  unmute(callback?: CveCallback): Promise`<CveResponse>`
}

时间控制

class TimeControl extends CveControl {
  /** 禁用实时,渲染场景中的时间不随服务器时间变化。 */
  disableRealtime(callback?: CveCallback): Promise`<CveResponse>`
  /** 启用实时,渲染场景中的时间随服务器时间变化。 */
  enableRealtime(callback?: CveCallback): Promise`<CveResponse>`
  /** 设置渲染场景中的时间,设置后渲染场景将禁用实时。 */
  setDateTime(dateTime: Date, callback?: CveCallback): Promise`<CveResponse>`
}

天气控制

class WeatherControl extends CveControl {
  /** 根据预设变换天气效果,duration: 变换时间(s),preset: 天气类型 */
  changeWeatherByPreset(duration: number, preset: WeatherPreset, callback?: CveCallback): Promise`<CveResponse>`
  /** 根据参数变换天气效果,duration: 变换时间(s) */
  changeWeatherBySettings(duration: number, settings: WeatherSettings, callback?: CveCallback): Promise`<CveResponse>`
}
1.1.0

2 years ago

1.0.0

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago