|
本帖最后由 zorsite 于 2022-11-29 15:42 编辑 / b- ? O. X8 O: V7 y) n1 I- @
6 k$ Y/ _3 s( W- R1 y如何获取Activity的统计信息?
4 A$ [' l: V/ D' D* e' G0 o3D实体的属性面板中可以查看统计信息。! ?: O2 [$ t5 _; s
+ C; a$ k# x: x _, X
同时可以通过Object.stats属性来获取相关信息。4 T8 y7 ~$ J2 t( Z6 p/ S w* P
* `3 s- `3 \2 g& X7 AActivity也有属性面板
X+ X3 L) W, V/ I- P0 ]3 w5 x \7 S
: j' @9 I3 s4 }, X/ J# N但是Activity却没有stats属性,无法通过属性获取统计信息。
' z' Y7 L3 R% v. O! I6 v$ h7 m( Y4 N- c& I
原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。
* W% a! \ M2 _% W; ?, S/ r r1 I* \5 |treenode作为Object的父类,其属性和方法不如其子类Object那样丰富。
* _3 e/ \3 l' V X
5 q4 W4 \) E) W作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:! e+ u( h. t, ] x" a
7 |$ G0 H* E Z& d' G# }其中就有stats属性,可以获取统计信息。
6 C2 h, d9 G* \( t6 K$ J9 K/ t3 k! w0 T. `9 J& G
那如何使用代码获取Activity的统计信息呢?8 h8 w- O& e' ~) n
第1种方法,使用getstat命令。, ?- ?* ?$ p8 c j8 R; Y# j3 b
getstat (node object, str name, int flag [, var p1, var p2, var p3]): T3 R7 i& p* C- q3 [" o
Returns the statistic value for the given objectDescription- ~8 W6 N$ z$ n1 e
It is preferred to use Object.stats instead. Gets the specified statistic from the given object.
}' w( E7 F' l- y' Y) ?) qExample:
" r4 b \' @, G' U0 S, f- getstat(activity, "Content", STAT_CURRENT)
复制代码- getstat(activity, "Input", STAT_CURRENT)
复制代码- getstat(activity, "Staytime", STAT_AVERAGE)
复制代码- double avgContent = getstat(
# N) y2 ?, S+ @4 B& t - // getstat requires between 4 and 6 parameters:' }& s+ i6 }' n( K0 Y, t' Z& C1 Z! n
- activity, // 1. the object (shared asset or activity) that has the statistic' R7 Y% z2 A0 v
- "Content", // 2. the name of the statistic/ x. v, O0 x: v
- STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)
1 w' w; W* y; ~$ d- T4 b - // 4. an optional parameter the instance object (usually current)# V R% C" j5 w" X7 G6 N; w
- // 5. an additional parameter to help resolve which data to get
* ~4 j, t5 @, L# U. ^ - // 6. an additional parameter to help resolve which data to get
) [) z# X2 o" G6 j - );
复制代码 7 {8 G) V3 _8 W& g) H
第2种方法,转换activity的类型。$ _" q% v! a) a6 q, K! D
既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?3 k$ {3 T( k9 ~1 X, a+ @
转换的方式有2种:# j; f4 |) @- x; a" c% ~" | O0 [
方法1,使用as关键字:
, O$ ~* ^: W, M: M- activity.as(Object).stats.input.value;
, C1 r) q b% t) }$ e$ V$ j5 }
复制代码
# s2 h6 m* [+ }3 Q- B方法2,将activity声明为Object类型的变量:
! c; m6 v# u3 O: p# P {$ `5 ^- Object Obj_activity=activity;! j+ `4 V# W4 \3 I
- return Obj_activity.stats.input.value;
复制代码 ; G8 |% z# D9 n) ?2 f
- b$ Q# E; b0 P5 e8 D
7 x7 [( K0 i. e2 \' o
7 E+ R! c" r; n3 ? N0 f1 E. `8 a4 M! @0 s) E0 V
- _& W$ }% @, ?
- N2 ?* s: n& H" m. w) T
# A! }# l5 y. e0 D% D: e |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|