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 custom Primitive Component


Primitive components are the most complex type of Actor Component because they not only have a transform, but are also rendered on screen.

How to do it...

  1. Create a custom C++ class based on MeshComponent. When Visual Studio loads, add the following to your class header file:

    UCLASS(ClassGroup=Experimental, meta = (BlueprintSpawnableComponent))
    public:
    virtual FPrimitiveSceneProxy* CreateSceneProxy() override;
    TArray<int32> Indices;
    TArray<FVector> Vertices;
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Materials)
    UMaterial* TheMaterial;
  2. We need to create an implementation for our overridden CreateSceneProxy function in our cpp file:

    FPrimitiveSceneProxy* UMyMeshComponent::CreateSceneProxy()
    {
      FPrimitiveSceneProxy* Proxy = NULL;
      Proxy = new FMySceneProxy(this);
      return Proxy;
    }
  3. This function returns an instance of FMySceneProxy, which we need to implement. Do so by adding the following code above the CreateSceneProxy function:

    class...