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

Casting to a UInterface implemented in native code


One advantage that UInterfaces provides you with as a developer is the ability to treat a collection of heterogeneous objects that implement a common interface as a collection of the same object, using Cast< > to handle the conversion.

Note

Please note that this won't work if your class implements the interface through a Blueprint.

Getting ready

You should have a UInterface, and an Actor implementing the interface ready for this recipe.

Create a new game mode using the wizard within Unreal, or optionally, reuse a project and GameMode from a previous recipe.

How to do it...

  1. Open your game mode's declaration, and add a new UPROPERTY() macro to it:

    UPROPERTY()
    TArray<IMyInterface*>MyInterfaceInstances;
  2. Add #include "MyInterface.h" to the header's include section.

  3. Add the following within the game mode's BeginPlay implementation:

    for (TActorIterator<AActor> It(GetWorld(), AActor::StaticClass()); It; ++It)
    {
      AActor* Actor = *It;
      IMyInterface...