Unity ML-Agents + VScode 环境搭建 Windows

安装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的包,单击一下
在这里插入图片描述
然后去打开这个项目
在这里插入图片描述
点击运行就可以了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/78614.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux电源管理(2)_常规的电源管理的基本概念和软件架构

原文: Linux电源管理(2)_Generic PM之基本概念和软件架构 1. 前言 Linux系统中那些常规的电源管理手段,包括关机(Power off)、待机(Standby or Hibernate)、重启(Reboot)等。这些…

机器学习基础理论 - 分类问题评估指标

几个定义:混淆矩阵 TP: True Positives, 表示实际为正例且被分类器判定为正例的样本数FP: False Positives, 表示实际为负例且被分类器判定为正例的样本数FN: False Negatives, 表示实际为正例但被分类器判定为负例的样本数TN: True Negatives, 表示实际为负例且被分类…

在线教育系统开发常见问题及解决方案:源码部署到运营维护

当下,越来越多的教育机构、企业培训部门以及创业者,选择开发属于自己的在线教育系统。然而,从源码部署到实际运营,整个过程中常常会遇到一系列技术与管理难题。今天,笔者将从在线教育系统源码维护、运营等几个方向为大…

RAG(Retrieval-Augmented Generation,检索增强生成)

RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合 信息检索 和 文本生成 的技术,旨在提升大语言模型(LLM)生成内容的准确性和时效性。其核心思想是:先检索相关知识,再基…

项目实战 -- 状态管理

redux基础 还记得好久好久之前就想要实现的一个功能吗? 收起侧边栏折叠菜单,没错,现在才实现 因为不是父子通信,所以处理起来相对麻烦一点 可以使用状态树或者中间人模式 这就需要会redux了 Redux工作流: 异步就…

Go语言之路————指针、结构体、方法

Go语言之路————指针、结构体、方法 前言指针结构体声明初始化使用组合引用结构体和指针结构体的标签 方法例子结合结构体总结 前言 我是一名多年Java开发人员,因为工作需要现在要学习go语言,Go语言之路是一个系列,记录着我从0开始接触Go…

[创业之路-390]:人力资源 - 社会性生命系统的解构与重构:人的角色嬗变与组织进化论

前言: 人、财、物、信息、机制、流程、制度、方法共同组合了一个持续的消耗资源、持续的价值创造、持续面临生存与发展、遗传与变异的社会性生命系统。 "人"是所有社会性生命系统最最基础性的要素,它弥漫在系统中多维立体空间的不同节点上&am…

JS执行器在UI自动化测试中的应用

前言 在进行UI自动化过程会遇到滚动条下拉、隐藏元素定位、只读属性元素的编辑、富文本处理等,此时可以使用JS执行器简化我们的一些处理操作。 具体应用 JS执行器的使用步骤: 1.先写个JS脚本,如果需要获取操作后的值,JS脚本前面…

解析Suna:全球首款开源通用AI智能体

导语: 嘿,哥们儿,最近 AI Agent 这块儿挺火的,有个叫 Suna 的开源项目冒出来挺快!听说只用了 3 周就开发出来了,但功能上感觉已经能跟那个商业版的 Manus掰掰手腕了。它能帮你搞定浏览器自动化、管文件、爬…

模板方法模式:定义算法骨架的设计模式

模板方法模式:定义算法骨架的设计模式 一、模式核心:模板方法定义算法骨架,具体步骤延迟到子类实现 在软件开发中,经常会遇到这样的情况:某个算法的步骤是固定的,但具体步骤的实现可能因不同情况而有所不…

浅谈Java 内存管理:栈与堆,垃圾回收

在Java编程世界里,内存管理是一项极为关键的技能,它就像程序运行背后的“隐形守护者”,默默影响着程序的性能与稳定性。今天,咱们就来简单学习一下Java内存管理中的两大核心要点:栈与堆的内存分配机制,以及…

【WebGL小知识】WebGL平台上不同Json的比较

今天来总结一下WebGL平台上不同Json插件的差别,话不多说直接开始。 JsonUtility JsonUtility是Unity自带的Json解析,无需另外安装插件。 优点: Unity自带,兼容性好,WebGL平台可以使用轻量级,性能较好。 …

4.22tx视频后台开发一面

总时长大概在一个小时,主要提问C、操作系统、计网以及数据库等方面,最后两个算法编程题。 一上来先介绍项目 Linux下的mybash命令处理器和内存池 mybash可以再总结归纳一下,一上来有点紧张没有条理 内存池是用边界标识法写的,…

从StandardMaterial和PBRMaterial到PBRMetallicRoughnessMaterial:Babylon.js材质转换完全指南

在现代3D图形开发中,基于物理的渲染(PBR)已成为行业标准。本文将深入探讨如何在Babylon.js中将传统StandardMaterial和PBRMaterial转换为PBRMetallicRoughnessMaterial,并保持视觉一致性。 为什么需要转换? PBRMetallicRoughnessMaterial作…

UEditor文档在Servlet项目上的应用

UEditor 是一款功能强大的富文本编辑器,在项目中应用广泛。 Ueditor使用 引入 UEditor 下载 UEditor:从 UEditor 官方网站(ueditor 官网)下载适合项目需求的版本。解压文件:将下载的压缩包解压到项目的静态资源目录…

ThinkPHP快速使用手册

目录 介绍 安装(windows环境) 安装Composer 安装ThinkPHP 目录结构 配置文件 第一个接口(Controller层) Hello World 自定义Controller 请求参数 获取查询参数(Get请求) 获取指定请求参数 获取…

面向 C# 初学者的完整教程

🧱 一、项目结构说明 你的项目大致结构如下: TaskManager/ ├── backend/ │ ├── TaskManager.Core/ // 实体类和接口 │ ├── TaskManager.Infrastructure/ // 数据库、服务实现 │ └── TaskManager.API/ // We…

Axios 的 GET 和 POST 请求:前端开发中的 HTTP 通信

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…

【前端】如何检查内存泄漏

在实际的场景中,如果观察到内存持续出现峰值,并且内存消耗一直没有减少,那可能存在内存泄漏。 使用 Chrome DevTools 来识别内存图和一些内存泄漏,我们需要关注以下两个方面: ● 使用性能分析器可视化内存消耗&#xf…

JavaScript的JSON处理Map的弊端

直接使用 Map 会遇到的问题及解决方案 直接使用 Map 会导致数据丢失,因为 JSON.stringify 无法序列化 Map。以下是详细分析及解决方法: 问题复现 // 示例代码 const myMap new Map(); myMap.set(user1, { name: Alice }); myMap.set(user2, { name: B…