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

Inheriting UInterface from one another


Sometimes, you may need to create a UInterface that specializes on a more general UInterface.

This recipe shows you how to use inheritance with UInterfaces to specialize a Killable interface with an Undead interface that cannot be killed by normal means.

How to do it...

  1. Create a UINTERFACE/IInterface called UKillable.

  2. Add UINTERFACE(meta=(CannotImplementInterfaceInBlueprint)) to the UInterface declaration.

  3. Add the following functions to the header file:

    UFUNCTION(BlueprintCallable, Category=Killable)
    virtual bool IsDead();
    UFUNCTION(BlueprintCallable, Category = Killable)
    virtual void Die();
  4. Provide default implementations for the interface inside the implementation file:

    boolIKillable::IsDead()
    {
      return false;
    }
    
    voidIKillable::Die()
    {
      GEngine->AddOnScreenDebugMessage(-1,1, FColor::Red,"Arrrgh");
      AActor* Me = Cast<AActor>(this);
      if (Me)
      {
        Me->Destroy();
      }
    
    }
  5. Create a new UINTERFACE/IInterface called Undead. Modify them to inherit...