Fork me on github

史上最全的Unreal Engine 4学习资料整理

官方

官方文档

虚幻学院(英文教程,未来可能有汉化)

https://academy.unrealengine.com/

官方B站

https://space.bilibili.com/138827797/#/

C++

  • 【侯捷】《C++系统工程师》课程
  • 【吕鑫】【VS2015】C/C++/数据结构教程(推荐有选择的看)http://class.qq.com/class/22124.html
  • 书籍推荐
    《C++ Primer Plus》或《Essential C++》或《C++ Primer》
    《大话数据结构》或《C++数据结构与算法(目前第4版)》
    《Effective C++》
    《More Effective C++》
    《Effective STL》或《STL源码剖析》
    《设计模式》、《游戏编程模式》
    《C++沉思录》
    《深度探索C++对象模型》

UE4教程

基础操作

蓝图编程基础

蓝图编程简介

蓝图的类型 注:此处的种类只说直接实现游戏逻辑的蓝图,动画蓝图等暂不谈

变量类型

UE4的组件

【官方文档】

【猎梦虚幻研究社】

事件节点

事件调度器(事件分配器)

【官方文档】事件调度器的使用

事件分配器

  • 【官方文档】 UE4的蓝图编程中,所有游戏逻辑的函数都需要通过事件来驱动,而自定义事件可以当做函数来驱动,同时也可以通过事件调度器进行驱动,通过事件调度器,可以让蓝图实现的游戏逻辑更加灵活

流程控制

蓝图的函数

枚举类型

蓝图的数组

【官方文档】

【大神博客】

蓝图的结构体

【官方文档】

【大神博客】 结构体的使用(包含部分关于枚举类型的操作)

【大神博客】结构体数组及多维数组

【猎梦虚幻研究社】

HitResult

蓝图的容器

Map

【官方文档】

Set

【官方文档】

蓝图宏

【官方文档】

【大神博客】

Timeline(时间轴)

随机流

数学表达式

蓝图的面向对象

构建脚本(蓝图相对于C++的构造函数)

面向对象特性

继承
多态
  • 重写父类函数:在MyBlueprint栏的Function组上方,有一个Override菜单,下拉并选择要重写的函数,派生类中重写的函数会覆盖基类的函数
  • 调用重写后的父类函数:右键重写后的函数节点,选择“Add call to parent function”选项
抽象
  • 如果了解面向对象思想中的抽象概念,自主按照需求定制蓝图类即可
封装
  • 蓝图类中的变量的细节面板中的“Instance Editable”如果打对号(或者MyBlueprint栏中让变量对应的眼睛睁开,即暴露蓝图变量),则当蓝图在关卡中被实例化后,可以通过实例的细节面板进行修改相应变量的值
  • 蓝图类中的变量和函数在细节面板中都有Private选项,如果Private打钩,则该变量或函数无法被蓝图类的派生类继承

蓝图通信 注:蓝图通信可以理解为不同蓝图间的信息传递和共享

【官方文档】 蓝图通信方法(没有提GetAllActorOfClass)

【大神博客】 https://www.cnblogs.com/songiveideas/p/learnmore2.html

1、直接蓝图

2、事件调度器

  • 参考上方“事件节点”

3、蓝图投射(CastTo节点)

4、蓝图接口

实现蓝图接口 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Types/Interface/UsingInterfaces/index.html
使用蓝图接口 http://api.unrealengine.com/CHN/Engine/Blueprints/BP_HowTo/Interfaces/index.html
蓝图接口迁移 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/BlueprintComms/InterfaceMigration/index.html

5、GetAllActorOfClass

  • 这种方式并不能算是严格意义上的蓝图通信,其作用是通过该节点直接操作某一个类在关卡中所有的实例对象

视频教程

B站

人人素材

ABOUTCG在线课堂

SiKi学院

posted @ 2019-09-27 13:55  MogooStudio  阅读(2479)  评论(0编辑  收藏  举报