1.(解密AirSim-初稿)第一章:初识AirSim
2.学习java难吗?一般要学多久?
3.越学越多——获取虚幻源码
4.UE4学习笔记(1):UE源码下载编译+安卓打包
5.AirSim学习笔记(三)Using SITL with AirSim
(解密AirSim-初稿)第一章:初识AirSim
揭示AirSim的虚幻神秘面纱:第一章 - 初识AirSim世界
AirSim,这个由微软于年推出的源源开源跨平台无人机与无人车仿真平台,以其卓越的码虚物理和视觉仿真能力在AI研究领域崭露头角,特别是幻开深度学习的探索。它以虚幻引擎的虚幻强大基础为依托,支持PX4和Unity平台,源源usdt众筹预约模式源码为用户提供沉浸式的码虚体验。虽然AirSim的幻开原始版本已停止更新,但它的虚幻接力棒已交给更安全、易用的源源"Project AirSim",后者正成为新的码虚研发焦点。
AirSim与虚幻引擎的幻开紧密关系就像血脉相连,作为引擎的虚幻扩展插件,虚幻引擎在游戏开发与模拟领域的源源广泛应用使得AirSim的潜力得以充分发挥。在踏上AirSim之旅之前,码虚确保你的设备拥有足够的性能,比如Windows /的6核处理器和NVIDIA GeForce RTX 显卡,虽然Linux支持,但推荐Windows用户,本书的所有实例都将基于此。
对于Linux用户,Epic Games程序的兼容性可能略有挑战,最佳实践是先在Windows上创建场景工程,再进行复制。性能的关键在于硬盘读写速度、CPU和显卡的性能,初次编译"Blocks Landscape Mountains"环境可能需要耗时分钟。虽然AirSim v1.8.1已停止更新,但旧版本依然可以免费获取,推荐使用Visual Studio Community ,它是免费且功能强大的开发工具。
安装流程开始于选择所需组件并登录微软账号,其中首要步骤是安装虚幻引擎。访问官方网站,通过Epic Installer免费下载虚幻引擎,登录Epic账号后,选择"虚幻引擎"选项,即可开始学习和获取相关资源。
虚幻引擎的库管理功能强大,支持多种版本如4.、4.、5.1等,安装后,你的桌面会添加一个快捷方式。通过"设置为当前项"选项,你可以将其设为默认引擎。"引擎版本"、"我的工程"和"保管库"分别显示了安装的版本、创建的工程和购买的场景,提供了"创建工程"、外传引擎源码"添加到工程"和"安装到工程"等一系列操作选项。
在使用Epic Games启动器时,为了保证兼容性,建议设置语言为英文,避免中文路径可能导致的问题。一旦虚幻引擎安装完成,接下来就是通过git获取AirSim的源代码,然后在VS命令提示符中进行下载、编译和生成Plugins文件夹的步骤。
在"Block Environment"中,你可以测试安装配置。打开AirSim\Unreal\Environments\Blocks,运行update_from_git.bat,启动Visual Studio ,选择"DebugGame_Editor"和"Win"模式,启动调试,你将看到四旋翼或小车在眼前。这标志着你的AirSim安装已成功。
在AirSim的世界里,你将看到一个主面板,包括菜单栏和工具栏(停止仿真)等功能。后续章节将深入剖析每个面板的细节。关闭虚幻引擎时,Visual Studio会自动停止调试。至此,你的AirSim之旅已经开启,可以开始进行激动人心的仿真体验了。
学习java难吗?一般要学多久?
前言回想几年前的自己,在学校里面左手稳着键盘,右手捏住鼠标,不停的动着右手的中指,一声Penta KIll把自己带入了一个虚幻的世界
日复一日,之前那个好学又勤奋的自己慢慢开始转变,从每天的外卖到内急的时候都感觉在浪费时间,此时我已经知道现在的自己已经颓废了,就这样浑浑噩噩的过了三年
直到有一天,在睡梦中听到一声尖叫“啊!!!我找到工作了!!!面试官跟我说给我6.5K的实习工资!!!啊!!!”
此时的提供源码oa我只能在被窝里面默默的哭泣,回想自己的三年时光,通过自己的努力上了黄金,然而这些跟室友找到工作相比,我的内心是无比的空虚、害怕
眼里已经打湿了我的枕头,擦干眼角上的泪水,用被子掩盖住泪湿了的枕头,起床洗漱,我发誓,我的人生转折点就从此刻开始,我要努力学习Java,每天必须保持6个小时的时间去学习,一定要保持自己精神状态,利用好每一分每一秒
开始整理我的学习路线,保存到我成为高级Java工程师
阶段1 java语言基础
1-1-Java基础语法
1、第1节 java运行环境
2、第2节 HelloWorld案例
3、第3节 关键字&标识符
4、第4节 常量&变量
5、第5节 数据类型转换
6、第6节 运算符
7、第7节 方法入门
8、第8节 JDK9新特性-Jshell
9、第9节 选择结构-if语句-switch语句
、第节 循环结构-for-while-do..while
、第节 开发工具-IDEA
、第节 方法复习
、第节 方法重载
、第节 数组
小总结:
这个阶段我花了半个月的时间去学习,也就是个小时的时间,其中有个小时是我用来看理论的知识,另外的个小时是我用来给自己练手的,每一个知识点我都要做很多的题目,直到自己拿到题目的时候,能够把自己的思路转为代码实现
毫无疑问,这个阶段最耗时的自然是循环结构、选择结构,因为这两个知识点对于一个初学者来说很不友好,不仅代码量增加了,逻辑思维也是很绕的,如果不保持自己的思路清晰,你就理解不了他每一步的结果
然后就是数组,这一个阶段可以说是全新的阶段,我们可以把我们需要的数据都保存在数组里面,在这个知识点结束之后我还做了一个数组版的学生管理系统
1-2 -面向对象和封装
1、1_2_1__面向对象思想的概述
2、1_2_1__面向对象思想的举例
3、1_2_1__类和对象的关系
4、1_2_1__类的exosip源码修改定义
5、1_2_1__对象的创建及其使用
6、1_2_1__手机类练习
7、1_2_1__一个对象的内存图
8、1_2_1__两个对象使用同一个方法的内存
9、1_2_1__两个引用指向同一个对象的
、1_2_1__使用对象类型作为方法的参
、1_2_1__使用对象类型作为方法的返
、1_2_1__成员变量和局部变量的区别
、1_2_1__面向对象三大特征之封装性
、1_2_1__private关键字的作用及使用
、1_2_1__练习使用private关键字定义
、1_2_1__this关键字的作用
、1_2_1__构造方法
、1_2_1__定义一个标准的类
小总结:
这一个阶段花的时间足足有一个月,时间的分配也是按照%的时间去看理论,%的时间去动手敲代码
我觉得这个阶段每一个知识点都是特别的重要,在这个阶段我学会了什么是对象,学会了如何面向对象编程,也学会了如何使用对象编程去偷懒,把重复的事情都封装成了一个对象,交给这个对象去帮我做
1-3-Java语言高级
1、-常用API_1
2、-继承与多态
3、-常用API第二部分
4、-集合
5、-异常与多线程
6、-File
7、-网络编程 提取码:s5ks
8、-JDK8新特性
9、-基础加强
、-MySQL
、 -JDBC
小总结:
是的,这个阶段我花了两个月,一个月学完JavaSE,然后一个月学完了MySQL跟JDBC,话说这个阶段是最难的,也是最重要的,这个阶段的东西你学不懂就代表你后面的知识都处于一个危机边缘
在这个阶段我做了四个小项目,和一些零零碎碎的练习题,代码加起来应该有三四万行了吧;其中有三个项目是学生管理系统,我从数组版把它改为了集合版,然后又改为了IO版,最后改为了MySQL版;然后还做了一个ATM小型的桌面程序
然后个人感觉我在这个阶段学得是比较扎实的,期间还去看了许多的集合的源码,虽然有的看不懂,但是对于我一个初学者来说已经很了不起了
阶段2 JavaWeb+旅游网
小总结:
这个阶段的知识非常多,我不仅学习了前端三剑客,还学了JavaWEB、JSP、众生源码JSTL、EL,然后为了做一个项目去练手,还学习了Redis和Maven
这个阶段我花了两个月的时间,包括跟着做好这个项目,因为我前面的基础部分学得比较扎实吧,所以感觉这部分比较简单,难点就是JavaWEB的过滤器,这个知识点我花的时间比较多
然后就是大概的从面向对象编程转为了面向接口编程了
HTML和CSS
1、第1节 概念介绍
2、第2节 基本标签
3、第3节 表单标签
4、第4节 CSS概述
5、第5节 CSS_选择器
6、第6节 CSS属性
7、第7节 CSS_案例-注册页面
JavaScript
1、 JavaScript_简介
2、 JavaScript基础语法
3、 JavaScript运算符
4、 JavaScript特殊语法
5、 JavaScript_语法_流程控制语
6、 JavaScript_对象
7、 DOM和事件的简单学习
8、 BOM对象
9、 DOM对象
、JavaScirpt中的事件
BootStrap
1、 快速入门
2、Bootstrap_栅格系统
3、Bootstrap_全局CSS样式
4、Bootstrap_组件和插件
5、案例_旅游网
XML
1、 xml基础
2、 xml_约束
3、 xml_解析
Tomcat
1、web相关概念
2、 tomcat基本操作
3、 tomcat_部署项目
-Servlet和HTTP请求协议
1、Servlet_快速入门
2、Servlet_生命周期方法
3、Servlet_3.0注解配置
4、 IDEA与tomcat相关配置
5、 Servlet_体系结构与urlpartten配置
6、 HTTP请求协议
-Request和Respons
1、 Request原理和继承体系
2、 Request_获取请求数据
3、 请求转发和request共享数据
4、 Request_获取ServletContext
5、 request登录案例
6、 HTTP响应协议
7、 response之重定向
8、 response之相对路径和绝对路径
9、 response之输出数据
、 response之验证码
、 ServletContext对象
、 文件下载
-Cookie和Session
1、第1节 Cookie快速入门
2、第2节 Cookie_细节
3、第3节 Cookie案例
4、第4节 JSP改造Cookie案例
5、第5节 Session快速入门
6、第6节 Session细节
7、第7节 Session之验证码案例
-JSP,EL和JSTL
1、第1节 JSP基础语法
2、第2节 MVC
3、第3节 EL介绍和运算符
4、第4节 EL获取域中存储的数据
5、第5节 JSTL常用标签
-综合案例(用户信息)
1、第1节 登录功能
2、第2节 添加删除修改功能
3、第3节 删除选中功能
4、第4节 分页查询功能
5、第5节 复杂条件查询功能
-Filter和Listener
1、第1节 Filter快速入门
2、第2节 Filter细节
3、第3节 Filter案例
4、第4节 监听器
-Jquery
1、第1节 JQuery基础
2、第2节 JQuery选择器
3、第3节 Jquery基础案例
4、第4节 JQuery动画和遍历
5、第5节 JQuery事件绑定和切换
6、第6节 Jquery高级案例
-Ajax和JSON
1、第1节 原生JS方式实现Ajax
2、第2节 JQuery方式实现Ajax
3、第3节 JSON基础语法
4、第4节 JSON_解析器
-Redis
1、第1节 Redis环境搭建
2、第2节 Redis命令操作
3、第3节 Redis持久化
4、第4节 Jedis代码操作
5、第5节 Jedis连接池
6、第6节 redis案例
-Maven基础
1、第1节 基本概念
2、第2节 maven的安装和仓库种类
3、第3节 maven标准目录结构和常用命令
4、第4节 maven生命周期和概念模型图
5、第5节 使用骨架创建maven的java工程
6、第6节 maven工程servlet实例
-旅游网
1、 准备工作
2、 注册功能
3、 登陆和退出功能
4、 BaseServlet抽取
5、 分类数据展示功能
6、 旅游线路分页展示分页展示
7、 旅游线路查询
8、 旅游线路详情
9、 旅游线路收藏
阶段三:基本框架SSM
小总结:
这个阶段相对于JavaWEB来说还是比较简单的,少了很多的代码量,但是却多了很多的配置,稍微不注意就会把这些配置给搞错,期间出现了好几次注入bean失败的错误,这是我最不能够容忍的,同样的错误居然出现了好几次,而且都是没有给service加上@Service这个注解导致的;所以,在同一个地方跌倒多次是最不应该的,以后一定的加强注意了
在此期间,我还把JavaWEB做的那个项目改为了SSM版的,在改的过程中才体会到这些代码真的是很浪费,之前一个一个参数的接收,现在只需要一个对象就可以接收到了,而且更加的让我明白面向接口编程的含义了
阶段3 1.Mybatis
1、.Mybatis课程介绍及环境搭建
2、.Mybatis入门案例
3、.自定义Mybatis框架
4、.自定义Mybatis框架基于注解开发
5、.使用Mybatis完成CRUD
6、.使用Mybatis完成DAO层的开发
7、.Mybatis的连接池及事务
8、.动态SQL
9、.Mybatis的多表操作
、.JNDI扩展知识
、.Mybatis的缓存
、.Mybatis注解开发
阶段3 2.Spring
1、.Spring框架简介
2、.程序间耦合
3、.Spring的 IOC 和 DI
4、.Spring的常用注解
5、.基于XML的IOC的案例1
6、.Spring的新注解
7、.银行转账案例
8、.面向切面编程 AOP
9、.JdbcTemplate的基本使用
、.Spring中事务控制
阶段3 3.SpringMVC
1、.SpringMVC概述及入门案例
2、.参数绑定及自定义类型转换
3、.SpringMVC常用注解
4、.SpringMVC返回值类型及响应数据类型
5、.文件上传
6、.异常处理及拦截器
7、.SSM整合案例
阶段四:高级框架
小总结:
这个阶段可不止Spring Boot,还有springcloud,springsecurity等等这些框架,就不一一列出来了,资料网上一大堆
学了Spring Boot之后你才会发现,SSM是多么的麻烦,Spring Boot为不仅为我们减少了代码量,还为我们减少了很多的配置,采用注解的方式
当然,这么智能的框架,我能不把做的项目改为Spring Boot版本吗?
阶段4 4.Spring Boot
1、.spring boot 介绍
2、.spring boot 入门
3、.spring boot 原理分析
4、.spring boot 配置文件
5、.spring boot 集成 提取码:ywin
阶段4 5.Git
1、.Git简介及安装使用
2、.连接远程仓库
3、.Git分支
参考:《最新Java基础精讲视频教程和学习路线!》
原文链接:网页链接
越学越多——获取虚幻源码
游戏开发领域,知识永无止境。
那么,如何获取虚幻引擎的源码呢?
获得源码方法一:
官方教程:unrealengine.com/zh-CN/...
第一步:关联账户
1. 打开Epic Games启动器,点击管理账户后,跳转网页。
2. 如果网页无法打开,直接访问unrealengine.com/accoun...
3. 进入后,点击关联GitHub账户,点击授权EpicGames按钮,完成OAuth应用授权流程。
4. 接收邮件,加入GitHub上的@EpicGames组织。
第二步:下载源码
1. 登录GitHub账号。
2. 在GitHub个人页面点击右上角Your profile,进入后点击这个图标(有这个图标表示已经加入虚幻组织)。
3. 进入后,找到虚幻源码仓库,双击进入。
4. 下载源码。
第三步:打开源码文件
1. 下载后解压,地址不能有中文和空格。
2. 运行setup.bat,可能报错无法下载。
- 第一种错误:Failed to download 'cdn.unrealengine.com/de...': 远程服务器返回错误: () 已禁止。 (WebException)
解决办法:要解决此问题,您需要获取位于此处的文件:github.com/EpicGames/Un...
然后替换engine/build/commit.gitdeps.xml版本中的文件。
文件在这,点击下载Commit.gitdeps.xml。
- 第二种错误:下载至%时,下载失败。
解决办法:UE4源码下载对于文件路径长度有要求,将文件夹名字改短即可,6个字符长度。
再次运行Setup.bat,即可成功。这个阶段时间很长。
双击运行GenerateProjectFiles.bat文件,运行结束会生成UE5.sln文件,这个就是源码啦!
获取源码方法二:
这个方法适合只是想要了解学习引擎底层原理,并不用于编译的情况。
快速打开代码去查看,一般用于非程序人员想要进阶了解引擎原理的时候。
前提,安装Visual Studio。
第一步:打开虚幻引擎工程。
第二步:新建蓝图类,比如actor。
第三步:新建C++组件,选择actor组件。
第四步:创建类。
第五步:完成,在Visual Studio里查看代码。
UE4学习笔记(1):UE源码下载编译+安卓打包
注:该笔记以UE4..2在windows平台为例,vs版本为
1.关联github和Epic账户
要在github上获取UE4源码需要先关联账户,否则找不到源码,网页
按照官网提供流程即可完成 GitHub上的虚幻引擎 - Unreal Engine
记得确认邮件,否则还是(当初就是忘记了,卡了好一会儿)
2.下载UE4源码
在 Releases · EpicGames/UnrealEngine (github.com)中选择自己需要的版本(我使用的是4..2),这步很简单,但需要注意的是还需要将Commit.gitdeps.xml文件也一并下载,用于替换同名文件(有些版本则没有这样的文件),不替换的话后续会报错(之后步骤中会提到)
解压后目录如下:
3.执行bat文件
(1)点击运行setup.bat,没有替换Commit.gitdeps.xml文件可能会出现如下问题:
(2)点击运行GenerateProjectFiles.bat,此过程可能会出现如下问题:
未找到框架 .NETFramework Version=v4.6.2
只需要在VS Installer中选中安装就行:
完成后会生成UE4.sln文件
4.生成
VS打开UE4.sln,开始生成:
但是生成过程中我出现了这样的问题:
UE4 fatal error C: 编译器限制: 达到内部堆限制
error C: 超过了 PCH 的虚拟内存范围问题解决
我出现这样问题的原因是我的C盘空间不够大(分区的时候给的比较少),托管系统设置在C盘,导致无法分配足够的虚拟内存,设置为空间足够的盘即可。
步骤:电脑->属性->高级系统设置->高级->性能设置->高级->更改
OK,成功编译完成
5.安卓打包
该过程有官方文档,并且比较繁琐,直接给出链接:
设置虚幻的Android SDK和NDK | 虚幻引擎文档 (unrealengine.com)
UE部署到Android以及杂症的解决 - 知乎 (zhihu.com)
我就提一下自己遇到的问题,在UE4中进行安卓打包的时候遇到了这样的问题:
原因在于SetupAndroid.bat中,SDK Platform的版本选择是,而在UE项目设置->平台 - Android SDK中的SDK API Levle默认选择latest。但是我安装AS的时候默认给我安装了最新的Android API (此时latest指向的是版本),导致冲突。解决方法是UE项目设置中手动设置指定版本,或者在AS中卸载高于版本的Android API。
OK,打包成功!!!
6.打开游戏
但是,是的,还有但是(都最后一步了,还有问题OVO!!!),在手机上下载安装,打开后是这样的:
原来是因为打包除了生成apk文件还生成了obb,至于Google Play Store Key应该就是一个密钥了。
解决方法是在UE项目设置->Android中勾选“将游戏数据打包至.apk中”,我们可以看到对这个勾选项的解释:
行,勾选后重新打包,成功运行:
AirSim学习笔记(三)Using SITL with AirSim
使用AirSim实现SITL的详细步骤如下: 1. 安装虚幻引擎1.1.1 下载并安装Epic Game Launcher
1.1.2 通过Launcher安装Unreal游戏引擎
1.1.3 安装Visual Studio ,确保选择“桌面开发C++和Windows SDK .0.”选项
1.1.4 使用Git安装AirSim源码
2. 测试Unreal和AirSim2.1.1 进行环境配置,如安装Landscape Mountains场景
2.1.2 在AirSim根目录下编译源码,检查“AirSim\Unreal”目录下的“Plugins”插件生成情况
2.1.3 使用Developer Command Prompt for VS 运行编译后的项目,确保Unreal和AirSim安装成功
3. 配置背景环境LandscapeMountains3.1.1 安装并设置Landscape Mountains场景,注意版本兼容性
3.1.2 在Unreal中新建C++类,为项目编译生成Visual Studio工程文件
3.1.3 将AirSim插件复制到LandscapeMountains本地文件夹,并修改相关配置文件
4. 在Windows中构建AirSim4.1.1 安装虚幻引擎和Visual Studio
4.1.2 克隆AirSim源代码,进入AirSim目录,使用Developer Command Prompt for VS 构建项目
4.1.3 配置并启动Unreal编辑器,完成AirSim环境的构建
5. 使用AirSim5.1.1 启动Unreal编辑器并加载预设环境,调整设置以适应SITL使用
5.1.2 通过遥控器或键盘控制无人机,实现SITL与AirSim的结合使用
6. AirSim与ArduPilot SITL结合使用6.1.1 设置ArduPilot SITL环境,确保与AirSim兼容
6.1.2 在AirSim中指定ArduPilot设备参数,如IP地址和端口
6.1.3 启动AirSim和ArduPilot SITL,进行多旋翼无人机的模拟操作
通过上述步骤,可以成功实现使用AirSim与ArduPilot SITL结合进行无人机模拟和控制。请注意在多设备仿真时可能遇到的平台差异问题,并参考相关讨论线程进行调整。2024-11-30 12:03
2024-11-30 11:57
2024-11-30 11:46
2024-11-30 11:35
2024-11-30 11:07
2024-11-30 10:38