本文整理汇总了C++中UStaticMeshComponent类的典型用法代码示例。如果您正苦于以下问题:C++ UStaticMeshComponent类的具体用法?C++ UStaticMeshComponent怎么用?C++ UStaticMeshComponent使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了UStaticMeshComponent类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: FLOG
void AFlarePlanetarium::BeginPlay()
{
Super::BeginPlay();
FLOG("AFlarePlanetarium::BeginPlay");
TArray<UActorComponent*> Components = GetComponentsByClass(UStaticMeshComponent::StaticClass());
for (int32 ComponentIndex = 0; ComponentIndex < Components.Num(); ComponentIndex++)
{
UStaticMeshComponent* PlanetCandidate = Cast<UStaticMeshComponent>(Components[ComponentIndex]);
if (PlanetCandidate)
{
// Apply a new dynamic material to planets so that we can control shading parameters
UMaterialInstanceConstant* BasePlanetMaterial = Cast<UMaterialInstanceConstant>(PlanetCandidate->GetMaterial(0));
if (BasePlanetMaterial)
{
//FLOGV("AFlarePlanetarium::BeginPlay : found planet '%s'", *PlanetCandidate->GetName());
#if PLATFORM_LINUX
int32 UseNormalAsLightingDirection = 1;
#else
int32 UseNormalAsLightingDirection = 0;
#endif
UMaterialInstanceDynamic* PlanetMaterial = UMaterialInstanceDynamic::Create(BasePlanetMaterial, GetWorld());
PlanetCandidate->SetMaterial(0, PlanetMaterial);
PlanetMaterial->SetScalarParameterValue("UseNormalAsLightingDirection", UseNormalAsLightingDirection);
}
}
}
}
开发者ID:niavok,项目名称:HeliumRain,代码行数:29,代码来源:FlarePlanetarium.cpp
示例2: ServerThrow
void USCarryObjectComponent::Throw()
{
if (!GetIsCarryingActor())
return;
if (GetOwner()->Role < ROLE_Authority)
{
ServerThrow();
return;
}
/* Grab a reference to the MeshComp before dropping the object */
UStaticMeshComponent* MeshComp = GetCarriedMeshComp();
if (MeshComp)
{
/* Detach and re-enable collision */
OnDropMulticast();
APawn* OwningPawn = Cast<APawn>(GetOwner());
if (OwningPawn)
{
/* Re-map uint8 to 360 degrees */
const float PawnViewPitch = (OwningPawn->RemoteViewPitch / 255.f)*360.f;
FRotator NewRotation = GetComponentRotation();
NewRotation.Pitch = PawnViewPitch;
/* Apply physics impulse, ignores mass */
MeshComp->AddImpulse(NewRotation.Vector() * 1000, NAME_None, true);
}
}
}
开发者ID:ntorkildson,项目名称:EpicSurvivalGameSeries,代码行数:32,代码来源:SCarryObjectComponent.cpp
示例3: FPreviewScene
FThumbnailPreviewScene::FThumbnailPreviewScene()
: FPreviewScene( ConstructionValues()
.SetLightRotation( FRotator(304.736, 39.84, 0) )
.SetCreatePhysicsScene(false)
.SetTransactional(false))
{
// A background sky sphere
UStaticMeshComponent* BackgroundComponent = NewObject<UStaticMeshComponent>();
BackgroundComponent->SetStaticMesh( GUnrealEd->GetThumbnailManager()->EditorSkySphere );
const float SkySphereScale = 2000.0f;
const FTransform BackgroundTransform(FRotator(0,0,0), FVector(0,0,0), FVector(SkySphereScale));
FPreviewScene::AddComponent(BackgroundComponent, BackgroundTransform);
// Adjust the default light
DirectionalLight->Intensity = 0.2f;
// Add additional lights
UDirectionalLightComponent* DirectionalLight2 = NewObject<UDirectionalLightComponent>();
DirectionalLight->Intensity = 5.0f;
AddComponent(DirectionalLight2, FTransform( FRotator(-40,-144.678, 0) ));
UDirectionalLightComponent* DirectionalLight3 = NewObject<UDirectionalLightComponent>();
DirectionalLight->Intensity = 1.0f;
AddComponent(DirectionalLight3, FTransform( FRotator(299.235,144.993, 0) ));
// Add an infinite plane
const float FloorPlaneScale = 10000.f;
const FTransform FloorPlaneTransform(FRotator(-90.f,0,0), FVector::ZeroVector, FVector(FloorPlaneScale));
UStaticMeshComponent* FloorPlaneComponent = NewObject<UStaticMeshComponent>();
FloorPlaneComponent->SetStaticMesh( GUnrealEd->GetThumbnailManager()->EditorPlane );
FloorPlaneComponent->SetMaterial( 0, GUnrealEd->GetThumbnailManager()->FloorPlaneMaterial );
FPreviewScene::AddComponent(FloorPlaneComponent, FloorPlaneTransform);
}
开发者ID:zhaoyizheng0930,项目名称:UnrealEngine,代码行数:33,代码来源:ThumbnailHelpers.cpp
示例4: TraceParams
AActor* USCarryObjectComponent::GetActorInView()
{
APawn* PawnOwner = Cast<APawn>(GetOwner());
AController* Controller = PawnOwner->Controller;
if (Controller == nullptr)
{
return nullptr;
}
FVector CamLoc;
FRotator CamRot;
Controller->GetPlayerViewPoint(CamLoc, CamRot);
const FVector TraceStart = CamLoc;
const FVector Direction = CamRot.Vector();
const FVector TraceEnd = TraceStart + (Direction * MaxPickupDistance);
FCollisionQueryParams TraceParams(TEXT("TraceActor"), true, PawnOwner);
TraceParams.bTraceAsyncScene = true;
TraceParams.bReturnPhysicalMaterial = false;
TraceParams.bTraceComplex = false;
FHitResult Hit(ForceInit);
GetWorld()->LineTraceSingleByChannel(Hit, TraceStart, TraceEnd, ECC_Visibility, TraceParams);
/* Check to see if we hit a staticmesh component that has physics simulation enabled */
UStaticMeshComponent* MeshComp = Cast<UStaticMeshComponent>(Hit.GetComponent());
if (MeshComp && MeshComp->IsSimulatingPhysics())
{
return Hit.GetActor();
}
return nullptr;
}
开发者ID:ntorkildson,项目名称:EpicSurvivalGameSeries,代码行数:34,代码来源:SCarryObjectComponent.cpp
示例5: FVector
// Sets default values
AMotherActor::AMotherActor()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
UBoxComponent* Box = CreateDefaultSubobject<UBoxComponent>(TEXT("RootComponent"));
RootComponent = Box;
Box->InitBoxExtent(FVector(20.0f, 20.0f, 20.0f));
UBoxComponent* Box1 = CreateDefaultSubobject<UBoxComponent>(TEXT("Box"));
Box1->InitBoxExtent(FVector(60.0f, 60.0f, 60.0f));
Box1->RelativeLocation = FVector(100.0f, 0.0f, 0.0f);
USphereComponent* SphereComponent = CreateDefaultSubobject<USphereComponent>(TEXT("Sphere"));
SphereComponent->InitSphereRadius(60.0f);
SphereComponent->RelativeLocation = FVector(100.0f, 0.0f, 0.0f);
UStaticMeshComponent* SphereVisual = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("VisualRepresentation"));
static ConstructorHelpers::FObjectFinder<UStaticMesh> SphereVisualAsset(TEXT("/Game/StarterContent/Shapes/Shape_Sphere.Shape_Sphere"));
if (SphereVisualAsset.Succeeded()) {
SphereVisual->SetStaticMesh(SphereVisualAsset.Object);
SphereVisual->SetRelativeLocation(FVector(0.0f, 0.0f, -100.0f));
SphereVisual->SetWorldScale3D(FVector(0.8f));
}
Box1->AttachTo(RootComponent);
SphereVisual->AttachTo(RootComponent);
SphereComponent->AttachTo(RootComponent);
UChildActorComponent * ChildActor = CreateDefaultSubobject<UChildActorComponent>(TEXT("InventoryCamera"));
ChildActor->SetChildActorClass(AOrbitalActor::StaticClass());
ChildActor->CreateChildActor();
FVector position = GetActorLocation();
ChildActor->SetRelativeTransform(FTransform(position));
}
开发者ID:Amaterasu90,项目名称:Runner,代码行数:35,代码来源:MotherActor.cpp
示例6:
// Sets default values
AFishBreadSellerTable::AFishBreadSellerTable()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
auto Root = CreateDefaultSubobject<USphereComponent>(TEXT("RootComponent"));
RootComponent = Root;
//카메라세팅
gameCamera = CreateDefaultSubobject<UCameraComponent>(TEXT("GameCamera"));
gameCamera->AttachTo(RootComponent);
UStaticMeshComponent* boardmesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("board1"));
boardmesh->AttachTo(RootComponent);
/*static ConstructorHelpers::FObjectFinder<UDataTable> meshData(TEXT("DataTable'/Game/fishGames/Tables/StaticMesh.StaticMesh'"));
if (meshData.Succeeded())
{
auto meshTableobj = meshData.Object;
FDTStaticMeshList* meshitem = meshTableobj->FindRow<FDTStaticMeshList>(TEXT("meshName"), "fishBread1");
//meshitem->staticmesh
}
*/
}
开发者ID:peartail,项目名称:myfishGame,代码行数:29,代码来源:FishBreadSellerTable.cpp
示例7: Result
FLightRayIntersection FStaticMeshStaticLightingMesh::IntersectLightRay(const FVector& Start,const FVector& End,bool bFindNearestIntersection) const
{
// Create the check structure with all the local space fun
FHitResult Result(1.0f);
// Do the line check
FHitResult NewHitInfo;
FCollisionQueryParams NewTraceParams( FStaticMeshStaticLightingMesh_IntersectLightRayName, true );
UStaticMeshComponent* StaticMeshComp = const_cast<UStaticMeshComponent*>(Primitive);
const bool bIntersects = StaticMeshComp->LineTraceComponent( Result, Start, End, NewTraceParams );
// Setup a vertex to represent the intersection.
FStaticLightingVertex IntersectionVertex;
if(bIntersects)
{
IntersectionVertex.WorldPosition = Result.Location;
IntersectionVertex.WorldTangentZ = Result.Normal;
}
else
{
IntersectionVertex.WorldPosition.Set(0,0,0);
IntersectionVertex.WorldTangentZ.Set(0,0,1);
}
return FLightRayIntersection(bIntersects,IntersectionVertex);
}
开发者ID:ErwinT6,项目名称:T6Engine,代码行数:25,代码来源:StaticMeshLight.cpp
示例8: SphereVisualAsset
// Sets default values
ACollidingPawn::ACollidingPawn()
{
// Set this pawn to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
// Tutorial code
// Our root component will be a sphere that reats to Physics
USphereComponent* SphereComponent = CreateDefaultSubobject<USphereComponent>(TEXT("RootComponent"));
RootComponent = SphereComponent;
SphereComponent->InitSphereRadius(40.0f);
SphereComponent->SetCollisionProfileName(TEXT("Pawn"));
// Creating and correctly Positioning the Mesh component so that it fits the sphere collision
UStaticMeshComponent* SphereVisual = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("VisualRepresentation"));
SphereVisual->AttachTo(RootComponent);
static ConstructorHelpers::FObjectFinder<UStaticMesh> SphereVisualAsset(TEXT("/Game/StarterContent/Shapes/Shape_Sphere.Shape_Sphere"));
if (SphereVisualAsset.Succeeded())
{
SphereVisual->SetStaticMesh(SphereVisualAsset.Object);
SphereVisual->SetRelativeLocation(FVector(0.0f, 0.0f,-40.0f));
SphereVisual->SetWorldScale3D(FVector(0.8f));
}
// Particle system Creation, Positioning (Offset)
OurParticleSystem = CreateDefaultSubobject<UParticleSystemComponent>(TEXT("MovementParticles"));
OurParticleSystem->AttachTo(SphereVisual);
OurParticleSystem->bAutoActivate = false;
OurParticleSystem->SetRelativeLocation(FVector(-20.0f,0.0f,0.0f));
static ConstructorHelpers::FObjectFinder<UParticleSystem> ParticleAsset(TEXT("/Game/StarterContent/Particles/P_Fire.P_Fire"));
if (ParticleAsset.Succeeded())
{
OurParticleSystem->SetTemplate(ParticleAsset.Object);
}
// SpringArm creation for a smooth and fast Camera Experience ( We could have just avoided this springArm ) but for the sake of smoothness
USpringArmComponent* SpringArm = CreateAbstractDefaultSubobject<USpringArmComponent>(TEXT("CameraAttachmentArm"));
SpringArm->AttachTo(RootComponent);
SpringArm->RelativeRotation = FRotator(-45.0f,0.0f,0.0f);
SpringArm->TargetArmLength = 400.0f;
SpringArm->bEnableCameraLag = true;
SpringArm->CameraLagSpeed = 3.0f;
// Easy to create the Camera component and attach it to the built in Socket at the end of springArm
UCameraComponent* ActualCamera = CreateDefaultSubobject<UCameraComponent>(TEXT("ActualCamera"));
ActualCamera->AttachTo(SpringArm, USpringArmComponent::SocketName);
// Take control of the default player
AutoPossessPlayer = EAutoReceiveInput::Player0;
// creating an instance of our movement component, and telling it to update the root.
OurMovementComponent = CreateDefaultSubobject<UCollidingPawnMovementComponent>(TEXT("CustomMovementComponent"));
OurMovementComponent->UpdatedComponent = RootComponent;
}
开发者ID:Ali-Shery,项目名称:UE4_CodeTutorial_5,代码行数:58,代码来源:CollidingPawn.cpp
示例9: SphereVisualAsset
// Sets default values
APawnCharacter::APawnCharacter()
{
// Stats
moveSpeed = 300.0f;
dodgeSpeed = 800.0f;
// Set this pawn to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
// Our root component will be a sphere that reacts to physics
USphereComponent* SphereComponent = CreateDefaultSubobject<USphereComponent>(TEXT("RootComponent"));
RootComponent = SphereComponent;
SphereComponent->InitSphereRadius(40.0f);
SphereComponent->SetCollisionProfileName(TEXT("Pawn"));
// Create and position a mesh component so we can see where our sphere is
UStaticMeshComponent* SphereVisual = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("VisualRepresentation"));
SphereVisual->AttachTo(RootComponent);
static ConstructorHelpers::FObjectFinder<UStaticMesh> SphereVisualAsset(TEXT("/Game/StarterContent/Shapes/Shape_Sphere.Shape_Sphere"));
if (SphereVisualAsset.Succeeded())
{
SphereVisual->SetStaticMesh(SphereVisualAsset.Object);
SphereVisual->SetRelativeLocation(FVector(0.0f, 0.0f, -40.0f));
SphereVisual->SetWorldScale3D(FVector(0.8f));
}
// Use a spring arm to give the camera smooth, natural-feeling motion.
USpringArmComponent* SpringArm = CreateDefaultSubobject<USpringArmComponent>(TEXT("CameraAttachmentArm"));
SpringArm->AttachTo(RootComponent);
SpringArm->RelativeRotation = FRotator(-75.f, 0.f, 0.f);
SpringArm->TargetArmLength = 800.0f;
SpringArm->bEnableCameraLag = true;
SpringArm->CameraLagSpeed = 5.0f;
// Create a camera and attach to our spring arm
UCameraComponent* Camera = CreateDefaultSubobject<UCameraComponent>(TEXT("ActualCamera"));
Camera->AttachTo(SpringArm, USpringArmComponent::SocketName);
// Take control of the default player
AutoPossessPlayer = EAutoReceiveInput::Player0;
// Create an instance of our movement component, and tell it to update the root.
OurMovementComponent = CreateDefaultSubobject<UPawnCharacterMovementComponent>(TEXT("CustomMovementComponent"));
OurMovementComponent->UpdatedComponent = RootComponent;
OurMovementComponent->setMoveSpeed(moveSpeed);
}
开发者ID:EliseSpPrj,项目名称:Descend,代码行数:49,代码来源:PawnCharacter.cpp
示例10: OnPickupMulticast_Implementation
void USCarryObjectComponent::OnPickupMulticast_Implementation(AActor* FocusActor)
{
if (FocusActor && FocusActor->IsRootComponentMovable())
{
/* Find the static mesh (if any) to disable physics simulation while carried
Filter by objects that are physically simulated and can therefor be picked up */
UStaticMeshComponent* MeshComp = Cast<UStaticMeshComponent>(FocusActor->GetComponentByClass(UStaticMeshComponent::StaticClass()));
if (MeshComp && MeshComp->IsSimulatingPhysics())
{
MeshComp->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
MeshComp->SetSimulatePhysics(false);
}
FocusActor->AttachToComponent(this, FAttachmentTransformRules::KeepWorldTransform);
}
}
开发者ID:ntorkildson,项目名称:EpicSurvivalGameSeries,代码行数:16,代码来源:SCarryObjectComponent.cpp
示例11: GetCarriedActor
void USCarryObjectComponent::OnDropMulticast_Implementation()
{
AActor* CarriedActor = GetCarriedActor();
if (CarriedActor)
{
/* Find the static mesh (if any) to re-enable physics simulation */
UStaticMeshComponent* MeshComp = Cast<UStaticMeshComponent>(CarriedActor->GetComponentByClass(UStaticMeshComponent::StaticClass()));
if (MeshComp)
{
MeshComp->SetCollisionEnabled(ECollisionEnabled::QueryAndPhysics);
MeshComp->SetSimulatePhysics(true);
}
CarriedActor->GetRootComponent()->DetachFromComponent(FDetachmentTransformRules::KeepWorldTransform);
}
}
开发者ID:ntorkildson,项目名称:EpicSurvivalGameSeries,代码行数:16,代码来源:SCarryObjectComponent.cpp
示例12: AsyncTask
void UCarlaSettingsDelegate::SetAllRoads(UWorld* world, const float max_draw_distance, const TArray<FStaticMaterial> &road_pieces_materials) const
{
if(!world||!IsValid(world)||world->IsPendingKill()) return;
AsyncTask(ENamedThreads::GameThread, [=](){
if(!world||!IsValid(world)||world->IsPendingKill()) return;
TArray<AActor*> actors;
UGameplayStatics::GetAllActorsWithTag(world, UCarlaSettings::CARLA_ROAD_TAG,actors);
for(int32 i=0; i<actors.Num(); i++)
{
AActor* actor = actors[i];
if(!IsValid(actor) || actor->IsPendingKill()) continue;
TArray<UActorComponent*> components = actor->GetComponentsByClass(UStaticMeshComponent::StaticClass());
for(int32 j=0; j<components.Num(); j++)
{
UStaticMeshComponent* staticmeshcomponent = Cast<UStaticMeshComponent>(components[j]);
if(staticmeshcomponent)
{
staticmeshcomponent->bAllowCullDistanceVolume = (max_draw_distance>0);
staticmeshcomponent->bUseAsOccluder = false;
staticmeshcomponent->LDMaxDrawDistance = max_draw_distance;
staticmeshcomponent->CastShadow = (max_draw_distance==0);
if(road_pieces_materials.Num()>0)
{
TArray<FName> meshslotsnames = staticmeshcomponent->GetMaterialSlotNames();
for(int32 k=0; k<meshslotsnames.Num(); k++)
{
const FName &slotname = meshslotsnames[k];
road_pieces_materials.ContainsByPredicate(
[staticmeshcomponent,slotname](const FStaticMaterial& material)
{
if(material.MaterialSlotName.IsEqual(slotname))
{
staticmeshcomponent->SetMaterial(
staticmeshcomponent->GetMaterialIndex(slotname),
material.MaterialInterface
);
return true;
} else return false;
});
}
}
}
}
}
}); //,DELAY_TIME_TO_SET_ALL_ROADS, false);
}
开发者ID:cyy1991,项目名称:carla,代码行数:47,代码来源:CarlaSettingsDelegate.cpp
示例13: FPreciseVector
void AFlarePlanetarium::PrepareCelestialBody(FFlareCelestialBody* Body, FPreciseVector Offset, double AngleOffset)
{
CelestialBodyPosition BodyPosition;
BodyPosition.Body = Body;
FPreciseVector Location = Offset + Body->AbsoluteLocation;
BodyPosition.AlignedLocation = Location.RotateAngleAxis(AngleOffset, FPreciseVector(0,1,0));
BodyPosition.Radius = Body->Radius;
BodyPosition.Distance = BodyPosition.AlignedLocation.Size();
BodyPosition.TotalRotation = Body->RotationAngle + AngleOffset;
// Find the celestial body component
UStaticMeshComponent* BodyComponent = NULL;
TArray<UActorComponent*> Components = GetComponentsByClass(UStaticMeshComponent::StaticClass());
for (int32 ComponentIndex = 0; ComponentIndex < Components.Num(); ComponentIndex++)
{
UStaticMeshComponent* ComponentCandidate = Cast<UStaticMeshComponent>(Components[ComponentIndex]);
if (ComponentCandidate && ComponentCandidate->GetName() == Body->Identifier.ToString() )
{
BodyComponent = ComponentCandidate;
break;
}
}
if (BodyComponent)
{
BodyPosition.BodyComponent = BodyComponent;
BodyPositions.Add(BodyPosition);
}
else
{
FLOGV("AFlarePlanetarium::PrepareCelestialBody : no planetarium component for celestial body '%s'", *(Body->Identifier.ToString()));
}
if (Body == &Sun)
{
SunOcclusionAngle = FPreciseMath::Asin(BodyPosition.Radius / BodyPosition.Distance);
SunPhase = FMath::UnwindRadians(FMath::Atan2(BodyPosition.AlignedLocation.Z, BodyPosition.AlignedLocation.X));
}
for (int SatteliteIndex = 0; SatteliteIndex < Body->Sattelites.Num(); SatteliteIndex++)
{
FFlareCelestialBody* CelestialBody = &Body->Sattelites[SatteliteIndex];
PrepareCelestialBody(CelestialBody, Offset, AngleOffset);
}
}
开发者ID:niavok,项目名称:HeliumRain,代码行数:47,代码来源:FlarePlanetarium.cpp
示例14: OnFire
void AShaderPluginDemoCharacter::OnFire()
{
//Try to set a texture to the object we hit!
FHitResult HitResult;
FVector StartLocation = FirstPersonCameraComponent->GetComponentLocation();
FRotator Direction = FirstPersonCameraComponent->GetComponentRotation();
FVector EndLocation = StartLocation + Direction.Vector() * 10000;
FCollisionQueryParams QueryParams;
QueryParams.AddIgnoredActor(this);
if (GetWorld()->LineTraceSingleByChannel(HitResult, StartLocation, EndLocation, ECC_Visibility, QueryParams))
{
TArray<UStaticMeshComponent*> StaticMeshComponents = TArray<UStaticMeshComponent*>();
AActor* HitActor = HitResult.GetActor();
if (NULL != HitActor)
{
HitActor->GetComponents<UStaticMeshComponent>(StaticMeshComponents);
for (int32 i = 0; i < StaticMeshComponents.Num(); i++)
{
UStaticMeshComponent* CurrentStaticMeshPtr = StaticMeshComponents[i];
CurrentStaticMeshPtr->SetMaterial(0, MaterialToApplyToClickedObject);
UMaterialInstanceDynamic* MID = CurrentStaticMeshPtr->CreateAndSetMaterialInstanceDynamic(0);
UTexture* CastedRenderTarget = Cast<UTexture>(RenderTarget);
MID->SetTextureParameterValue("InputTexture", CastedRenderTarget);
}
}
}
// try and play the sound if specified
if (FireSound != NULL)
{
UGameplayStatics::PlaySoundAtLocation(this, FireSound, GetActorLocation());
}
// try and play a firing animation if specified
if (FireAnimation != NULL)
{
// Get the animation object for the arms mesh
UAnimInstance* AnimInstance = Mesh1P->GetAnimInstance();
if (AnimInstance != NULL)
{
AnimInstance->Montage_Play(FireAnimation, 1.f);
}
}
}
开发者ID:alexgr,项目名称:UE4ShaderPluginDemo,代码行数:46,代码来源:ShaderPluginDemoCharacter.cpp
示例15: RefreshCollisionChange
void RefreshCollisionChange(const UStaticMesh* StaticMesh)
{
for (FObjectIterator Iter(UStaticMeshComponent::StaticClass()); Iter; ++Iter)
{
UStaticMeshComponent* StaticMeshComponent = Cast<UStaticMeshComponent>(*Iter);
if (StaticMeshComponent->StaticMesh == StaticMesh)
{
// it needs to recreate IF it already has been created
if (StaticMeshComponent->IsPhysicsStateCreated())
{
StaticMeshComponent->RecreatePhysicsState();
}
}
}
FEditorSupportDelegates::RedrawAllViewports.Broadcast();
}
开发者ID:WasPedro,项目名称:UnrealEngine4.11-HairWorks,代码行数:17,代码来源:GeomFitUtils.cpp
示例16: UpdatePreviewMesh
void SStaticMeshEditorViewport::UpdatePreviewMesh(UStaticMesh* InStaticMesh)
{
{
const int32 SocketedComponentCount = SocketPreviewMeshComponents.Num();
for(int32 i = 0; i < SocketedComponentCount; ++i)
{
UStaticMeshComponent* SocketPreviewMeshComponent = SocketPreviewMeshComponents[i];
if( SocketPreviewMeshComponent )
{
PreviewScene.RemoveComponent(SocketPreviewMeshComponent);
}
}
SocketPreviewMeshComponents.Empty();
}
if (PreviewMeshComponent)
{
PreviewScene.RemoveComponent(PreviewMeshComponent);
PreviewMeshComponent = NULL;
}
PreviewMeshComponent = ConstructObject<UStaticMeshComponent>(UStaticMeshComponent::StaticClass());
PreviewMeshComponent->SetStaticMesh(InStaticMesh);
PreviewScene.AddComponent(PreviewMeshComponent,FTransform::Identity);
const int32 SocketCount = InStaticMesh->Sockets.Num();
SocketPreviewMeshComponents.Reserve(SocketCount);
for(int32 i = 0; i < SocketCount; ++i)
{
UStaticMeshSocket* Socket = InStaticMesh->Sockets[i];
UStaticMeshComponent* SocketPreviewMeshComponent = NULL;
if( Socket && Socket->PreviewStaticMesh )
{
SocketPreviewMeshComponent = ConstructObject<UStaticMeshComponent>(UStaticMeshComponent::StaticClass());
SocketPreviewMeshComponent->SetStaticMesh(Socket->PreviewStaticMesh);
SocketPreviewMeshComponent->SnapTo(PreviewMeshComponent, Socket->SocketName);
SocketPreviewMeshComponents.Add(SocketPreviewMeshComponent);
PreviewScene.AddComponent(SocketPreviewMeshComponent, FTransform::Identity);
}
}
EditorViewportClient->SetPreviewMesh(InStaticMesh, PreviewMeshComponent);
}
开发者ID:Tigrouzen,项目名称:UnrealEngine-4,代码行数:45,代码来源:SStaticMeshEditorViewport.cpp
示例17: SphereVisualAsset
// Sets default values
APawnWithCamera::APawnWithCamera()
{
// Set this pawn to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
// Our root component will be a sphere that reacts to physics
USphereComponent* SphereComponent = CreateDefaultSubobject<USphereComponent>(TEXT("RootComponent"));
RootComponent = SphereComponent;
SphereComponent->InitSphereRadius(40.0f);
SphereComponent->SetCollisionProfileName(TEXT("Pawn"));
// Create and position a mesh component so we can see where our sphere is
UStaticMeshComponent* SphereVisual = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("VisualRepresentation"));
SphereVisual->AttachTo(RootComponent);
static ConstructorHelpers::FObjectFinder<UStaticMesh> SphereVisualAsset(TEXT("/Game/StarterContent/Shapes/Shape_Sphere.Shape_Sphere"));
if (SphereVisualAsset.Succeeded())
{
SphereVisual->SetStaticMesh(SphereVisualAsset.Object);
SphereVisual->SetRelativeLocation(FVector(0.0f, 0.0f, -40.0f));
SphereVisual->SetWorldScale3D(FVector(0.8f));
}
//Create our camera sprinf
OurCameraSpringArm = CreateDefaultSubobject<USpringArmComponent>(TEXT("CameraSpringArm"));
OurCameraSpringArm->AttachTo(RootComponent);
OurCameraSpringArm->SetRelativeLocationAndRotation(FVector(4.0f, 0.0f, 30.0f), FRotator(-60.0f, 0.0f, 0.0f));
OurCameraSpringArm->TargetArmLength = 300.f;
OurCameraSpringArm->bEnableCameraLag = true;
OurCameraSpringArm->CameraLagSpeed = 3.0f;
OurCamera = CreateDefaultSubobject<UCameraComponent>(TEXT("GameCamera"));
OurCamera->AttachTo(OurCameraSpringArm, USpringArmComponent::SocketName);
OurMovementComponent = CreateDefaultSubobject<UCollidingPawnMovementComponent>(TEXT("CustomMovementComponent"));
OurMovementComponent->UpdatedComponent = RootComponent;
//Take control of the default Player
AutoPossessPlayer = EAutoReceiveInput::Player0;
speenIncrease = 2.0f;
speed = 100.f;
}
开发者ID:SaedGD,项目名称:EUDK_Programming,代码行数:44,代码来源:PawnWithCamera.cpp
示例18: if
void SStaticMeshEditorViewport::UpdatePreviewSocketMeshes()
{
UStaticMesh* const PreviewStaticMesh = PreviewMeshComponent ? PreviewMeshComponent->StaticMesh : NULL;
if( PreviewStaticMesh )
{
const int32 SocketedComponentCount = SocketPreviewMeshComponents.Num();
const int32 SocketCount = PreviewStaticMesh->Sockets.Num();
const int32 IterationCount = FMath::Max(SocketedComponentCount, SocketCount);
for(int32 i = 0; i < IterationCount; ++i)
{
if(i >= SocketCount)
{
// Handle removing an old component
UStaticMeshComponent* SocketPreviewMeshComponent = SocketPreviewMeshComponents[i];
PreviewScene.RemoveComponent(SocketPreviewMeshComponent);
SocketPreviewMeshComponents.RemoveAt(i, SocketedComponentCount - i);
break;
}
else if(UStaticMeshSocket* Socket = PreviewStaticMesh->Sockets[i])
{
UStaticMeshComponent* SocketPreviewMeshComponent = NULL;
// Handle adding a new component
if(i >= SocketedComponentCount)
{
SocketPreviewMeshComponent = ConstructObject<UStaticMeshComponent>(UStaticMeshComponent::StaticClass());
PreviewScene.AddComponent(SocketPreviewMeshComponent, FTransform::Identity);
SocketPreviewMeshComponents.Add(SocketPreviewMeshComponent);
}
else
{
SocketPreviewMeshComponent = SocketPreviewMeshComponents[i];
}
SocketPreviewMeshComponent->SetStaticMesh(Socket->PreviewStaticMesh);
SocketPreviewMeshComponent->SnapTo(PreviewMeshComponent, Socket->SocketName);
}
}
}
}
开发者ID:Tigrouzen,项目名称:UnrealEngine-4,代码行数:42,代码来源:SStaticMeshEditorViewport.cpp
示例19: ServerDropWeapon
void ASCharacter::DropWeapon()
{
if (Role < ROLE_Authority)
{
ServerDropWeapon();
return;
}
if (CurrentWeapon)
{
FVector CamLoc;
FRotator CamRot;
if (Controller == nullptr)
return;
/* Find a location to drop the item, slightly in front of the player. */
Controller->GetPlayerViewPoint(CamLoc, CamRot);
const FVector Direction = CamRot.Vector();
const FVector SpawnLocation = GetActorLocation() + (Direction * DropItemDistance);
FActorSpawnParameters SpawnInfo;
SpawnInfo.bNoCollisionFail = true;
ASWeaponPickup* NewWeaponPickup = GetWorld()->SpawnActor<ASWeaponPickup>(CurrentWeapon->WeaponPickupClass, SpawnLocation, FRotator::ZeroRotator, SpawnInfo);
if (NewWeaponPickup)
{
/* Apply torque to make it spin when dropped. */
UStaticMeshComponent* MeshComp = NewWeaponPickup->GetMeshComponent();
if (MeshComp)
{
MeshComp->SetSimulatePhysics(true);
MeshComp->AddTorque(FVector(1, 1, 1) * 4000000);
}
}
RemoveWeapon(CurrentWeapon);
}
}
开发者ID:MarcioGeremia,项目名称:EpicSurvivalGameSeries,代码行数:39,代码来源:SCharacter.cpp
示例20: equipItem
void AManaJourneyCharacter::equipItem(AActor* actorToEquip, FName SocketName)
{
// set default properties or the equipment in Editor
if (actorToEquip)
{
actorToEquip->SetActorEnableCollision(false);
actorToEquip->GetRootComponent()->SetMobility(EComponentMobility::Movable);
actorToEquip->AttachRootComponentTo(this->GetMesh(), SocketName, EAttachLocation::SnapToTargetIncludingScale, false);
// remove any custom depth for equipped items
TArray<UStaticMeshComponent*> StaticMeshesList;
actorToEquip->GetComponents<UStaticMeshComponent>(StaticMeshesList);
for (int32 i = 0; i < StaticMeshesList.Num(); i++)
{
UStaticMeshComponent* StaticMeshComponent = StaticMeshesList[i];
StaticMeshComponent->SetRenderCustomDepth(false);
}
}
}
开发者ID:xhallix,项目名称:UnrealEngine_Manajourney,代码行数:22,代码来源:ManaJourneyCharacter.cpp
注:本文中的UStaticMeshComponent类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论