Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /** Default constructor */
- ADHPawn::ADHPawn(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer)
- {
- // Set this pawn to call Tick() every frame
- PrimaryActorTick.bCanEverTick = true;
- // Set this pawn to replicate
- bReplicates = true;
- // Set this pawn to replicate movement
- bReplicateMovement = true;
- // Create capsule component
- CapsuleComponent = ObjectInitializer.CreateDefaultSubobject<UCapsuleComponent>(this, "Capsule Component");
- // Configure capsule component
- CapsuleComponent->SetCapsuleSize(34.0f, 88.0f, true);
- CapsuleComponent->SetEnableGravity(true);
- CapsuleComponent->SetCollisionProfileName("Pawn");
- // Set root component to capsule component
- SetRootComponent(CapsuleComponent);
- // Create pawn movement component
- PawnMovement = ObjectInitializer.CreateDefaultSubobject<UDHPawnMovementComponent>(this, "Pawn Movement");
- PawnMovement->UpdatedComponent = RootComponent;
- // Create first person camera
- FirstPersonCamera = ObjectInitializer.CreateDefaultSubobject<UCameraComponent>(this, "First Person Camera");
- // Configure first person camera
- FirstPersonCamera->AttachTo(CapsuleComponent);
- FirstPersonCamera->SetRelativeLocation(FVector(0.0f, 0.0f, 64.0f));
- FirstPersonCamera->bUsePawnControlRotation = true; // Allow pawn to control rotation
- // Create first person mesh
- FirstPersonMesh = ObjectInitializer.CreateDefaultSubobject<USkeletalMeshComponent>(this, "First Person Mesh");
- // Configure first person mesh
- FirstPersonMesh->AttachTo(FirstPersonCamera);
- FirstPersonMesh->SetCastShadow(false);
- FirstPersonMesh->bOnlyOwnerSee = true; // Only owner can see first person mesh
- FirstPersonMesh->SetCollisionProfileName("Pawn");
- // Create first person weapon mesh
- FirstPersonItemMesh = ObjectInitializer.CreateDefaultSubobject<USkeletalMeshComponent>(this, "First Person Item Mesh");
- // Configure first person weapon mesh
- FirstPersonItemMesh->AttachTo(FirstPersonMesh);
- FirstPersonItemMesh->SetCastShadow(false);
- FirstPersonItemMesh->bOnlyOwnerSee = true; // Only owner can see first person item mesh
- FirstPersonItemMesh->SetCollisionProfileName("Pawn");
- // Create third person mesh
- ThirdPersonMesh = ObjectInitializer.CreateDefaultSubobject<USkeletalMeshComponent>(this, "Third Person Mesh");
- // Configure third person mesh
- ThirdPersonMesh->AttachTo(CapsuleComponent);
- ThirdPersonMesh->bOwnerNoSee = true; // Owner cannot see third person mesh
- ThirdPersonMesh->SetCollisionProfileName("Pawn");
- // Create third person weapon mesh
- ThirdPersonItemMesh = ObjectInitializer.CreateDefaultSubobject<USkeletalMeshComponent>(this, "Third Person Item Mesh");
- // Configure third person weapon mesh
- ThirdPersonItemMesh->AttachTo(ThirdPersonMesh);
- ThirdPersonItemMesh->bOwnerNoSee = true; // Owner cannot see third person item mesh
- ThirdPersonItemMesh->SetCollisionProfileName("Pawn");
- // Create orbital spring arm
- OrbitalSpringArm = ObjectInitializer.CreateDefaultSubobject<USpringArmComponent>(this, "Orbital Spring Arm");
- // Configure orbital spring arm
- OrbitalSpringArm->TargetArmLength = 500.0f;
- OrbitalSpringArm->AttachTo(CapsuleComponent);
- OrbitalSpringArm->bUsePawnControlRotation = true; // Allow pawn to control rotation
- // Create orbital camera
- OrbitalCamera = ObjectInitializer.CreateDefaultSubobject<UCameraComponent>(this, "Orbital Camera");
- // Configure orbital camera
- OrbitalCamera->AttachTo(OrbitalSpringArm);
- OrbitalCamera->bUsePawnControlRotation = true; // Allow pawn to control rotation
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement