• UE4 for RPG:1


      1.这个工程需要的类:

      新建一个C++工程文件,我的Pawn继承自CharacterPawn,Controller继承自PlayerCharacter,GameMode就继承自GameMode。

      在这里我使用TableData建立自己的表格,TableData可以导入CSV文件,填写角色的以下参数:

      Health,MaxHealth,DPS...在C++代码中新建一个类继承自Object。我们为了在BP中方便定义,引入UE4为我们提供的宏,将他的头文件转为结构体

      

      USTRUCT(BlueprintType)

      struct FCharacterClassInfo:public FTableRowBase

      {

               GENERATED_USTRUCT_BODY()

       UPROPERTY(BlueprintReadWrite,EditAnywhere,Category="ClassInfo")

       int32 Health;

        //...

         TArray<int32> LearnedAbilities;
      }

      2.控制战斗的类

      之前说过这是一款回合制的游戏,不可避免的讲到回合制。我们新建一个回合制类CombatEngine用来专门处理回合制。

      在战斗过程中玩家依据这么几个战斗阶段轮询状态

      enum class CombatPhase:unit8

      {

        CP_Decision,

        CP_Action,

        CP_Victory,

        CP_GameOver,
      };

      其实这本教材中的所有笔墨都在这一部分。我们暂且跳过这一部分,毕竟是无聊的回合制游戏。将引擎的其他环节了解了专门预留一节看一下大部分的回合制游戏的制作方式吧。

      3.处理战斗UI的类

      在UI的使用上,使用了UMG,Slate和SlateCore。

      作为虚幻引擎的组件,每个工程文件都可以在工程解决方案中找到(YourProject.Build.CS的文件)

      PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" ,"UMG","Slate","SlateCore"});  //这里在最后添加

         此外,在你的游戏.h中也得添加以下头文件.

    #include "Runtime/UMG/Public/UMG.h"
    #include "Runtime/UMG/Public/UMGStyle.h"
    #include "Runtime/UMG/Public/Slate/SObjectWidget.h"
    #include "Runtime/UMG/Public/IUMGModule.h"
    #include "Runtime/UMG/Public/Blueprint/UserWidget.h"

      编译之后便可以进行Widget的创建了.
      新建一个类继承自UserWidget。此后的工作内容都会在BP中进行工作。这次Wrap up。

      

  • 相关阅读:
    cygwin配合NDK开发Android程序
    和菜鸟一起学c之函数指针
    和菜鸟一起学android4.0.3源码之SD卡U盘等自动挂载配置
    Android系统的开机画面显示过程分析
    android编译系统的makefile文件Android.mk写法
    Linux下makefile教程
    和菜鸟一起学linux之本地git中心仓库建立
    强人总结的Windows XP实用技巧45条(一)
    Webshell下自动挂马的ASP
    多进程Telnet的木马例子
  • 原文地址:https://www.cnblogs.com/NEOCSL/p/7402073.html
Copyright © 2020-2023  润新知