zoukankan      html  css  js  c++  java
  • UE4入门学习2:工程结构分析

    - -
    文章 UE4入门学习2:工程结构分析
    作者 游蓝海( http://blog.csdn.net/you_lan_hai )

    最近又开始996加班了,业余时间更少了,以后文章更细的速度可能也会较慢了。

    接上一节《UE4入门学习1:环境搭建》,我把工程整理了一下,工程名称改为“HelloUE4”,放到了github上(https://github.com/youlanhai/LearnUE4)。本文的目的是详细分析上一节中建立的工程结构,从宏观上认识UE4。

    文件目录结构

    根目录

    UE4工程文件目录结构

    上图是UE4工程在Windows系统上的工程目录截图。下面用表格说明每个目录的含义:

    文件名称 说明
    .vs/ Vistual Studio生成的临时目录,版本库中可忽略
    Binaries/ C++代码编译输出的动态链接库文件,编辑器会自动检测和加载这些动态链接库(热重载)。版本库中可忽略
    Config/ 工程的配置文件。可以手动打开修改,也可以在UE4编辑器中通过图形界面来修改
    Content/ 资源目录。UE4的资源都是以专用的二进制格式存贮的,只能通过编辑器导入。不能手动将资源拷贝到此目录中。
    Intermediate/ 存放临时文件的路径。版本库中可忽略
    Saved/ 编辑器自动存贮的一些文件,以及日志信息等。版本库可忽略
    Source/ C++代码存放路径。
    HelloUE4.sln 自动生成的Visual Studio工程文件,可以点击UE4编辑器的文件菜单下“生成Visual Studio工程”来生成,也可以在工程文件(*.uproject)的鼠标右键菜单中选择“Generate Visual Studio Project files”来生成。版本库中可忽略
    HelloUE4.uproject UE4项目的工程文件,是json格式的文件。

    Source目录

    这里写图片描述

    Source目录比较重要,这里单独说一下。目前Source目录下只有一个文件夹HelloUE4,和两个C#文件。这里的C#文件仅用于描述工程的编译构建信息,类似与Makefile或CMakeLists.txt,文件的格式为“工程名”+ “.Target.cs”。

    一个UE4工程可包含若干个“子工程”(Module),子工程在工程文件(*.uproject)文件中定义:

    {
        "FileVersion": 3,
        "EngineAssociation": "4.15",
        "Category": "",
        "Description": "",
        "Modules": [
            {
                "Name": "HelloUE4",
                "Type": "Runtime",
                "LoadingPhase": "Default",
                "AdditionalDependencies": [
                    "Engine"
                ]
            }
        ]
    }

    当前的工程只有一个子工程HelloUE4,如果需要多个子工程,可以在这里Modules属性下添加上引用,然后在Source目录里添加上工程文件夹和编译文件(*.Target.cs)。

    需要注意的是,Source目录下还有一个”HelloUE4Editor.Target.cs”文件,该文件用于构建编辑器相关的代码。如果工程中存在扩展编辑的代码(也就是存在依赖UnrealEd的代码),需要放到Editor模块下,不能跟Runtime代码放一块,否则无法打包。关于Editor模块如何建立和使用,我们后面专门用一个章节来说明。

    场景结构

    静态结构

    场景结构

    在场景树的最顶层是关卡Actior——Home,其他的都Actor都必须方到关卡Actor内部。UE4的Actor也支持嵌套,而且场景树支持文件夹过滤器,可以将一组相似的Actor放到一个过滤器中。

    运行时结构

    场景结构

    点击“播放”按钮,进入运行模式时,场景树会多出来很多东西。黄色名称的Actor是动态创建出来的。下面大致说一下动态创建出来的对象:

    名称 描述
    DefaultPawn 默认代表玩家的Actor
    PlayerController 玩家的控制器。这里用于接收键盘输入而移动和旋转
    PlayerCameraManager 玩家的相机管理器
    PlayerState 存贮玩家的游戏内数据
    GameModeBase 游戏模式。用于处理游戏玩法的逻辑
    GameStateBase 游戏状态。用于记录游戏玩法相关数据
    HUD 管理UI

    Visual Studio 工程结构

    工程结构

    VS项目分为两个项目:UE4和HelloUE4。UE4是引擎源码,HelloUE4是我们自己创建的工程。这里,我们主要看我们自己工程的结构。

    名称 描述
    HelloUE4.h 预编译头文件,用于加快编译速度。HelloUE4目录下的所有cpp文件都必须包含该头文件,因此一些比较通用但是不会修改的代码也可以包含在这个文件中。
    MyActor.h 我们上一节中创建的Actor类
    HelloUE4.Build.cs 构建系统的描述文件。这里主要用于描述当前工程所依赖的库文件。
    *.Target.cs 构建系统的描述文件。前面已经说过了
    HelloUE4.uproject UE4工程文件。前面也说过了


    本系列文章会和我的个人公众号同步更新,感兴趣的朋友可以关注下我的公众号:游戏引擎学习。扫下面的二维码加关注:
    游戏引擎学习

  • 相关阅读:
    A. Playing with Paper
    手摇算法
    perl之创建临时文件夹遇到同名文件该咋办
    B. Two Buttons
    A Pangram
    shell的面试题
    A. Game
    B. Drazil and His Happy Friends
    A. Drazil and Date
    2道阶乘的算法题
  • 原文地址:https://www.cnblogs.com/ygxsk/p/7693966.html
Copyright © 2011-2022 走看看