标题: 如何获取Activity的统计信息? [打印本页] 作者: zorsite 时间: 2022-11-29 15:17 标题: 如何获取Activity的统计信息? 本帖最后由 zorsite 于 2022-11-29 15:42 编辑 ^! c% s8 J- L" w. ?( i* c9 l6 @8 C
1 x w; G& K- k: T1 e
如何获取Activity的统计信息?/ z2 _& j! E3 |
3D实体的属性面板中可以查看统计信息。* W$ E1 |; v% A, R
[attach]6028[/attach]/ |3 j3 E+ ?: h1 W: F1 Z
同时可以通过Object.stats属性来获取相关信息。* g: F8 q' q0 j2 _
[attach]6029[/attach]$ K, |$ x+ n# N7 E
Activity也有属性面板 ! }& d/ p7 b5 a3 K* O[attach]6030[/attach]0 h) S0 ~: Y- v7 ?* o
但是Activity却没有stats属性,无法通过属性获取统计信息。 ' I+ ^0 j2 u; r$ ~$ t, o' t1 d[attach]6031[/attach] ! ?' ?) Q" R- |* W3 L原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。- s4 V9 S/ d- o4 k; B
treenode作为Object的父类,其属性和方法不如其子类Object那样丰富。" r, \/ i7 D8 v0 Y6 w
[attach]6032[/attach] . G/ `% z Y* u7 ?# D* l作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性: ! d. | C9 ^3 v[attach]6033[/attach]2 S1 {) o( i+ g/ o! T6 v3 f/ L
其中就有stats属性,可以获取统计信息。2 G" i0 a9 i- O: I
5 S' ?) u& C# O. D! d4 H2 d/ `那如何使用代码获取Activity的统计信息呢? ) B6 J' g% s- Y7 `* r( r( ^( e第1种方法,使用getstat命令。 9 P1 k0 m2 S. U2 ?* z1 ^! q3 t: hgetstat (node object, str name, int flag [, var p1, var p2, var p3])5 E' j& `/ _: B/ I. [" G' s
Returns the statistic value for the given objectDescription( C: ^# N1 q0 g7 O
It is preferred to use Object.stats instead. Gets the specified statistic from the given object.) p7 A2 C- v* f& N9 i' C4 w
Example:& R' O# N% f; G% `0 E7 V$ N
getstat(activity, "Content", STAT_CURRENT)
复制代码
getstat(activity, "Input", STAT_CURRENT)
复制代码
getstat(activity, "Staytime", STAT_AVERAGE)
复制代码
double avgContent = getstat(6 r) J" S2 ]/ ^3 }' d
// getstat requires between 4 and 6 parameters:9 O6 T5 j) {; h+ G* y6 d w8 K
activity, // 1. the object (shared asset or activity) that has the statistic $ n: N5 S' M# w# F
"Content", // 2. the name of the statistic : d. a" S9 i' y
STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)% E; }3 T3 R7 |1 J0 N
// 4. an optional parameter the instance object (usually current) ! }% G$ m9 k8 z6 \9 C- E
// 5. an additional parameter to help resolve which data to get, O1 {# N" v* S/ Q# p
// 6. an additional parameter to help resolve which data to get ) G$ z1 ~2 f! a
);
复制代码
+ c" P5 ]# p- R第2种方法,转换activity的类型。 & L3 D) m, h/ ~既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?% M& J% h) n( l' u' V4 a% z
转换的方式有2种:6 q, X4 P+ }: U2 s) v8 q
方法1,使用as关键字: + m. ]9 R) I# f0 n$ m4 k8 v
activity.as(Object).stats.input.value;% U" L U! j B! s% G
复制代码
& ?0 ^ S0 O; e$ v& h/ ?8 ^方法2,将activity声明为Object类型的变量: 6 C' T$ s' n, t) L+ b) M5 j
Object Obj_activity=activity;. X6 ^ h* c7 f4 `
return Obj_activity.stats.input.value;
复制代码
" s& M' I2 Z6 {+ U7 N ' `1 ~# A* z( F8 P" [6 P# d% y# ]" i
* ?: R! ^# E2 D7 Z2 v/ [: ?6 z
6 ?! `9 R1 ~4 c2 f
) }8 h1 _4 g" a' P" [+ d7 R 1 x, j6 V# w# f0 d0 ^; ]1 E% P$ g; h8 ?4 X; O6 I) W0 I, |8 U+ S: z* i$ p' v