【发布时间】:2014-12-15 16:44:52
【问题描述】:
UCLASS(abstract, config=Game, BlueprintType, hidecategories=("Pawn|Character|InternalEvents"))
class ENGINE_API ACharacter : public APawn
{
GENERATED_UCLASS_BODY()
...
UPROPERTY(Transient)
uint32 bClientWasFalling:1;
/** If server disagrees with root motion track position, client has to resimulate root motion from last AckedMove. */
UPROPERTY(Transient)
uint32 bClientResimulateRootMotion:1;
/** Disable simulated gravity (set when character encroaches geometry on client, to keep him from falling through floors) */
UPROPERTY()
uint32 bSimGravityDisabled:1;
/**
* Jump key Held Time.
* This is the time that the player has held the jump key, in seconds.
*/
UPROPERTY(Transient, BlueprintReadOnly, VisibleInstanceOnly, Category=Character)
float JumpKeyHoldTime;
上面的代码来自 UE4。他们似乎使用 uint32 一位位域而不是布尔值。他们为什么要这样做?
【问题讨论】:
-
我想这是为了节省空间。
-
bool不使用一位,所以如果他们打包超过 4 个变量,他们会获得一些空间。 -
UE4 是一个现代引擎。节省内存对现代系统至关重要吗?
标签: c++ unreal-engine4