public sealed class CubeAgent{
//Required, initialize APM, 0 means success, -1 means failure
public static int InitContext(string appId);
//Required, mark the beginning of the scene
//LOW_QUALITY,MEDIUM_QUALITY,HIGH_QUALITY
public static void MarkLoadlevel(string scene_name, int quality=0);
//Optional, mark the scene loading completed mark, used to count the scene loading time
public static void MarkLoadlevelCompleted();
//Optional, end of scene mark
public static void MarkLevelFin();
//Optional, network delay, thread safety, upload can be called in a separate thread
public static void UpdateNetLatency(int latency, int serverip = 0 );
//Optional, start with label
public static void BeginTag(string tagName);
//Optional, end of label
public static void EndTag();
//Optional, set global image quality
public static void SetQuality(int quality);
//Optional, set target frame rate
public static void SetTargetFrameRate(int target);
//Optional, report custom events
public static void PostEvent(int key, string value = "NA");
//Optional, set the version number
public static void SetVersionIden(string version);
//Optional, report the pullback information
public static void PostLagStatus(float distance)
//Optional, set region
public static void SetLocale(string locale);
//Optional, open the log interface
public static void EnableDebugMode();
//Optional, cloud control model binning interface
public static int CheckDeviceClass(string configureDomainName);
//Optional, asynchronous interface for cloud control models
public delegate void TApmDeviceClassCallbackDelegate(int deviceclass);
public static void CheckDeviceClassAsync(string configureDomainName, TApmDeviceClassCallbackDelegate handler)
//Optional, report player coordinates
public static void PostTrackState(float x, float y, float z, float pitch, float yaw, float roll)