|
本帖最后由 zorsite 于 2022-11-29 15:42 编辑
/ E9 q2 c* G$ m. I; n# g" ~$ Z1 E8 U" F9 J4 l- z) D; r
如何获取Activity的统计信息?
. I5 t- E( ^1 z0 r3D实体的属性面板中可以查看统计信息。6 y$ A( B; _! I" \& y5 F$ F! q
+ J' Q3 |/ V3 m' t同时可以通过Object.stats属性来获取相关信息。, T& g- o1 Q- f/ @( U
# X* Q$ d- {) x" z+ i* _( GActivity也有属性面板" F/ d1 {. ]$ L
5 f! ~+ Q/ N5 X/ [, x* x& J G但是Activity却没有stats属性,无法通过属性获取统计信息。
0 d0 I% m, V4 _3 n* s \5 T+ x @! ~$ z, h: v1 @/ \3 Y
原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。; j7 O4 p E; e6 [0 S% A
treenode作为Object的父类,其属性和方法不如其子类Object那样丰富。
: V- j4 L) k+ I6 }+ a* J% ?' f) L! f* {0 j' s; ? ^' d1 i
作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:
8 D2 `: b5 u* {8 O1 i
0 R. y. z3 u% G其中就有stats属性,可以获取统计信息。! T7 m( u- t- Z& O4 ]
& S( L; n2 h5 k% ~
那如何使用代码获取Activity的统计信息呢?: P6 K: O c" u; l5 Y
第1种方法,使用getstat命令。
6 B1 `8 A: [8 ?- a2 Wgetstat (node object, str name, int flag [, var p1, var p2, var p3])7 B! Z+ B- @9 J) x/ c8 Y% I
Returns the statistic value for the given objectDescription
# N: q; V6 I4 @. r; t7 PIt is preferred to use Object.stats instead. Gets the specified statistic from the given object.! Z" D" p# r% v4 F7 p9 p* C
Example:
' ^9 A6 D3 |6 a6 H6 i" b+ O" y- getstat(activity, "Content", STAT_CURRENT)
复制代码- getstat(activity, "Input", STAT_CURRENT)
复制代码- getstat(activity, "Staytime", STAT_AVERAGE)
复制代码- double avgContent = getstat(0 \0 B1 i" S. k( d8 m0 I! P
- // getstat requires between 4 and 6 parameters:0 o; j1 `5 k/ |) L+ K+ a
- activity, // 1. the object (shared asset or activity) that has the statistic" z* G% K) o4 j- p* e' M I2 f
- "Content", // 2. the name of the statistic3 O3 ?3 K1 l ^
- STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)
( t5 Z! u ~: \' W4 a( B - // 4. an optional parameter the instance object (usually current)
" x$ s: ^7 r5 M% w- A+ t - // 5. an additional parameter to help resolve which data to get! J; Z* H7 q- c" e$ y0 y" _2 ~
- // 6. an additional parameter to help resolve which data to get/ D( j8 O3 _( _
- );
复制代码 & k3 O: b8 a! \" {+ j: [1 ?
第2种方法,转换activity的类型。3 a2 x4 t% |4 {1 m$ Q! [) m
既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?
0 }! o8 m ^- K t \转换的方式有2种:
; u- Q3 X3 P5 M: Y# L! o方法1,使用as关键字: v2 [1 m+ {7 \8 ]; R: R9 N3 i5 b: J
- activity.as(Object).stats.input.value;
& V& R% U2 E" i
复制代码
1 j3 Q; D3 N7 {7 J C方法2,将activity声明为Object类型的变量:0 b- s, U6 J; ?( A
- Object Obj_activity=activity;
0 D. p0 s! g* ^8 s: q3 } - return Obj_activity.stats.input.value;
复制代码 : _3 ?' R& L. e3 L
: Q. ]% _; N: C8 A+ F# T/ O3 C
$ ]/ H) l5 m; Z; G1 G" _/ k/ O
' z7 [ g) o& T1 h9 i8 Q! I9 R( \' E E6 ?0 a% H
3 X7 q9 t8 j5 p# z8 K' C$ F. z
. u- k. Q# x/ m6 [! I5 A1 |, P0 w! W
9 M. z' u" C3 j |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|