Files
UnrealEngineUWP/Engine/Documentation/Source/Programming/UnrealArchitecture/Reference/ProgrammingReference.INT.udn
Ben Marsh 49831a5631 Include documentation source in repository.
[CL 2489162 by Ben Marsh in Main branch]
2015-03-24 08:35:52 -04:00

39 lines
2.7 KiB
Plaintext

Availability:Public
Title: Unreal Architecture
Crumbs:%ROOT%, Programming
Description:Reference to creating and implementing gameplay classes.
When programming gameplay elements using C++ code, each module can contain many C++ classes.
[REGION:raw]
![](Programming/Basics/ProjectModuleClassOrg.png)
[/REGION]
Each class defines a template for a new Actor or Object. Within the class header file, the class and any class [functions](Programming\UnrealArchitecture\Reference\Functions) and [properties](Programming\UnrealArchitecture\Reference\Properties)
are declared. Classes can also contain [structs](Programming\UnrealArchitecture\Reference\Structs), data structures that help with organization and manipulation of related properties. Structures can also be defined on their own.
[](Programming\UnrealArchitecture\Reference\Interfaces) allow additional gameplay behavior to be implemented by different classes.
When programming with Unreal Engine, it is possible to have standard C++ classes, functions, and variables. These can be defined using standard C++ syntax. However, `UCLASS()`, `UFUNCTION()`, and
`UPROPERTY()` macros can be used to make Unreal Engine aware of the new classes, functions, and variables. For instance, a variable with a declaration prefaced by a `UPROPERTY()` macro can
be garbage collected by the engine, and can be displayed and edited within Unreal Editor. There are also `UINTERFACE()` and `USTRUCT()` macros, and keywords for each macro that can be used
to specify the [class](Programming\UnrealArchitecture\Reference\Classes\Specifiers)'s, [function](Programming\UnrealArchitecture\Reference\Functions\Specifiers)'s, [property](Programming\UnrealArchitecture\Reference\Properties\Specifiers)'s,
[interface](Programming\UnrealArchitecture\Reference\Interfaces\Specifiers)'s, or [struct](Programming\UnrealArchitecture\Reference\Structs\Specifiers)'s behavior within Unreal Engine and Unreal Editor.
[OBJECT:TopicButtonList]
[PARAM:icon]
![](%ROOT%/prog_icon.png)(convert:false)
[/PARAM]
[PARAM:title]
Gameplay Programming Reference Directory
[/PARAM]
[PARAM:description]
[/PARAM]
[PARAM:links]
* [](Programming\UnrealArchitecture\Reference\Classes "%Programming/UnrealArchitecture/Reference/Classes:Description% ")
* [](Programming\UnrealArchitecture\Reference\Functions "%Programming/UnrealArchitecture/Reference/Functions:Description% ")
* [](Programming\UnrealArchitecture\Reference\Properties "%Programming/UnrealArchitecture/Reference/Properties:Description% ")
* [](Programming\UnrealArchitecture\Reference\Structs "%Programming/UnrealArchitecture/Reference/Structs:Description% ")
* [](Programming\UnrealArchitecture\Reference\Interfaces "%Programming/UnrealArchitecture/Reference/Interfaces:Description% ")
[/PARAM]
[/OBJECT]