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

Creating a delegate that is bound to a UFUNCTION


Delegates allow us to call a function without knowing which function is assigned. They are a safer version of a raw function pointer. This recipe shows you how to associate a UFUNCTION to a delegate so that it is called when the delegate is executed.

Getting ready

Ensure you've followed the previous recipe in order to create a TriggerVolume class.

How to do it...

  1. Inside our GameMode header, declare the delegate with the following macro, just before the class declaration:

    DECLARE_DELEGATE(FStandardDelegateSignature)
    UCLASS()
    class UE4COOKBOOK_API AUE4CookbookGameMode : public AGameMode
  2. Add a new member to our game mode:

    FStandardDelegateSignature MyStandardDelegate;
  3. Create a new Actor class called DelegateListener. Add the following to the declaration of that class:

    UFUNCTION()
    void EnableLight();
    
    UPROPERTY()
    UPointLightComponent* PointLight;
  4. In the class implementation, add this to the constructor:

    PointLight = CreateDefaultSubobject<UPointLightComponent...