当前位置: 首页 > news >正文

UE小白学习日记

Level

UE中的Level(关卡)和Unity中的Scene(场景)在概念和用途上非常相似,都是用来组织和管理3D环境的基本单位。让我为您详细对比一下:

相似之处:

  1. 它们都是游戏世界的容器,可以包含游戏对象、光照、地形等元素
  2. 都支持场景/关卡的切换和加载
  3. 都可以用来划分游戏内容,比如不同关卡或者不同区域

主要区别:

  1. 命名习惯不同 - UE使用"Level"这个术语,而Unity用"Scene"
  2. Level的组织方式 - UE支持多Level同时加载和显示(比如通过Level Streaming),而Unity的Scene虽然也支持叠加模式,但没有UE的层级管理那么灵活
  3. 子关卡系统 - UE有特殊的子关卡(Sub-Level)概念,可以更好地组织大型场景

Actor

UE中的Actor(演员)确实和Unity中的GameObject(游戏对象)有很多相似之处,它们都是场景中可放置对象的基类。不过还是有一些细微的区别:

相似之处:

  1. 都是场景中所有对象的基础类
  2. 都可以附加组件/组件(Unity用Component,UE用Component)
  3. 都支持父子层级关系
  4. 都有位置、旋转、缩放等变换属性

主要区别:

  1. Actor有更多专门的子类 - 比如Pawn(可被控制的角色)、Character(角色)等,而GameObject更倾向于通过组件来实现功能
  2. 组件管理方式不同 - UE中Actor必须有一个Root Component(根组件),其他组件都依附于此,而Unity的GameObject可以自由添加多个并列的Component
  3. 网络同步处理 - UE的Actor内置了网络复制功能,而Unity需要另外添加组件实现
  4. 生命周期 - UE的Actor有BeginPlay、Tick等生命周期函数,而Unity使用Start、Update等

从编程角度看,如果您习惯了Unity的开发方式,可以这样理解转换:

  • Unity的 GameObject.Find() → UE的 GetActorOfClass()
  • Unity的 Instantiate() → UE的 SpawnActor()
  • Unity的 transform组件 → UE的 RootComponent

说白了,Actor和Unity中的Empty Gameobject差不多,就是一个空的物体然后可以放很多的东西 

Mobility

UE中的Mobility(可移动性)是用来定义场景中物体或光源的移动属性的设置,它有三种状态:

  1. Static(静态)
  • 完全不能在游戏运行时移动或改变
  • 性能最好,因为引擎可以预先计算光照等效果
  • 适用于建筑物、岩石等永远不会移动的物体
  • 被烘焙进光照贴图中
  1. Stationary(固定)
  • 可以改变一些属性(比如光源的颜色和强度)
  • 但不能改变位置和旋转
  • 是静态和可移动之间的折中选择
  • 适用于需要改变强度的光源,如日光系统
  1. Movable(可移动)
  • 可以完全自由移动和改变
  • 性能消耗最大,因为需要实时计算
  • 适用于角色、车辆等需要移动的物体
  • 使用动态光照

从Unity的角度来理解:

  • Static类似于Unity中勾选了Static选项的物体
  • Movable类似于Unity中没有勾选Static的普通物体
  • Stationary在Unity中没有直接对应,但概念类似于Mixed lighting模式

Physics Asse

在UE中确实也有类似Unity的Rigidbody的功能,它叫做Physics Asset(物理资产),主要通过以下几种方式实现:

  1. 物理模拟组件:
  • Physics Constraint Component (物理约束组件)
  • Physics Handle Component (物理句柄组件)
  • Physics Spring Component (物理弹簧组件)
  1. 主要设置方式:
  • Simulate Physics (模拟物理) - 在Mesh Component中启用
  • 可以设置质量、是否受重力影响等物理属性
  • 可以通过Physical Material设置摩擦力、弹性等

从Unity转过来可以这样理解:

  • Unity的Rigidbody → UE的Simulate Physics
  • Unity的Collider → UE的Collision组件
  • Unity的Physics Material → UE的Physical Material

Geometry和Shapes的区别

UE中的Geometry和Shapes都是用于创建基础3D形状的,但它们的用途和特点不同:

Geometry(几何体):

  • 用于可见的视觉展示
  • 实际会被渲染出来
  • 包含完整的网格数据
  • 常用于临时的视觉原型或简单的游戏物体
  • 默认带有碰撞体积

Shapes(形状):

  • 主要用于碰撞检测
  • 默认是不可见的
  • 比Geometry更轻量
  • 专门用作触发器或碰撞体积
  • 计算性能更好

举个例子:

  • 如果你需要一个可见的立方体作为游戏中的箱子 → 使用Cube Geometry
  • 如果你只需要一个不可见的碰撞区域来触发事件 → 使用Box Shape

Shapes更像是Unity中的Collider组件,而Geometry更像是带有Mesh Filter和Mesh Renderer的基础3D物体。

虚幻引擎的标准目录结构 

虚幻引擎项目的标准目录结构:

Config/

  • 包含引擎和游戏的配置文件
  • 存放输入设置、引擎设置等

Content/

  • 游戏的主要内容文件夹
  • 包含所有资源(模型、材质、蓝图等)
  • 建议在Content下建立良好的子文件夹结构,如:
    • Blueprints/ (蓝图类)
    • Maps/ (关卡文件)
    • Materials/ (材质)
    • Meshes/ (3D模型)
    • Textures/ (贴图)

Source/

  • 包含所有C++源代码
  • 通常包含两个子文件夹:
    • ProjectName/ (项目主要代码)
    • ProjectNameEditor/ (编辑器相关代码)

Saved/

  • 临时生成的文件
  • 包含日志、配置缓存等
  • 通常不需要提交到版本控制

Intermediate/

  • 中间文件目录
  • 存放编译过程的临时文件
  • 不需要提交到版本控制

Binaries/

  • 编译后的二进制文件
  • 包含.exe和.dll文件
  • 通常不需要提交到版本控制

.uproject文件

  • 项目定义文件
  • 包含项目的基本信息和设置

蓝图中的变量

主要功能:

  1. 基础设置部分:
  • 变量命名(Variable Name): 当前设为"delay Time",用于在蓝图中引用这个变量
  • 变量类型: 选择为浮点数(float),适合存储带小数点的数值
  • 可编辑实例: 允许在对象实例上修改该变量的值
  • 私有/公开设置: 控制变量的访问权限
  • 类别(Category): 可以对变量进行分类管理,方便在大型项目中组织变量
  1. 高级设置中的CPF标记:
  • CPF_Edit: 允许在编辑器中修改该变量
  • CPF_BlueprintVisible: 使该变量在蓝图编辑器中可见和可访问
  • CPF_ZeroConstructor: 创建变量时使用零初始化
  • CPF_DisableEditOnInstance: 禁止在实例上修改这个变量
  • CPF_IsPlainOldData: 标记为简单数据类型,可以优化性能
  • CPF_NoDestructor: 不需要析构函数,用于简单类型
  • CPF_HasGetValueTypeHash: 支持哈希值计算,用于容器等数据结构
  1. 配置变量(Config Variable):
  • 允许变量值存储在配置文件中,这样可以在不重新编译的情况下修改值
  1. 临时(Transient):
  • 标记变量为临时的,意味着该变量不会被保存或加载
  • 通常用于运行时临时数据,不需要持久化存储
  1. 保存游戏(SaveGame):
  • 标记该变量可以在保存游戏时被序列化和存储
  • 当玩家加载存档时,这些变量的值会被恢复
  1. 高级显示(Advanced Display):
  • 将变量在属性面板中移到"高级"分类下
  • 用于隐藏不常用的设置,使界面更整洁
  1. 已废弃(Deprecated):
  • 标记变量为已废弃
  • 提醒其他开发者这个变量将在未来版本中移除
  • 通常会在废弃消息中说明替代方案
  1. 废弃消息(Deprecation Message):
  • 当变量被标记为已废弃时,可以在这里输入提示信息
  • 解释为什么废弃以及应该使用什么替代方案
  1. 已定义的属性标记: 这部分显示了所有应用到这个变量的CPF(Core Property Flags)标记,是一个只读的列表,显示当前变量的所有属性标记。

让我用具体的例子解释SaveGame这个选项:

想象你在玩一个RPG游戏:

  • 你的角色等级是50级
  • 背包里有100金币
  • 当前在森林地图

如果这些变量设置了SaveGame标记:

  • 当你点击"保存游戏"时,这些数据会被写入存档文件
  • 当你下次加载游戏时,这些数据会从存档文件中读取出来
  • 你的角色会恢复到:
    • 50级
    • 100金币
    • 森林地图位置

如果没有设置SaveGame标记:

  • 这些数据不会被保存到存档文件中
  • 加载游戏时会使用变量的默认值
  • 比如可能回到:
    • 1级(默认等级)
    • 0金币(默认金币)
    • 起始地图(默认位置)

所以SaveGame标记非常重要,它决定了哪些数据需要在玩家存档中保留。通常用于:

  • 角色属性(等级、生命值、经验值等)
  • 游戏进度(已完成的任务、解锁的成就等)
  • 玩家资源(金币、道具、装备等)
  • 游戏状态(当前位置、剧情阶段等)

相关文章:

UE小白学习日记

Level UE中的Level(关卡)和Unity中的Scene(场景)在概念和用途上非常相似,都是用来组织和管理3D环境的基本单位。让我为您详细对比一下: 相似之处: 它们都是游戏世界的容器,可以包含游戏对象、光照、地形等元素都支持场景/关卡的切换和加载都可以用来划分游戏内容,比如不同关…...

补充之前的一篇 MySQL 的索引为什么能加快查询速度

在之前的一篇文章中写了 MySQL 的索引为什么能加快查询速度,结合这两篇文章,相信你会对 MySQL 的索引有更深一步的了解 ​首先我们要理解一件事,无论什么数据库,它的数据一定都是存储在硬盘中的,而硬盘和内存之间的读…...

GoLand下载安装教程

一、goland环境配置 1.下载地址 https://golang.google.cn/dl/ 2.下载安装 3.添加环境变量 4.测试环境变量 输出Hello,World! 说明环境配置成功 二、goland安装 1.下载安装 https://www.jetbrains.com/go/download/download-thanks.html 2.激活使用 SFXUSA86FM-eyJsaWNlbnNl…...

GAN的应用

5、GAN的应用 ​ GANs是一个强大的生成模型,它可以使用随机向量生成逼真的样本。我们既不需要知道明确的真实数据分布,也不需要任何数学假设。这些优点使得GANs被广泛应用于图像处理、计算机视觉、序列数据等领域。上图是基于GANs的实际应用场景对不同G…...

[石榴翻译] 维吾尔语音识别 + TTS语音合成

API网址 丝路AI平台 获取 Access token 接口地址:https://open.xjguoyu.cn/api/auth/oauth/token,请求方式:GET,POST Access token是调用服务API的凭证,调用服务API之前需要获取 token。每次成功获取 token 以后只有…...

PHP Filesystem:深入解析与实战应用

PHP Filesystem:深入解析与实战应用 引言 PHP作为一种流行的服务器端编程语言,提供了强大的文件系统操作功能。本文将深入探讨PHP的Filesystem函数,这些函数允许开发者访问和操作服务器上的文件系统。无论是进行基本的文件操作,还是实现复杂的文件管理系统,PHP的Filesys…...

仓颉笔记——写一个简易的web服务并用浏览器打开

创建一个web服务端,同时创建一个客户端去读取这个服务端。 也满足浏览器打开web的需求。 直接上代码。 import net.http.* import std.time.* import std.sync.* import std.log.LogLevel// 1. 构建 Server 实例 let server ServerBuilder().addr("127.0.0.1&…...

yolov5+colab跑起来

教程1.先上传网盘再run 教程2.直接上传解压run 本人过程...

Windows下安装最新版的OpenSSL,并解决OpenSSL不是当前版本的问题,或者安装不正确的问题

文章目录 1. 文章引言1.1 需求描述1.2 简单介绍1.3 支持平台1.4 源码地址1.5 组件介绍2. 下载OpenSSL3. 安装OpenSSL5. 查看安装目录6. 解决OpenSSL的错误1. 文章引言 1.1 需求描述 今天接到一需求,解密php加密后的数据,由于php使用 openssl_encrypt的方式加密,java也需要使…...

HTML5 网站模板

HTML5 网站模板 参考 HTML5 Website Templates...

代码随想录算法训练营第三十二天|509.斐波那契数、70.爬楼梯、746.使用最小花费爬楼梯

目录 509.斐波那契数 动态规划五部曲: 1.确定dp数组(dp table)以及下标的含义 2.确定递推公式 3.dp数组如何初始化 4.确定遍历顺序 5.举例推导dp数组 70.爬楼梯 动态规划五部曲: 1.确定dp数组(dp table)…...

<C++学习>C++ Boost 数学与科学计算教程

C Boost 数学与科学计算教程 Boost 提供了强大的数学与科学计算功能模块,包括常用数学函数、特殊函数、矩阵运算、随机数生成器、统计分析工具等。这些工具覆盖了从基本数学操作到复杂科学计算的广泛场景。 1. Boost.Math 简介 Boost.Math 提供了丰富的数学功能&a…...

Spring Framework 5.3.x源码构建 (jdk-1.8, gradle 7.5.1, idea2024.3)

1、下载jdk安装并配置环境变量(自行百度) https://www.oracle.com/java/technologies/downloads/#java8 2、下载spring-framework源码,切换分支到5.3.x https://github.com/spring-projects/spring-framework.git 备用地址 https://gitco…...

有心力场的两体问题

有心力场中的两体问题是经典力学中的重要研究对象,中心力场问题通常涉及两个相互作用的物体(例如行星与恒星、电子与原子核等)。为了简化分析,问题往往可以转化为一个等效的单体问题。这种方法大大提高了问题的可解性,是解决两体和多体问题的基础步骤之一。将两体问题简化…...

【Pandas】pandas Series rdiv

Pandas2.2 Series Binary operator functions 方法描述Series.add()用于对两个 Series 进行逐元素加法运算Series.sub()用于对两个 Series 进行逐元素减法运算Series.mul()用于对两个 Series 进行逐元素乘法运算Series.div()用于对两个 Series 进行逐元素除法运算Series.true…...

Openstack持久存储-Swift,Cinder,Manila三者之间的区别

总结不易,给个三连吧!!! 补充: 文件共享存储服务Manila 在OpenStack生态系统中,Cinder和Manila分别提供了两种不同类型的存储服务,类似于传统的SAN(存储区域网络)和NAS&…...

单片机(MCU)-简单认识

简介: 内部集成了CPU,RAM,ROM,定时器,中断系统,通讯接口等一系列电脑的常用硬件功能。 单片机的任务是信息采集(依靠传感器),处理(依靠CPU)&…...

Redis常见知识点

1、什么是缓存穿透? 缓存穿透是指查询一定某个key是否存在,每次不存在都查询DB会把DB压垮。 解决方案的话,我们通常都会用布隆过滤器来解决。 布隆过滤器:在查找一个数是否在一个集合中使用的,通过对数组长度取模&a…...

SQL进阶实战技巧:统计相同时刻多地登陆的用户?

目录 0 问题描述 1 数据准备 2 代码实现 3 问题拓展 3.1 查询每个用户登录日期的最大空档期...

【数据库初阶】表的增删改语句

🎉博主首页: 有趣的中国人 🎉专栏首页: 数据库初阶 🎉其它专栏: C初阶 | C进阶 | 初阶数据结构 亲爱的小伙伴们,大家好!在这篇文章中,我们将深入浅出地为大家讲解 MySQL…...

水水水水水水

为了拿推广卷,但不想把我原本完整的文章拆成零散的多篇,只能出此下策随便发一篇,认真写的都笔记专栏里 网络技术:数字时代的基础设施 在当今社会,网络技术无疑是推动现代生活和经济发展的核心动力之一。从简单的信息传…...

基于STM32的智能电表可视化设计:ESP8266、AT指令集、python后端Flask(代码示例)

一、项目概述 随着智能家居的普及,智能电表作为家庭用电管理的重要工具,能够实时监测电流、电压及功率,并将数据传输至后台进行分析和可视化。本项目以STM32C8T6为核心,结合交流电压电流监测模块、ESP8266 Wi-Fi模块、OLED显示屏…...

SpringBoot的@Scheduled和@Schedules有什么区别

Scheduled 的详细解析 参数详解 cron: 使用Cron表达式来指定复杂的调度模式。Cron表达式的格式如下: 秒(0-59)分钟(0-59)小时(0-23)日(1-31)月(1-12 或 JAN-…...

Qiskit快速编程探索(进阶篇)

五、量子电路模拟:探索量子世界的虚拟实验室 5.1 Aer模拟器:强大的模拟引擎 在量子计算的探索旅程中,Aer模拟器作为Qiskit的核心组件之一,宛如一座功能强大的虚拟实验室,为开发者提供了在经典计算机上模拟量子电路运行的卓越能力。它打破了硬件条件的限制,使得研究者无…...

【漫话机器学习系列】043.提前停止训练(Early Stopping)

提前停止训练(Early Stopping) 提前停止(Early Stopping) 是一种在训练机器学习模型(尤其是深度学习模型)时常用的正则化技术,用于防止过拟合并提升模型的泛化能力。它通过监控验证集的性能&am…...

Linux(上):基本知识篇

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Linux初识1 Linux简介2 Linux学习环境配置(1)安装Linux(2)FinalShell远程连接Linux服务器二、Linux基础命令1 Linux目录结构,根目录 /2 Linux命令基础(1)什么是命令、命令行?(2)…...

Python爬虫与1688图片搜索API接口:深度解析与显著收益

在电子商务的浩瀚海洋中,数据是驱动业务决策的核心引擎。阿里巴巴旗下的1688平台,作为全球领先的B2B在线市场,不仅汇聚了海量的商品信息,还提供了丰富的API接口,为开发者提供了强大的数据获取工具。本文将深入探讨1688…...

生物医学信号处理--随机信号通过线性时不变系统

本章主要讨论 (1)输出、输入间自相关函数和功率谱的关系以及两者间的互相关函数和互谱,把它们和系统的冲激响应与频率特性联系起来。这些是用于随机问题的基本关系,将分别讨论连续时间和离散时间两种情况。 (2)初步介绍一些线性系统在处理随机信号时的应用。但是,应该指出,…...

《HeadFirst设计模式》笔记(上)

设计模式的目录: 1 设计模式介绍 要不断去学习如何利用其它开发人员的智慧与经验。学习前人的正统思想。 我们认为《Head First》的读者是一位学习者。 一些Head First的学习原则: 使其可视化将文字放在相关图形内部或附近,而不是放在底部…...

Ubuntu更改内核

需求背景: 由于软件需要在较低版本或者指定版本才可以运行 版本: 配置文件: vi /etc/default/grub 启动界面: 可运行版本: 解决方案: 方案1、更改启动顺序 sudo vi /etc/default/grub 方案2、调整启动顺…...

广告公司咋找客户?怎么获取目标企业的采购部联系方式

在广告行业,获取目标企业采购部的联系方式是开展业务、拓展客户的关键一步。分享一些实用的方法,希望能帮到正在为获取联系方式而发愁的广告行业的朋友们。 一、利用官方网站和社交媒体平台 1. 官网 大多数企业的官方网站都会提供一些联系方式&#xf…...

个人在技术领导力方面的自我反思与提升

大家好!我是 [数擎 AI],一位热爱探索新技术的前端开发者,在这里分享前端和 Web3D、AI 技术的干货与实战经验。如果你对技术有热情,欢迎关注我的文章,我们一起成长、进步! 开发领域:前端开发 | A…...

鸿蒙面试 2025-01-11

ArkTs 和TS的关系? ArkTS(方舟开发语言)与 TypeScript(TS)存在紧密联系,同时也有显著区别: 联系 语法基础:ArkTS 在语法层面大量借鉴了 TypeScript ,TypeScript 里诸如…...

Vim的使用方法

Vim的使用方法 来自Linux 日常操作与基础知识 | archlinux 简明指南 终端编辑器 vim 的使用 我们需要掌握一个能在终端中进行文本编辑的软件,这里介绍 vim。 创建并编辑名为 hello.txt​ 的文件: vim hello.txt此时可以看到进入了一个空的界面&#xf…...

什么是卷积网络中的平移不变性?平移shft在数据增强中的意义

今天来介绍一下数据增强中的平移shft操作和卷积网络中的平移不变性。 1、什么是平移 Shift 平移是指在数据增强(data augmentation)过程中,通过对输入图像或目标进行位置偏移(平移),让目标在图像中呈现出…...

Java基础:equals()方法与==的区别

1、超类Object的equals()底层原理: 在Object超类中已经提供了equals()方法,源码如下: public boolean equals(Object obj) { return (this obj); } 所有的对象都拥有标识(内存地址)和状态(数据&a…...

备战蓝桥杯 队列和queue详解

目录 队列的概念 队列的静态实现 总代码 stl的queue 队列算法题 1.队列模板题 2.机器翻译 3.海港 双端队列 队列的概念 和栈一样,队列也是一种访问受限的线性表,它只能在表头位置删除,在表尾位置插入,队列是先进先出&…...

《分布式光纤测温:解锁楼宇安全的 “高精度密码”》

在楼宇建筑中,因其内部空间庞大,各类电器设施众多,如何以一种既高效又稳定,兼具低成本与高覆盖特性的方式,为那些关键线路节点开展温度监测,是目前在安全监测领域一项重点研究项目,而无锡布里渊…...

每日一题(一):识别字符串中的字符是否唯一

目录 一、前言 二、题目 三、题目分析 (一)明确需求 (二)分析思路 四、将思路转变为一个程序 C代码 C代码 注释: 五、总结 一、前言 作为博主在本系列文章中的第一篇文章,博主先对本系列做一个简单的介绍…...

【翻译】2025年华数杯国际赛数学建模题目+翻译pdf自取

保存至本地网盘 链接:https://pan.quark.cn/s/f82a1fa7ed87 提取码:6UUw 2025年“华数杯”国际大学生数学建模竞赛比赛时间于2025年1月11日(周六)06:00开始,至1月15日(周三)09:00结束&#xff…...

如何稳定使用 O1 / O1 Pro,让“降智”现象不再困扰?

近期,不少朋友在使用 O1 或 O1 Pro 模型时,都会碰到“降智”或“忽高忽低”的智力波动,比如无法识图、无法生成图片、甚至回答准确度也不稳定。面对这些问题,你是不是也感到头疼呢? 为了找到更可靠的解决办法&#xf…...

【Linux】4.Linux常见指令以及权限理解(2)

文章目录 3. Linux指令3.1 ls指令和rm指令补充3.2 man指令(重要)3.3cp指令(重要)输出重定向3.3.1ubuntu20.04如何安装tree 3.4 mv指令(重要)mv指令更改文件名mv指令更改目录名 如何看待指令指令的重命名3.5…...

神州数码交换机和路由器命令总结

神州数码交换机和路由器命令总结 一、神州数码交换机命令总结 1. 交换机恢复出厂设置及其基本配置. 1) //进入特权模式 2) del startup.cfg 2. Telnet方式管理交换机. 1) //进入全局配置模式 2) enable password 0 [密码] 3) Line 0 4 4) Password 0 [密码] 5) Login 3. 交换机…...

echarts: 双柱柱状图同时两侧双y轴问题

问: 现在又有一个问题:echarts双柱柱状图,同时左侧的y轴有刻度,右侧的y轴也有刻度,双y轴,y轴每一个刻度都对应虚线,这时候会有一个问题,左侧的y轴的虚线和右侧y轴的虚线没对应&…...

计算机网络八股文学习笔记

文章目录 计算机网络基础网络分层模型OSI七层模型TCP/IP四层模型 HTTP从输入URL到页面展示到底发生了什么?(非常重要)HTTP状态码HTTP Header中常见的字段有哪些?HTTP和HTTPS有什么区别?(重要)HTTP/1.0和HTTP/1.1有什么区别?HTTP/1.1和HTTP/2.0有什么区别?HTTP/2.0和HTTP/3…...

java中json字符串键值获取

<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.83</version> </dependency>使用fastjson依赖 JSONObject jsonObject JSON.parseObject(s); 这个jsonObject本质就是一个map&…...

MySQL的安装

MySQL典型的关系型数据库&#xff08;RDBMS&#xff09;&#xff1a;oracle、MySQL、SqlServer MySQL的版本 5.5~5.7、8.0 MySQL的安装和配置 下载地址&#xff1a; https://downloads.mysql.com/archives/community/ 安装包 (x86, 64-bit), MSI Installer 执行下一步即…...

Open FPV VTX开源之第一次出图

Open FPV VTX开源之第一次出图 1. 源由2. 连线2.1 飞控2.2 调试 3. serial3.1 启动log - uboot3.2 登录版本 - linux3.3 获取有线IP 4. ssh - linux5. PixelPilot出图6. 总结7. 参考资料8. 补充 - 8812AU网卡 1. 源由 在《Open FPV VTX开源之硬件规格及组成》章节中&#xff0…...

R语言在森林生态研究中的魔法:结构、功能与稳定性分析——发现数据背后的生态故事!

森林生态系统结构、功能与稳定性分析与可视化研究具有多方面的重要意义&#xff0c;具体如下&#xff1a; 一、理论意义 ●深化生态学理论 通过研究森林生态系统的结构、功能与稳定性&#xff0c;可以深化对生态系统基本理论的理解。例如&#xff0c;生物多样性与生态系统稳定性…...

qt QLabel QPushButton 控件重写paintEvent后 控件消失

qt 继承自PushButton控件的类 重写paintEvent后 控件消失 解决办法&#xff0c;在paintevent结尾加上这条语句&#xff1a;QPushButton::paintEvent(event); void MyButton::paintEvent(QPaintEvent *event) {QPushButton::paintEvent(event); } 这里QPushButton不能写成Q…...