Unity开发者快速认识Unreal 的BluePrint(二)
前言
前一篇是通过UMG编辑器制作的一个简单ui功能,记录Unity开发者使用BluePrint需要特别注意的地方,这一篇是分析和理解对于场景中的3D物体交互的BluePrint怎么制作,以及需要注意的一些关键点!个人觉得最快的学习方式就是对比,入门了之后就是一些蓝图节点和脚本API的熟练使用,重复练习的一个过程!说句题外话,人一定要学会给自己找事做,有计划,“要知道现在正在做什么,想要做什么,明天在做什么,明天要做什么”。
一、World Outliner 窗口给我们提供了哪些信息,细节面板有哪些重要的信息需要注意?
1.unreal中的World Outliner(世界大纲面板)对应的是Unity的Hierarchy(层次面板),主要是游戏中对象的显示和状态,Unity开发者使用Unity的时候,层次面板用来编辑GameObject的结构,和选中修改检视面板(Unreal中叫细节面板)中组件的属性值,还有就是在场景窗口中中聚焦到该对象!虚幻中我看了一下,感觉最重要的就是Type这一列的值,通过该值我们就知道了,对象是什么类型的,具体可以做哪些操作,Unity则为什么不需要知道它是什么类型??我觉得因为Unity中的所有的物体都是GameObject的原因,所有的对象都是通过挂载,把功能挂载对GameObject上的,Unreal虽然是所有的物体都是Actor,看蓝图的结构面板,物体更像是组合起来的,添加一个Component就会在下面添加一个,就像往列表里面添加元素,(界面上表现是这样的,实际底层是 啥样的,我也不知道,我猜都差不多,都是维护的一个集合类型的数据结构来管理组件)
2.细节面板的属性值是根节点的属性值,在该物体的蓝图界面中的属性面板和这个一样的,点到同意物体时,属性都是一样的。右上角Editor BluePrint按钮可以打开该蓝图,如果没有这个按钮,只能说明点击的物体不是蓝图类
3.BluePrint其实应该叫全名BluePrint Class,这样会好理解一点,一看就知道是一个类脚本,脚本里有函数,变量,逻辑,事件,回调,声明周期等,所以蓝图的编辑器就是在编辑的这些东西,创建一个蓝图的操作和在Unity创建一个脚本挂载在GameObject上,是一样的,Actor被添加到场景中,开始激活,执行生命周期
二、unreal的蓝图和Unity的预制体有哪些区别?
1.字面意思上解释,一个是可视化的脚本,不用一个字母一个字母的手动码代码,预制体则是对象模板,提前制作好的资源对象
2.制作蓝图包含着编辑代码和编辑对象结构两个方面,Unity的预制体则不会包含逻辑代码,因为最初的预制体是美术做的,给到程序这边才会附加一些功能逻辑(正规的流程作业规范是这样,不正规的都是程序自己做)
三、物体蓝图和UI的蓝图相同和区别,蓝图之间是怎么通讯的
1.看界面还真是不一样,但是个人感觉UI蓝图和3D物体的蓝图没什么区别一模一样,只是在层次面板中UI蓝图需要维护面板和控件的布局和层级,则3D物体的蓝图需要的制作的是每个功能,比如静态网格,碰撞器,还有就是组合式的组件,都会在成员面板暴漏出来,方便Event graph中使用。
特别需要注意:看节点的时候一定不要根据名字去判别节点,也不要根据节点的颜色去判别节点,最好的方式是鼠标悬停上面看节点的tip标签注释,不然的话,有的时候你会发现一样名字一样颜色的节点死活就是连不到目标引脚上,所以一定要类型一样才能连接,如果是继承的关系可以使用强转节点
2.蓝图之间的通信这个问题引出另一个重要的问题,就是在我们右键打开节点面板,点击节点创建节点,这一系列的流程,代码层发生了哪些关系?(先不区分函数和事件)。冥想三分钟!!!!我还没开始看C++代码,我也不知道^.^!个人的理解是不管是什么节点,只要是需要别人调你,你需要公开你的变量,别人拿到你的引用,代码层是这样的调用。而蓝图是需要创建一个事件类型,然后再其他的蓝图中添加这个事件节点,OK!就这样通信,每个公开的接口都会在节点面板里找到
注意:创建接口的时候需要注意,在细节面板接口的属性配置,需要什么形参和返回值
举例:官方示例中碰撞时用的两个节点,OnComponentBeginOverlap,OnComponentEndOverlap,发生碰撞时会掉用这两个节点,然后这两个节点本身在开发者创建的蓝图中使用,就相当于给事件注册了回调函数,物理引擎检测到碰撞时,会调用这两节点,所以通过这个就能分析出,我们自己要写的功能怎么给别人用,或者怎么使用别人的功能,可以映射到,自己的两个蓝图怎么互相通讯
3.3D物体的蓝图编辑包含很多窗口,比如上图的视口窗口,图标窗口,等等。最重要的是视口和图表,一个是编辑物体的形状,一个是编辑物体的功能逻辑,还有其他的窗口,可以编辑动画曲线等等
上面是TimeLine节点,以及该节点的编辑窗口,该节点通过输入控制,播放,从头播放,倒播,从末端倒播,停止,设置时间等,控制曲线的状态,实时返回曲线上的值,这个节点类似于Unity3d AnimationCurve对象,可以动态的返回曲线的值
4.脚本构造:编辑器在生成脚本的时候调用的回调事件,可以做一些默认值和初始值的设置,,类似于Unity,编辑器类的awake(我是这样理解的,不知道对不对)
总结
没有总结,只有一点,挺好学的,主要就是有一些unity操作的习惯思维,导致在Unreal中找东西找不着,这是最难受的,接下来,就是把曾经使用Unity做的一些有特点的项目,使用Unreal重新制作一遍,个人感觉做完三四个项目,应该会有很大的理解和提升!
相关文章:
Unity开发者快速认识Unreal 的BluePrint(二)
前言 前一篇是通过UMG编辑器制作的一个简单ui功能,记录Unity开发者使用BluePrint需要特别注意的地方,这一篇是分析和理解对于场景中的3D物体交互的BluePrint怎么制作,以及需要注意的一些关键点!个人觉得最快的学习方式就是对比,入…...
APP和小程序需要注册域名吗?(国科云)
在移动互联网时代,APP和小程序已成为企业和个人提供服务、展示产品的重要渠道。那么APP和小程序的兴起是否对域名造成了冲击,APP和小程序是否需要注册域名呢? APP是否需要注册域名? 从技术上讲,没有域名的APP仍然可以…...
pandas读取MySQL中的数据
使用pandas读取MySQL中的数据 1、导入库 pip install pandas pip install sqlalchemy2、示例代码 # -*- coding: utf-8 -*-import pandas as pd import re from sqlalchemy import create_engine# 清洗文本 def clean_text(text):text...
算法设计与分析6(动态规划)
最长公共子序列和最长公共子串 动态规划的思路与字符串匹配的编辑距离问题相似,对字符串最尾端字符分类讨论 最长公共子序列 可以是不连续出现的,只要出现顺序是一样的 状态转移方程: 最长公共字串 要求连续出现,中断了就归0…...
ubuntu 20.04 编译运行lio-sam,并保存为pcd
1.环境依赖 ubuntu 20.04 ROS1 gtsam sudo add-apt-repository ppa:borglab/gtsam-release-4.0 sudo apt install libgtsam-dev libgtsam-unstable-dev 其他依赖 sudo apt-get install ros-noetic-fake-localization sudo apt-get install ros-noetic-robot-localization…...
国标GB28181视频平台EasyGBS视频监控平台助力打造校园安防智能化
一、方案背景 校园安全是教育管理中的重中之重。随着校园规模的不断扩大和安全管理要求的日益提高,传统的安防手段已难以满足现代校园的需求。EasyGBS作为一款基于国标GB/T28181协议的视频监控平台,能够实现对校园内各类视频监控设备的统一接入、管理和…...
深度解析 Java 泛型通配符 `<? super T>` 和 `<? extends T>`
Java 泛型中的通配符 ? 与 super、extends 关键字组合形成的 <? super T> 和 <? extends T> 是泛型系统中最重要的概念之一,也是许多开发者感到困惑的地方。本文将全面剖析它们的语义、使用场景和设计原理。 一、基础概念回顾 1. 泛型通配符 ? ?…...
iphonex uniapp textarea标签兼容性处理过程梳理
嗨,我是小路。今天主要和大家分享的主题是“iphonex uniapp textarea标签兼容性处理过程梳理”。 在uniapp项目中,经常会使用到uniapp原生的textarea标签,但在手机兼容性这块,textarea并不是很好用,会出现一些…...
SiSi Coin全球共识社区开创Meme币新纪元,通缩机制与社区自治引领Web3未来
SiSi Coin是独家首创新型MeMe币, 通过独特的“黑洞销毁零撸空投”机制打造社交裂变与价值捕获的去中心化生态模式,作为SiSi WEB3 的社区代币,它旨在通过创新的经济模型设计实现长期价值增长。 《采用"黑洞机制"永久销毁加权分配》 核心创新&…...
PCIe具体解释分析
参考文章 PCIe总线详解_STATEABC-GitCode 开源社区 https://zhuanlan.zhihu.com/p/652808759 PCI总线学习(一):PCI总线结构-CSDN博客 PCI——第1章——PCI总线的基本知识-CSDN博客 计算机中register、cache、memory的区别 - Lines Blog 什么是内存管理单元ÿ…...
OpenWrt 与 Docker:打造轻量级容器化应用平台技术分享
文章目录 前言一、OpenWrt 与 Docker 的集成前提1.1 硬件与内核要求1.2 软件依赖 二、Docker 环境部署与验证2.1 基础服务配置2.2 存储驱动适配 三、容器化应用部署实践3.1 资源限制策略3.2 Docker Compose 适配 四、性能优化与监控4.1 容器资源监控4.2 镜像精简策略 五、典型问…...
sherpa-ncnn:Linux(x86/ARM32/ARM64)构建sherpa-ncnn --语音转文本大模型
更多内容:XiaoJ的知识星球 目录 1.构建sherpa-ncnn2.运行2.1 运行sherpa-ncnn2.2 运行sherpa-ncnn-alsa 1.构建sherpa-ncnn x86构建: git clone https://github.com/k2-fsa/sherpa-ncnn cd sherpa-ncnn mkdir build cd build cmake -DCMAKE_BUILD_TYPE…...
nc工具!Netcat:TCP/IP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 Netcat 是一个简单的 Unix 实用程序,使用 TCP 或 UDP 协议跨网络连接读写数据。它被设计为一个可靠的“后端”工具,可以直接使用,也可以由其他程序和脚本轻松驱动。同时,它也是一个功能丰富的网络调试和探索工具,…...
【持续更新】 CDC 跨时钟域处理
在之前的专栏《硬件架构的艺术》里,有讲过亚稳态以及多个时钟的处理办法,但是感觉还是太宽泛了些,不太好理解。在这篇博客里,将主要参考《Clock Domain Crossing (CDC) Design & Verification Techniques Using SystemVerilog…...
Mybatis-Plus,IDEA2024版本
目录 1、Mybatis-Plus介绍 2、Mybatis-Plus作用 3、Mybatis-Plus使用 1、引入依赖 2、配置数据库 3、生成代码 1、Mybatis-Plus介绍 Mybatis-Plus是在Mybatis的基础上进行的功能拓展,也就是Mybatis有的功能,Plus也有,而且比Mybatis更好用…...
LeNet5 神经网络的参数解析和图片尺寸解析
1.LeNet-5 神经网络 以下是针对 LeNet-5 神经网络的详细参数解析和图片尺寸变化分析,和原始论文设计,通过分步计算说明各层的张量变换过程。 经典的 LeNet-5架构简化版(原始论文输入为 32x32,MNIST 常用 28x28 需调整)…...
hadoop-3.3.5.tar.gz 镜像
清华大学镜像站 wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz 阿里云镜像站 wget https://mirrors.aliyun.com/apache/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz 华为云镜像站 wget https://mirrors.huaweiclo…...
SD2351核心板:重构AI视觉产业价值链的“超级节点”
在AI视觉技术狂飙突进的当下,一个吊诡的现象正在浮现:一方面,学术界不断刷新着ImageNet等基准测试的精度纪录;另一方面,产业界却深陷“算法有、场景无,技术强、落地难”的怪圈。明远智睿SD2351核心板的问世…...
C++23中if consteval / if not consteval (P1938R3) 详解
文章目录 引言基本概念consteval 回顾if consteval 和 if not consteval 的定义语法规则 设计目的解决现有问题增强代码的可读性和可维护性提高代码的性能和安全性 使用示例简单示例复杂示例 与其他特性的对比与 if constexpr 的对比与 std::is_constant_evaluated() 的对比 实…...
IPOF(Input-Process-Output-Feedback)方法学简介
一、背景知识:IPO与IPOF的基本概念 1. IPO(Input-Process-Output,输入-处理-输出) IPO是计算机科学、系统工程和设计领域中最基础的模型之一,用于描述系统如何将输入通过处理逻辑转换为输出。其核心是线性的单向流程…...
第十二天 使用Unity Test Framework进行自动化测试 性能优化:Profiler分析、内存管理
前言 在完成游戏核心功能开发后,如何确保项目质量并成功发布到各大平台?本文将从自动化测试到商店上架,手把手教你构建完整的游戏开发闭环。使用Unity 2022 LTS版本进行演示,所有代码均经过实际项目验证。 一、自动化测试实战&am…...
图解YOLO(You Only Look Once)目标检测(v1-v5)
1. YOLO系列整体介绍 YOLO属于深度学习经典检测方法中的单阶段(one - stage)类型,与两阶段(two - stage,如Faster - rcnn、Mask - Rcnn系列)方法相对。 不同模型性能 单阶段方法的最核心优势是速度非常快…...
U8G2在PC端模拟(C语言版本)
前提: 电脑已经准备好mingw编译器环境,已经加入环境变量. 测试方法: window下打开cmd,输入gcc -v 会有信息打印. u8g2 u8g2官方支持sdl2接口,已经做好了适配. 所以只需要在使用的开发环境配置好SDL2路径即可. sdl2和u8g2的适配…...
mac brew 无法找到php7.2 如何安装php7.2
mac brew 无法找到php7.2 如何安装php7.2 原因是升级过高版本的brew后已经不支持7.2了,但可以通过第三方工具来安装 brew tap shivammathur/php brew install shivammathur/php/php7.2标题安装完成后会提示以下信息: The php.ini and php-fpm.ini fil…...
苹果新规生效:即日起不再接受iOS 17 SDK编译的应用提交
今天(2025年4月25日),苹果公司正式实施了一项重要的开发者政策变更:所有提交至App Store Connect的应用必须使用iOS 18 SDK或更高版本编译,这意味着基于iOS 17.2及更早版本SDK构建的应用将无法再被提交审核。 这一错误…...
OpenCv高阶(九)——背景建模
目录 一、背景建模的核心目标与核心挑战 1. 核心目标 2. 核心挑战 二、背景建模模型 1、帧差法原理 2. 概率模型(Parametric Models) (1)高斯混合模型(Gaussian Mixture Model, GMM) (…...
Docker Macvlan网络配置实战:解决“network already exists“错误
一、Macvlan网络的应用场景 Macvlan是Docker支持的多种网络驱动之一,它允许容器直接绑定到宿主机的物理接口,为每个容器分配独立的MAC地址。这种网络模式特别适合需要容器直接暴露在物理网络中的场景,例如: • IoT设备直接通信 …...
Android——Activity与Fragment通信
Activity向Fragment传递数据 Activity.java Bundle bundle new Bundle();bundle.putString("message", "wonima");BlankFragment bf new BlankFragment();bf.setArguments(bundle);Fragment.java Overridepublic View onCreateView(LayoutInflater infl…...
38 python random
在实际中,我们常常会用到随机的概念,比如 模拟抽奖活动(如:月度优秀员工抽奖)生成测试数据(如:随机考勤时间、随机销售额)打乱数据顺序(如:随机分配任务到人)Python 的random模块就像你的 "随机事件生成器",帮你轻松创建各种随机数据 一、基础操作:从随…...
二叉树的遍历(广度优先搜索)
二叉树的第二种遍历方式,层序遍历,本质是运用队列对二叉树进行搜索。 层序遍历是指将二叉树的每一层按顺序遍历,通过队列实现就是先将根节点push入队,统计此时的队列中的元素数量size,将size元素全部pop出去࿰…...
设备接入与APP(应用程序)接入华为云iotDA平台的详细操作步骤及获取方式
壹、设备登录 IoTDA 的通关清单详细操作路径及获取方式 下面将之前整理的“设备登录 IoTDA 的通关清单”补充为带有详细操作路径的实用指南,逐项说明这些信息在哪里查、怎么查、怎么用,可以一步步操作落地,无需额外查文档。 ✅【完整版】设备…...
100个用户的聊天系统:轮询 vs WebSocket 综合对比
📊 对比表 对比维度普通轮询(Polling)WebSocket实时性⏳ 一般(延迟轮询间隔)例如 5 秒轮询,平均延迟 2.5 秒⚡️ 高(消息可毫秒级送达)数据库压力🚨 高(每次…...
第四章第四节 Spark-Streaming核心编程(三)
打开kafka集群 Spark Streaming支持多种数据源接入方式,有两种典型场景 基于Filebeat的目录监控:通过Filebeat实时监控指定目录(如日志目录),将新增文件内容采集并推送至Kafka消息队列。这种方式适用于需要持久化数据的…...
IDEA编写flinkSQL(快速体验版本,--无需配置环境)
相关资料 文档内容链接地址datagen生成器https://nightlies.apache.org/flink/flink-docs-release-1.16/docs/connectors/table/datagen/print 生成器https://nightlies.apache.org/flink/flink-docs-release-1.16/docs/connectors/table/print/ 准备工作 优点就是下载个ide…...
树莓派4B+Ubuntu24.04 电应普超声波传感器串口输出 保姆级教程
1. 背景 我的机器人上要用到超声波测距,因此就选了电应普的1拖4的超声波测距模块。用的是UART受控输出。这个模块的使用很简单,这里做一个笔记,也是对大家的一个参考。 2. 保姆级教程 刚刚说了,这东西很简单,就是一…...
Aloudata Agent :基于 NoETL 明细语义层的分析决策智能体
今天的分享包含四方面内容。首先,谈谈企业在数据分析智能体(Agent)探索时所面临的挑战;其次,介绍 Aloudata Agent 的关键技术创新点;第三,作为首次亮相,我们将通过产品演示揭晓产品 …...
C++学习-入门到精通-【1】C++编程入门,输入/输出和运算符
C学习-入门到精通-【1】C编程入门,输入/输出和运算符 C编程入门,输入/输出和运算符 C学习-入门到精通-【1】C编程入门,输入/输出和运算符第一个C程序:输出一行文本算术运算 第一个C程序:输出一行文本 // 文本打印程序…...
力扣-234.回文链表
题目描述 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 class Solution { public:bool isPalindrome(ListNode* head) {//快慢指针找到中间结点p1(偶数个结点…...
Electron从入门到入门
项目说明 项目地址 项目地址:https://gitee.com/ruirui-study/electron-demo 本项目为示例项目,代码注释非常清晰,给大家当做入门项目吧。 其实很多东西都可以在我这基础上添加或修改、市面上有些已开源的项目,但是太臃肿了&am…...
【华为HCIP | 华为数通工程师】821—多选解析—第十七页
多选835、IS-IS协议所使用的NSAP地址主要由哪几个部分构成? A、AREA ID B、SEL C、DSCp D、SYSTEM ID 解析:NSAP地址:网络服务访问点(Network Service Access Point)是 OSI 协议中用于定位资源的地址。NSAP 的地址结构如图所示,它由 IDP(Initial Domain …...
electron-builder 打包安装与启动手动安装,最终解决方案,之前的文章与其他的人都不用看了。
介绍 最近官网出了个electron-forge,但打包之后的软件包有问题会有个多余的遮罩物挡在软件的最前面,太恶心了。研究了很久硬是没法去掉。没办法只能重温electron-builder工具来进行打包。之前用过这个安装过一次,也是耗费了好几天。而且也做好了笔记,有资料的情况下,我万万…...
conda安装cuda+cudnn+pytorch【一条龙服务,以cuda12.1版本为例】
安装步骤在Windows和ubuntu系统中应该是一致的,建议浏览一遍文章再尝试配置环境 一、创建新的虚拟环境 这里以Anaconda为例,打开终端 创建新的虚拟环境,test_torch可替换为别的名字(自定义),3.10也可以改…...
ElementUi的tabs样式太难修改,自定义tabs标签页
ElementUi的Tabs组件在某些情况下难以是自己想要的样式,这时候自定义 Tabs 会是一个更好的选择,可以根据自己想要而设置样式,如图: 一、ElementUi的Tabs样式 链接:Tabs 标签页 | Element Plus 基础: 选…...
制作一款打飞机游戏23:编辑器ui
今天,我想重点介绍编辑器的实际用户界面(UI)。 关于Excel的讨论 很多人使用Excel来编辑他们程序的数据,因为大多数时候它都能很好地完成工作。Excel就像是一把瑞士军刀,可以修改各种数据。但是,在某些情况…...
课程9. 机器翻译,Seq2Seq与Attention
课程9. 机器翻译,Seq2Seq与Attention 机器翻译的任务. Seq2Seq 架构通过实战理解加载和预处理数据构建 Seq2Seq 模型编码器解码器Seq2Seq网络训练 Seq2Seq 架构问题注意力机制(Attention)注意选项Transformer 架构介绍——BERT 课程计划 机器…...
ASP.NET MVC 入门指南二
9. 表单处理与提交 9.1 创建表单视图 在视图文件夹下创建一个用于创建产品的视图,如 Create.cshtml: html model YourNamespace.Product{ViewBag.Title "创建产品"; }<h2>创建产品</h2>using (Html.BeginForm()) {Html.Anti…...
JavaWeb学习打卡-Day3-MyBatis相关
MyBatis 什么是MyBatis? MyBatis是一款优秀的持久层框架,用于简化JDBC的开发。MyBatis免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。 JDBC JDBC(Java DataBase Connectivity):使用Java语言操作关系型数据库的…...
浅谈AI Agent 演进之路
1、了解下 AI Agent 的定义 AI Agent(人工智能代理)简单来说是一种能够感知环境、进行决策和执行动作的智能实体。与传统的人工智能相比,AI Agent 具备独立思考和调用工具逐步完成目标的能力。 例如:当要求 AI Agent 帮助下单外…...
佳博票据和标签打印:Web网页端与打印机通信 | iOS
文章目录 引言I Web网页端与打印机通信webSDK(包含示例页)打印测试II iOS与佳博打印机通信引言 佳博工具下载ESC是票据打印指令,TSC是标签打印指令 工业打印机:佳博GP-H430F工业机标签条码打印机物流快递电子面单条码机碳带机 应用场景:打印商品价格标签、打印交易小票 I…...
视频噪点多,如何去除画面噪点?
你是否遇到过这样的困扰?辛辛苦苦拍摄的视频,导出后却满屏 “雪花”,夜景变 “噪点盛宴”,低光环境秒变 “马赛克现场”? 无论是日常拍摄的vlog、珍贵的家庭录像,还是专业制作的影视作品,噪点问…...