Book Image

Unreal Engine 4 Scripting with C++ Cookbook

By : William Sherif, Stephen Whittle
Book Image

Unreal Engine 4 Scripting with C++ Cookbook

By: William Sherif, Stephen Whittle

Overview of this book

Unreal Engine 4 (UE4) is a complete suite of game development tools made by game developers, for game developers. With more than 100 practical recipes, this book is a guide showcasing techniques to use the power of C++ scripting while developing games with UE4. It will start with adding and editing C++ classes from within the Unreal Editor. It will delve into one of Unreal's primary strengths, the ability for designers to customize programmer-developed actors and components. It will help you understand the benefits of when and how to use C++ as the scripting tool. With a blend of task-oriented recipes, this book will provide actionable information about scripting games with UE4, and manipulating the game and the development environment using C++. Towards the end of the book, you will be empowered to become a top-notch developer with Unreal Engine 4 using C++ as the scripting language.
Table of Contents (19 chapters)
Unreal Engine 4 Scripting with C++ Cookbook
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Preface
Index

Implementing the Actor functionality by inheritance


Inheritance is the second way to implement a custom Actor. This is commonly done to make a new subclass, which adds member variables, functions, or a Component to an existing Actor class. In this recipe, we are going to add a variable to a custom GameState subclass.

How to do it...

  1. In the Unreal Editor, click on Add New in the Content Browser, and then on New C++ Class... then select GameState as the base class, then give your new class a name.

  2. Add the following code to the new class header:

    AMyGameState(); 
    
    UFUNCTION()
    void SetScore(int32 NewScore);
    
    UFUNCTION()
    int32 GetScore();
    private:
    UPROPERTY()
    int32 CurrentScore;
  3. Add the following code to the cpp file:

    AMyGameState::AMyGameState()
    {
      CurrentScore = 0;
    }
    
    int32 AMyGameState::GetScore()
    {
      return CurrentScore;
    }
    
    void AMyGameState::SetScore(int32 NewScore)
    {
      CurrentScore = NewScore;
    }
  4. Confirm that your code looks like the following listing, and compile using the Compile button in the...