bewegende türen und so
This commit is contained in:
parent
ace9bb7eaa
commit
27d0417015
|
@ -18,6 +18,17 @@
|
||||||
{
|
{
|
||||||
"Name": "OculusVR",
|
"Name": "OculusVR",
|
||||||
"Enabled": false
|
"Enabled": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "MeshEditor",
|
||||||
|
"Enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "Shotgun",
|
||||||
|
"Enabled": true,
|
||||||
|
"SupportedTargetPlatforms": [
|
||||||
|
"Win64"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"TargetPlatforms": [
|
"TargetPlatforms": [
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -50,7 +50,7 @@ void UOpenDoor::OpenDoor()
|
||||||
{
|
{
|
||||||
FRotator rotation = GetOwner()->GetActorRotation();
|
FRotator rotation = GetOwner()->GetActorRotation();
|
||||||
rotation.Yaw = TargetAngle;
|
rotation.Yaw = TargetAngle;
|
||||||
rotate(rotation);
|
Rotate(rotation);
|
||||||
open = true;
|
open = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ void UOpenDoor::CloseDoor()
|
||||||
{
|
{
|
||||||
FRotator rotation = GetOwner()->GetActorRotation();
|
FRotator rotation = GetOwner()->GetActorRotation();
|
||||||
rotation.Yaw = 0.0f;
|
rotation.Yaw = 0.0f;
|
||||||
rotate(rotation);
|
Rotate(rotation);
|
||||||
open = false;
|
open = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,16 +26,21 @@ void URotatingActor::TickComponent(float DeltaTime, ELevelTick TickType, FActorC
|
||||||
rotating = false;
|
rotating = false;
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
|
GetOwner()->AddActorLocalRotation(DeltaTime * RotationSpeed * FRotator(0.0f, tempRotation, 0.0f));
|
||||||
GetOwner()->AddActorLocalRotation(DeltaTime * RotationSpeed * FRotator(0.0f, 1.0f, 0.0f));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void URotatingActor::rotate(FRotator targetRotation)
|
void URotatingActor::Rotate(const FRotator TargetRotation)
|
||||||
{
|
{
|
||||||
this->targetRotation = targetRotation;
|
this->targetRotation = TargetRotation;
|
||||||
rotating = true;
|
rotating = true;
|
||||||
|
tempRotation = (TargetRotation.Yaw < 0) ? -1.f : 1.f;
|
||||||
|
if(Negative)
|
||||||
|
{
|
||||||
|
tempRotation = (TargetRotation.Yaw < 0) ? 1.f : -1.f;
|
||||||
|
}
|
||||||
|
|
||||||
if(AudioComponent != nullptr && !soundHasBeenPlayed)
|
if(AudioComponent != nullptr && !soundHasBeenPlayed)
|
||||||
{
|
{
|
||||||
AudioComponent->Play();
|
AudioComponent->Play();
|
||||||
|
@ -43,10 +48,10 @@ void URotatingActor::rotate(FRotator targetRotation)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void URotatingActor::rotate()
|
void URotatingActor::Rotate()
|
||||||
{
|
{
|
||||||
FRotator rotation = GetOwner()->GetActorRotation();
|
FRotator rotation = GetOwner()->GetActorRotation();
|
||||||
rotation.Yaw = TargetAngle;
|
rotation.Yaw = TargetAngle;
|
||||||
rotate(rotation);
|
Rotate(rotation);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,8 +18,11 @@ public:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void BeginPlay() override;
|
virtual void BeginPlay() override;
|
||||||
void rotate(FRotator targetRotation);
|
|
||||||
void rotate();
|
void Rotate(FRotator TargetRotation);
|
||||||
|
|
||||||
|
UFUNCTION()
|
||||||
|
void Rotate();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual void TickComponent(float DeltaTime, ELevelTick TickType,
|
virtual void TickComponent(float DeltaTime, ELevelTick TickType,
|
||||||
|
@ -37,8 +40,12 @@ public:
|
||||||
UPROPERTY(EditAnywhere)
|
UPROPERTY(EditAnywhere)
|
||||||
float RotationDelay = 2.f;
|
float RotationDelay = 2.f;
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere)
|
||||||
|
bool Negative = false;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
FRotator targetRotation;
|
FRotator targetRotation;
|
||||||
bool rotating;
|
bool rotating;
|
||||||
bool soundHasBeenPlayed;
|
bool soundHasBeenPlayed;
|
||||||
|
float tempRotation;
|
||||||
};
|
};
|
||||||
|
|
|
@ -29,6 +29,6 @@ void UTriggerOpenDoor::TickComponent(float DeltaTime, ELevelTick TickType,
|
||||||
TriggerVolume->GetOverlappingActors(overlappingActors);
|
TriggerVolume->GetOverlappingActors(overlappingActors);
|
||||||
if (overlappingActors.Num() >= 1)
|
if (overlappingActors.Num() >= 1)
|
||||||
{
|
{
|
||||||
rotate();
|
Rotate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue