SvrPlugin还提供了一些列的虚方法供子类进行重写:
public virtual void BeginEye() { }
public virtual void EndEye() { }
public virtual void SetTrackingMode(TrackingMode mode) { }
public virtual void SetFoveationParameters(float focalPointX, float focalPointY, float foveationGainX, float foveationGainY, float foveationArea) {}
public virtual int GetTrackingMode() { return 0; }
public virtual void SetPerformanceLevels(int newCpuPerfLevel, int newGpuPerfLevel) { }
public virtual void SetFrameOption(FrameOption frameOption) { }
public virtual void UnsetFrameOption(FrameOption frameOption) { }
public virtual void SetVSyncCount(int vSyncCount) { }
public virtual bool RecenterTracking() { return true; }
public virtual void SubmitFrame(int frameIndex, float fieldOfView, int frameType) { }
public virtual int GetPredictedPose (ref Quaternion orientation, ref Vector3 position, int frameIndex = -1)
{
orientation = Quaternion.identity;
position = Vector3.zero;
return 0;
}
public abstract DeviceInfo GetDeviceInfo ();
public virtual void Shutdown()
{
SvrPlugin.instance = null;
}
//---------------------------------------------------------------------------------------------
public virtual int ControllerStartTracking(string desc) {
return -1;
}
//---------------------------------------------------------------------------------------------
public virtual void ControllerStopTracking(int handle) {
}
//---------------------------------------------------------------------------------------------
public virtual SvrControllerState ControllerGetState(int handle) {
return new SvrControllerState();
}
//---------------------------------------------------------------------------------------------
public virtual void ControllerSendMessage(int handle, SvrController.svrControllerMessageType what, int arg1, int arg2) {
}
//---------------------------------------------------------------------------------------------
public virtual object ControllerQuery(int handle, SvrController.svrControllerQueryType what) {
return null;
}
其中BeginEye表示的是完成左右眼的初始化工作,EndEye与之对应为结束左右眼动作。
RecenterTracking表示的是重置VR方向。
SetPerformanceLevels方法为设置当前CPU和GPU等级。
SetVSyncCount为设置当前VSync值。
SubmitFrame方法前文系列中已经提到,为更新左右眼图像的方法。
GetPredictedPose方法为获取默认的头部朝向。
GetDeviceInfo抽象方法为获取当前设备的信息。
Shutdown方法为停止SDK。