|
本帖最后由 zorsite 于 2022-11-29 15:42 编辑 - f0 m$ Q$ h; N7 X1 ?$ n
& m4 l! z( R" d& q1 F
如何获取Activity的统计信息?
, i ~/ [6 z+ W2 |' Z+ u# V% H5 w3D实体的属性面板中可以查看统计信息。
* r' N8 S3 ?& x8 F$ E) g: G0 g. c3 P( _
同时可以通过Object.stats属性来获取相关信息。* R* E2 Q7 _: N% R- [, ]- n, J* r
3 F \1 N9 |( u( J4 Q) K, q
Activity也有属性面板- ]) j, j A0 I0 S+ _2 @$ m
* [: ~% l/ |3 u9 o: {& E
但是Activity却没有stats属性,无法通过属性获取统计信息。
8 [/ [, \4 [, O4 H, X% Q) k. ~: s: o6 \! {5 {; g0 c" c
原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。
3 A5 i4 }' g+ `5 Qtreenode作为Object的父类,其属性和方法不如其子类Object那样丰富。
7 L# V3 F. n/ Z. T3 L' V. h# w3 B# x: ^0 D5 q+ N4 g5 i5 E4 L
作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:6 i) T4 c/ |3 x; D4 Q
! I9 q& T- V* o- H* `
其中就有stats属性,可以获取统计信息。* D: s8 G" p ^
0 h$ @5 @7 K' X8 d+ G0 l! U0 Y6 w, q那如何使用代码获取Activity的统计信息呢?) t# F7 s) w+ n5 \( i
第1种方法,使用getstat命令。( C( W9 S* E* A% H/ r; f6 _
getstat (node object, str name, int flag [, var p1, var p2, var p3])+ s; q3 u0 m8 K# T6 \
Returns the statistic value for the given objectDescription" k. b* D% l3 p1 h6 J
It is preferred to use Object.stats instead. Gets the specified statistic from the given object.
2 Z7 D$ d8 z: TExample:
' L; _5 p+ _* B( |- getstat(activity, "Content", STAT_CURRENT)
复制代码- getstat(activity, "Input", STAT_CURRENT)
复制代码- getstat(activity, "Staytime", STAT_AVERAGE)
复制代码- double avgContent = getstat(
1 s% e/ p# G, s8 q4 K0 d, l! D, v* W - // getstat requires between 4 and 6 parameters:
( C& f( |% Z2 [2 E: ^7 }: c - activity, // 1. the object (shared asset or activity) that has the statistic1 e% x' |& B! T, Z" q
- "Content", // 2. the name of the statistic
% M) C$ r1 F8 U, J4 X7 I, `! | - STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)6 |4 P# T6 t9 {& R: v
- // 4. an optional parameter the instance object (usually current)3 j/ q: Z/ J( r: V9 d
- // 5. an additional parameter to help resolve which data to get
; `0 N+ I+ E3 B0 S' Q f; y+ R! \8 t - // 6. an additional parameter to help resolve which data to get
2 g9 o, E* v4 n% s# P - );
复制代码 - y# O9 j: _/ h, e$ q1 X
第2种方法,转换activity的类型。5 K( W! n/ u: [$ ?0 w! D
既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?4 z* f) W" C: i; D
转换的方式有2种:
, b* b3 X; u* y) n% e' m k8 B' Q方法1,使用as关键字:
. E7 v4 C7 j8 H- activity.as(Object).stats.input.value;# f& I; ^) |" u A& N4 f
复制代码
: c: M! ^ M1 _5 L: R! H9 o7 J方法2,将activity声明为Object类型的变量:/ N0 C+ S2 r7 z2 y
- Object Obj_activity=activity;
# k% b1 _4 M6 u& F, w5 f1 A: `+ } - return Obj_activity.stats.input.value;
复制代码 H7 a& {" h4 X3 ]$ e/ B: E3 M
% b8 _6 P' u3 L6 Q
8 k% a) H, z7 P$ ? f0 C
, z" R$ d' j% e! V- k
0 z( H) E2 i/ F! w2 c8 M' T! j
0 v# Z7 u4 [/ v$ U U% H' | C# [3 T0 j/ x" Q+ A
, I, A4 T0 q2 e, U
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|