Compare commits

...

6 Commits

Author SHA1 Message Date
baz 35dfb9f67c Create Level 2024-06-04 00:43:57 +01:00
baz eb3f255098 Create TankPlayerCharacter 2024-06-04 00:43:52 +01:00
baz cec5f2e90d Create TankPlayerController 2024-06-04 00:43:19 +01:00
baz a194605221 Update Project Settings 2024-06-04 00:42:31 +01:00
baz d3f2c03f48 Create TankGameInstance 2024-06-04 00:42:21 +01:00
baz 6de68223f4 Create BP_TankGamemode 2024-06-04 00:42:10 +01:00
15 changed files with 196 additions and 0 deletions

View File

@ -2,6 +2,8 @@
[/Script/EngineSettings.GameMapsSettings]
GameDefaultMap=/Engine/Maps/Templates/OpenWorld
GameInstanceClass=/Game/Gamemodes/BP_TankGameinstance.BP_TankGameinstance_C
GlobalDefaultGameMode=/Game/Gamemodes/BP_TankGamemode.BP_TankGamemode_C
[/Script/WindowsTargetPlatform.WindowsTargetSettings]
DefaultGraphicsRHI=DefaultGraphicsRHI_DX12

BIN
Content/Gamemodes/BP_TankGameinstance.uasset (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Content/Gamemodes/BP_TankGamemode.uasset (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Content/Input/IA_Movement.uasset (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Content/Input/IA_Yaw.uasset (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Content/Input/IMC_Player.uasset (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Content/Levels/Level.umap (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Content/Player/BP_TankPlayerCharacter.uasset (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Content/Player/BP_TankPlayerController.uasset (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,5 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "TankGameInstance.h"

View File

@ -0,0 +1,17 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Engine/GameInstance.h"
#include "TankGameInstance.generated.h"
/**
*
*/
UCLASS()
class TANK_API UTankGameInstance : public UGameInstance
{
GENERATED_BODY()
};

View File

@ -0,0 +1,74 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "TankPlayerCharacter.h"
#include "TankPlayerController.h"
#include "EnhancedInputComponent.h"
#include "EnhancedInputSubsystems.h"
#include "InputMappingContext.h"
// Sets default values
ATankPlayerCharacter::ATankPlayerCharacter()
{
// Set this character to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
}
// Called when the game starts or when spawned
void ATankPlayerCharacter::BeginPlay()
{
Super::BeginPlay();
}
// Called every frame
void ATankPlayerCharacter::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
// Called to bind functionality to input
void ATankPlayerCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
Super::SetupPlayerInputComponent(PlayerInputComponent);
if (ATankPlayerController* TankPlayerController = Cast<ATankPlayerController>(GetController()))
{
if (UEnhancedInputLocalPlayerSubsystem* InputSystem = ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem>(TankPlayerController->GetLocalPlayer()))
{
if (!InputMappingContext.IsNull())
{
InputSystem->AddMappingContext(InputMappingContext.LoadSynchronous(), 0);
}
}
}
if (UEnhancedInputComponent* Input = Cast<UEnhancedInputComponent>(PlayerInputComponent))
{
if (MovementAction)
{
Input->BindAction(MovementAction, ETriggerEvent::Triggered, this, &ATankPlayerCharacter::MovementCallback);
}
if (YawAction)
{
Input->BindAction(YawAction, ETriggerEvent::Triggered, this, &ATankPlayerCharacter::RotationCallback);
}
}
}
void ATankPlayerCharacter::MovementCallback(const FInputActionInstance& Instance)
{
float Movement = Instance.GetValue().Get<float>();
AddMovementInput(GetActorForwardVector(), Movement);
}
void ATankPlayerCharacter::RotationCallback(const FInputActionInstance& Instance)
{
float Rotation = Instance.GetValue().Get<float>();
AddControllerYawInput(Rotation);
}

View File

@ -0,0 +1,52 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Character.h"
#include "TankPlayerCharacter.generated.h"
class UInputMappingContext;
class UInputAction;
UCLASS()
class TANK_API ATankPlayerCharacter : public ACharacter
{
GENERATED_BODY()
public:
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
TSoftObjectPtr<UInputMappingContext> InputMappingContext;
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
UInputAction* MovementAction;
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
UInputAction* YawAction;
public:
// Sets default values for this character's properties
ATankPlayerCharacter();
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
// Called to bind functionality to input
virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;
private:
UFUNCTION()
void MovementCallback(const FInputActionInstance& Instance);
UFUNCTION()
void RotationCallback(const FInputActionInstance& Instance);
};

View File

@ -0,0 +1,5 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "TankPlayerController.h"

View File

@ -0,0 +1,17 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/PlayerController.h"
#include "TankPlayerController.generated.h"
/**
*
*/
UCLASS()
class TANK_API ATankPlayerController : public APlayerController
{
GENERATED_BODY()
};