Unity ML-Agents + VScode 环境搭建 Windows

发布于:2025-05-01 ⋅ 阅读:(34) ⋅ 点赞:(0)

安装Unity

先去官网下载Unity Hub,然后安装在D盘就可以了,你需要手机上安装一个Unity Connect进行账号注册。

详细的注册可以参考:
https://blog.csdn.net/Dugege007/article/details/128472571

注册好了以后登入电脑端的Unity Hub,可以尝试进行汉化:
在这里插入图片描述
点进去设置成简体中文
在这里插入图片描述
然后修改一下这三个地方的路径:
在这里插入图片描述
然后安装编辑器:
在这里插入图片描述
安装完点设置进去
在这里插入图片描述

如果显示有中文简体,那可能会无法汉化,先要把中文简体勾上然后点安装。
(注意不要勾选 visual studio,我们不用这个)
在这里插入图片描述
然后创建一个新项目测试,选3D的模板,打开项目就可以了
在这里插入图片描述
然后汉化一下,点首选项进去
在这里插入图片描述
选简体中文
在这里插入图片描述
包管理器的位置有需要也可以改一下,我这边不改了:
在这里插入图片描述

安装vscode

首先去安装一下vscode,安装完了然后打开,安装中文插件汉化
在这里插入图片描述
有需要可以改一下插件的安装位置,插件默认安装路径在C:\Users{个人用户名}.vscode\extensions目录下,找到『extensions』文件夹,右键→剪切。然后到新的文件夹去粘贴,比如粘贴到 D:\Buffer\VSCode\下。
在这里插入图片描述

管理员权限下的命令提示符(CMD)输入以下命令:mklink /D “C:\Users{个人用户名}.vscode\extensions” “{自定义路径}”;运行成功后,会提示创建了双向的符号链接。如 :

mklink /D “C:\Users\zhang3.vscode\extensions” “D:\Buffer\VSCode\extensions”

在这里插入图片描述
打开C:\Users{个人用户名}.vscode,出现一个extensions变成快捷方式,则修改成功。
在这里插入图片描述

配置

参考 https://docs.unity.cn/cn/2021.2/Manual/ScriptingToolsIDEs.html

组件搜索unity,这几个能装就全装,带黄尖的是弃用了的,可以不装
在这里插入图片描述
然后打开unity项目,编辑->首选项->外部工具->浏览,然后选桌面的vscode。
在这里插入图片描述
再更新一下 Unity 的 Package Manager 插件(Visual Studio Code Editor)到最新版本,可通过 窗口->包管理器 进入包管理界面,在搜索框输入 Visual Studio Code Editor,解锁一下,如果需要更新就更新一下:
在这里插入图片描述
差不多主要的工作都已经完成了,这个时候新建一个C#测试脚本,双击脚本,便可以打开 VSCode 了:
在这里插入图片描述

但是你会发现提示错误:
在这里插入图片描述
去下载一下 .NET SDK ,我安装了.NET 8.0。【如果你是linux或者macos则需要装的是mono,详细的参考官方文档】有外网的速度会快一些,可以翻墙下。下载完安装好之后,重新打开一个终端,输入dotnet --version 或 dotnet --list-sdks (查看安装的所有版本),下面这样就是好了
在这里插入图片描述
如果重新打开脚本还是报错,则重启一下电脑就可以了。

然后打开vscode,点击运行
在这里插入图片描述
这时会在unity弹出一个窗口:
在这里插入图片描述
这里可以选所有项目的使能。然后就可以了。

python环境安装

官网下载miniconda,你装conda也可以,然后一路安装即可:
在这里插入图片描述
在这里插入图片描述
然后在菜单栏中直接打开或搜索Anaconda Prompt(注意:未来管理miniconda中虚拟环境均在此处,并非在命令指示符或PowerShell)
在这里插入图片描述
然后打开和conda命令行一样使用就可以了。使用命令行(Anaconda Prompt)将新的路径设置为虚拟环境的存储位置,比如 D:\anaconda3\envs :
conda config --add envs_dirs D:\anaconda3\envs
这里的 D:\anaconda_envs 是你希望存储虚拟环境的路径,可以更换为任何你喜欢的目录。
运行以下命令查看配置:
conda config --show envs_dirs
然后你就能看到你的路径在最上面就可以了(默认优先使用)

尝试创建一个新的环境
conda create -n myenv python=3.8
在这里插入图片描述
创建好了之后激活
conda activate myenv
如果想安装软件包就可以用pip了,如:
pip install numpy
关闭
conda deactivate

ML-Agents环境配置

详细教程参考官方:https://github.com/Unity-Technologies/ml-agents/blob/release_19_docs/docs/Readme.md

先把ML-Agents仓库克隆下来,比如放在D:\Unity\ml-agents中:

git clone --branch release_19 https://github.com/Unity-Technologies/ml-agents.git

把仓库打包到项目里,窗口->包管理器->单击+按钮->添加来自磁盘的包
在这里插入图片描述
然后导航到com.unity.ml-agents文件夹,选择package.json文件,双击添加
在这里插入图片描述
导入后会出现ML-Agents包(若是没有,关闭工程重新打开添加):
在这里插入图片描述
然后com.unity.ml-agents.extensions Unity 包(可选)的话,也一样安装就可以了。

创建一个python环境,python3.10的

conda create -n mlagents python=3.10.12 && conda activate mlagents

安装pytorch

pip3 install torch~=2.2.1 --index-url https://download.pytorch.org/whl/cu121

通过本地安装mlagents(注意pytorch得在它之前安装,以确保使用CUDA版本,而不是仅使用CPU版本)

#先切换到包储存路径
cd /d “D:\Unity\Project\ml-agents\ml-agents”
#本地安装
python -m pip install ./ml-agents-envs
python -m pip install ./ml-agents

若numpy安装报错,可能是python版本太高了,要么换python版本到3.8,要么换numpy版本到1.23.5,直接打开setup.py更改版本:
在这里插入图片描述
修改为1.23.5后重新安装,就可以了
在这里插入图片描述
在这里插入图片描述

环境测试

可以直接跑它的项目,直接打开Project目录,就可以运行项目了
在这里插入图片描述
在这里插入图片描述
想更换demo的话比如3Dball,单击导入3Dball的包,单击一下
在这里插入图片描述
然后去打开这个项目
在这里插入图片描述
点击运行就可以了
在这里插入图片描述
先停止运行

打开一个新的终端,激活环境输入:
conda activate mlagents
然后跳转到ML-Agents工具包目录下,我放在了D:\Unity\Project\ml-agents\ml-agents :
cd /d D:\Unity\Project\ml-agents\ml-agents
然后输入带有各类训练参数配置的文件,格式为.yaml,开始训练
mlagents-learn config/ppo/3DBall.yaml --run-id=train
在这里插入图片描述
然后unity那边点播放就可以了,他就会开始训练了
在这里插入图片描述
再新建一个终端,同样跳转到目录下
conda activate mlagents
cd /d D:\Unity\Project\ml-agents\ml-agents
用tensorboard 查看训练结果
tensorboard --logdir results
在这里插入图片描述
浏览器打开 http://localhost:6006/ 就能看到结果了
在这里插入图片描述
训练结束会出现模型文件:
在这里插入图片描述
在这里插入图片描述

可将模型文件拖入unity项目中
在这里插入图片描述
将训练的智能体中找到Behavior Parameters组件,将其中的Model属性修改为训练后生成的模型文件,即可启动游戏看训练的效果。
在这里插入图片描述
在这里插入图片描述
几个重要的参数:

Space Size:输入的维度
Continuous Action:输出的连续动作数
Discrete Branch:输出的离散动作数
Model:使用的模型

也可以在下面直接添加组件
在这里插入图片描述
Decision Requester组件:设定智能体如何采取决策

Decision Period:采取决策的时间间隔
Decision Step:采取决策的步数
Take Actions Between:不采取决策是否执行动作
在这里插入图片描述

然后点击运行就能看到效果了
在这里插入图片描述
其他组件:
Demonstration Recorder:记录玩家操作的组件,记录完存储为.demo文件

Record:是否记录操作,勾选则在运行时记录
Num Steps To Record:记录的步数,值为0时表示无穷大
Demonstration Name:录制后得到的文件名
Demonstration Directory:录制文件存放的路径,图中为{项目路径}/Demo
在这里插入图片描述
若要使用.demo文件进行训练,需要在.yaml文件中加入以下配置

behaviors:
  trainDemo: #与.demo文件名一致
    trainer_type: ppo
    reward_signals:
      gail:
        strength: 0.5
        demo_path: Demo/trainDemo.demo
    behavioral_cloning:
      strength: 0.5
      demo_path: Demo/trainDemo.demo
    max_steps: 500000
      strength: 0.5
    demo_path: Demo/trainDemo.demo
behavioral_cloning:
  strength: 0.5
  demo_path: Demo/trainDemo.demo
max_steps: 500000

更多参考

常用组件
超详细的Unity小白的 ML-Agents(Release 22)学习记录


网站公告

今日签到

点亮在社区的每一天
去签到