如何设置AnyLogic模型,运行时点击单个Agent查看其详细参数与状态?
AnyLogic中点击单个Agent查看详细参数与状态的实现方法
方法一:用内置Agent Inspector快速查看
- 打开模型的运行时设置,在「General」标签页里勾选「Enable agent inspection on click」。
- 运行仿真时,直接点击2D/3D视图里的单个Agent,右侧会自动弹出Inspector面板,该Agent的所有参数、状态变量和当前值都能直接查看。
- 哪怕Agent属于某个种群(Population),这个设置也生效,点击单个个体就能看到它的专属属性。
方法二:自定义弹窗展示关键信息
要是只想展示特定参数、不想看全部内容,可以自己做个性化弹窗:
- 打开你的Agent类型(比如Vehicle代理)的编辑页,找到「On click」事件(在Agent的属性面板里能找到)。
- 在事件里编写弹窗逻辑,用
showInformationDialog()函数自定义展示内容,示例代码如下:
把代码里的showInformationDialog("车辆详情", "车牌: " + licensePlate + "\n" + "当前速度: " + currentSpeed + " km/h\n" + "剩余电量: " + batteryLevel + "%");licensePlate、currentSpeed换成你给Agent定义的实际属性变量名即可。 - 如果是3D模型,要确保Agent的3D对象勾选了「Pickable」属性(在3D对象的属性面板里找),不然点击不会触发事件。
方法三:绑定界面面板实时更新
如果需要持续查看选中Agent的状态变化,就在主界面加个固定面板:
- 在Main环境里拖入一个「Panel」组件,里面放置若干「Label」用于展示参数。
- 在Agent的「On click」事件里,把当前Agent的属性值赋值给主界面的Label,示例代码如下:
main.vehiclePlateLabel.setText("车牌: " + this.licensePlate); main.vehicleSpeedLabel.setText("速度: " + this.currentSpeed); - 每次点击不同的Agent,面板就会自动刷新成对应个体的信息。
内容的提问来源于stack exchange,提问作者wayne wick
相关产品推荐
相关产品推荐

