|
本帖最后由 zorsite 于 2022-11-29 15:42 编辑
+ j/ G% K* w3 a7 J( ]3 j' B0 r8 M# a: m
1 Q7 v; t7 d1 F% z如何获取Activity的统计信息?, r# T6 F2 A- T- y0 V# `% A3 V2 T
3D实体的属性面板中可以查看统计信息。
+ _# ]: b6 E c/ a
% Y! @5 B: K6 v同时可以通过Object.stats属性来获取相关信息。
4 r6 [: @+ @* O/ r: O0 R' g$ r
' |" i# E {$ Y! r8 a o( o. DActivity也有属性面板4 \9 E9 b) ]8 d% m
# J# T6 X/ u3 r+ ]# j4 O8 E2 j
但是Activity却没有stats属性,无法通过属性获取统计信息。1 V* s8 w, \: V# e
2 B) [' v6 f3 h$ ^
原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。
. i" r4 }' g: L& btreenode作为Object的父类,其属性和方法不如其子类Object那样丰富。) o6 G% @7 T; I. V0 z/ {" R
W1 s& F" x" [6 @ v% H作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:
f- T. n2 @4 Y* n: `9 G+ l$ Q; i. [, ?% r- ~; I
其中就有stats属性,可以获取统计信息。
$ l( p0 f( M9 `6 i& R4 _* ~9 q/ y$ o+ c8 U7 p% m2 _2 \- u% S# B
那如何使用代码获取Activity的统计信息呢?
) i; X' l" I" F4 M第1种方法,使用getstat命令。$ D( M( q+ @, G6 U/ m" ] j
getstat (node object, str name, int flag [, var p1, var p2, var p3])
: T5 ~, I; w% `5 f9 SReturns the statistic value for the given objectDescription) ^6 `4 r4 K2 p$ a
It is preferred to use Object.stats instead. Gets the specified statistic from the given object.
8 k$ k/ D4 H% g( @& H) XExample:
. z/ b: P3 S7 m- getstat(activity, "Content", STAT_CURRENT)
复制代码- getstat(activity, "Input", STAT_CURRENT)
复制代码- getstat(activity, "Staytime", STAT_AVERAGE)
复制代码- double avgContent = getstat(
% e8 t6 v, c# h - // getstat requires between 4 and 6 parameters:9 p& C2 Z5 Y1 n4 v
- activity, // 1. the object (shared asset or activity) that has the statistic3 X& U& M4 h( ?9 A0 K8 m
- "Content", // 2. the name of the statistic
& A3 ~& Z$ n+ a/ O$ z4 d - STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)
+ k* {/ X6 F& i5 D7 }# j4 Q: G - // 4. an optional parameter the instance object (usually current)" L- H: J$ B G6 e+ _& @
- // 5. an additional parameter to help resolve which data to get
: t- _( {/ l8 ?0 D' Y4 e3 u - // 6. an additional parameter to help resolve which data to get
& P7 i; C- ]* a' \ - );
复制代码 # q( n, e$ ]% j. @- f3 g% Z& P
第2种方法,转换activity的类型。
! z# f" T' {+ A+ C& J1 P" q2 I4 H+ {既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?
8 I7 P1 s& m) Q% ^; Q转换的方式有2种:1 V+ v; r* P& S$ l# H
方法1,使用as关键字:
2 T1 H9 C5 N$ D2 p1 N8 |, u: r- activity.as(Object).stats.input.value;
. G& V Y3 Q0 c+ x+ K
复制代码 " I- _) {( U- J
方法2,将activity声明为Object类型的变量:
' X% O, q a$ W- f; J& U, g" \- Object Obj_activity=activity;
/ y4 [8 p# Q# V - return Obj_activity.stats.input.value;
复制代码 - _8 E! ~1 N# @
) Y/ V1 {( P4 g9 a( u
! G- m0 k9 y3 q4 h: t. L. u
8 G& N5 F. a% d% k4 ]+ o7 Z- J8 C+ q; m8 c4 B. _# N
# s! Y# Y5 y2 j3 e$ h
) [( z5 N3 e0 |6 o
" |; s! H# L5 S/ M+ U
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|