|
本帖最后由 zorsite 于 2022-11-29 15:42 编辑
+ ^3 U7 h% ?- [# V2 u, o* C x& f2 G: i3 K) v
如何获取Activity的统计信息?
, v" e5 b% @+ I* `3D实体的属性面板中可以查看统计信息。
8 T9 P6 ?) I; C) J# _- B# b' \. n7 L" U
同时可以通过Object.stats属性来获取相关信息。
$ }+ o- v# U% L$ Y; C6 f
: D9 N7 A3 k3 W7 ^1 J" h' A4 _- FActivity也有属性面板
* m2 y! l. y2 r$ j: I$ p% F) q# h) X: h+ f$ x! l8 S
但是Activity却没有stats属性,无法通过属性获取统计信息。
3 j( S9 a. O# c f% w4 }# v8 G
0 A6 A, S6 s5 @1 s# \+ q4 S5 [原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。
4 e( D( h$ D e- D$ z$ e4 Ctreenode作为Object的父类,其属性和方法不如其子类Object那样丰富。
( u/ b& R ?- V* p6 B7 o1 Y7 U1 s! c$ q
作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:
0 U1 K$ k( k% _4 i: g
2 R) g3 [* y$ d- w2 |8 X其中就有stats属性,可以获取统计信息。4 [# z9 q, v6 k) \% w
* P! {, @& p6 w" N
那如何使用代码获取Activity的统计信息呢?
" \) f7 P* k$ Y6 o( C- T第1种方法,使用getstat命令。
' e( y* ~- I5 O0 w7 lgetstat (node object, str name, int flag [, var p1, var p2, var p3])) x1 N* g6 i$ H4 B7 R
Returns the statistic value for the given objectDescription
/ J/ N; C2 ]( `& s1 w2 {& xIt is preferred to use Object.stats instead. Gets the specified statistic from the given object.
4 I7 [1 [# K: xExample:
& K! o& C4 i9 m( z- getstat(activity, "Content", STAT_CURRENT)
复制代码- getstat(activity, "Input", STAT_CURRENT)
复制代码- getstat(activity, "Staytime", STAT_AVERAGE)
复制代码- double avgContent = getstat(6 w* {5 j* H) Z4 t
- // getstat requires between 4 and 6 parameters:+ X4 o! E% u8 z' I! `5 V
- activity, // 1. the object (shared asset or activity) that has the statistic8 q. ]8 D0 D' R
- "Content", // 2. the name of the statistic
6 ]% C/ O6 Z! L7 t o - STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)' c: l4 n+ r& p/ z3 L
- // 4. an optional parameter the instance object (usually current)
2 D2 D+ H. T0 x5 p n4 C' t - // 5. an additional parameter to help resolve which data to get4 H7 X- E* }3 p8 l, s
- // 6. an additional parameter to help resolve which data to get8 k% I9 _9 X3 ?8 c2 g. W
- );
复制代码 " S& K7 `) ^9 p9 D7 e
第2种方法,转换activity的类型。
+ Q+ C4 F* ^: \( i9 {6 [* K0 l既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?, _- y4 ~5 |! C0 o k4 K1 y
转换的方式有2种:
9 f3 o% N) `' V4 C* t+ N% |/ W方法1,使用as关键字:
. [8 r# u. Q' C) q6 q0 f1 S, J- activity.as(Object).stats.input.value;
4 J* _( J# M. |5 T) ^7 U
复制代码 + ? \" I, |" n2 k
方法2,将activity声明为Object类型的变量:( K J' @+ r' A: X
- Object Obj_activity=activity;
% y/ D% o% e$ k; }& n - return Obj_activity.stats.input.value;
复制代码 / I, i1 B' v8 B
& X# M/ X* c P/ @/ D% l# l
# d4 L5 j0 J% G5 I9 j* }+ {
8 l& j. e9 l. ?2 y$ |
+ |7 L* f: s) W' Y+ {: o) P7 a9 t! v$ p7 p, p& R
' Z, F$ w4 `; a
- o3 F6 {5 ^5 J$ u9 a; ^
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|