You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Unity ML-Agents中获取环境ID以实现多账号训练?

解决多环境训练时动态分配登录账号的方法

直接用ML-Agents内置的环境ID就能搞定,不用自己折腾通信逻辑,具体步骤如下:

  • 在Unity端的登录逻辑代码里,获取当前环境的唯一ID:
    // 确保Academy已经初始化,比如在Agent的Initialize方法里或者AcademyInitialized事件中调用
    int envId = Academy.Instance.EnvironmentId;
    string playerName = $"player{envId}";
    
  • 用这个动态生成的playerName去执行你的登录流程就行

这个EnvironmentId是ML-Agents在启动多环境时自动分配的,每个独立环境的ID从0开始递增(比如--num-envs=3的话,ID就是0、1、2),完全对应你设置的环境数量,刚好满足每个环境用不同账号登录的需求。

另外要注意,必须等Academy初始化完成后再获取这个ID,不然会拿到默认值0。稳妥的做法是把登录逻辑挂在Academy.AcademyInitialized事件上,或者放在Agent的Initialize()方法里,这两个时机都能保证Academy已经完成初始化,ID已经正确赋值。

内容的提问来源于stack exchange,提问作者TheDawnAvenue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 18:04:55