zoukankan      html  css  js  c++  java
  • UE4C++3 物体挨打后来回换色

    #include "CoreMinimal.h"
    #include "Engine/StaticMeshActor.h"
    #include "TargetStaticMeshActor.generated.h"
    
    /**
     * h中的文件
     */
    UCLASS()
    class LEAMCPP_API ATargetStaticMeshActor : public AStaticMeshActor
    {
        GENERATED_BODY()
        
    public:
        UPROPERTY(EditDefaultsOnly, Category = "TargetSetting")//定义两个材质,用于来回切换
            UMaterialInterface* TargetRed;
        UPROPERTY(EditDefaultsOnly, Category = "TargetSetting")
            UMaterialInterface* TBlue;
    
        ATargetStaticMeshActor();
        virtual void NotifyHit(class UPrimitiveComponent* MyComp, AActor* Other, 
            class UPrimitiveComponent* OtherComp, bool bSelfMoved, FVector HitLocation,
            FVector HitNormal, FVector NormalImpulse, const FHitResult& Hit) override;
    };
    // Fill out your copyright notice in the Description page of Project Settings.
    //cpp里的文件
    
    #include "TargetStaticMeshActor.h"
    #include "Engine/Engine.h"
    #include "LeamCppProjectile.h"
    
    ATargetStaticMeshActor::ATargetStaticMeshActor()
    {
        
    }
    static bool Ifc=true;//定义一个全局变量用于检测颜色以及换色
    void ATargetStaticMeshActor::NotifyHit(class UPrimitiveComponent* MyComp, AActor* Other, class UPrimitiveComponent* OtherComp, bool bSelfMoved, FVector HitLocation, FVector HitNormal, FVector NormalImpulse, const FHitResult& Hit)
    {
        Super::NotifyHit(MyComp, Other, OtherComp, bSelfMoved, HitLocation, HitNormal, NormalImpulse, Hit);
        if (Other == nullptr) return;
    
        ALeamCppProjectile* projectile = Cast<ALeamCppProjectile>(Other);
        if (projectile != nullptr) {
            class UStaticMeshComponent* staticMesh = GetStaticMeshComponent();
            if (Ifc) {//如果颜色为a,那么换成b
                staticMesh->SetMaterial(0, TargetRed);
                Ifc = false;
            }
            else {//如果颜色为b,换成a
                staticMesh->SetMaterial(0, TBlue);
                Ifc = true;
            }
            
            if (GEngine)
            {
                GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::Yellow, TEXT("ALeamCppProjectile"));
            }
        }
        else {
            if (GEngine)
            {
                GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::Yellow, TEXT("NotALeamCppProjectile"));
            }
        }
        if (GEngine)
        {
            GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::Yellow, TEXT("NotifyHit"));
        }
    
    
    }
  • 相关阅读:
    h5-news_index
    h5-爆料view
    h5-列表
    h5-注册
    h5-登录
    h5-弹出层layer,提示,顶部横条,
    jquery 弹窗插件 layer
    jQuery幻灯片插件Owl Carousel
    display:block jquery.sort()
    Android 开源框架ViewPageIndicator 和 ViewPager 仿网易新闻客户端Tab标签
  • 原文地址:https://www.cnblogs.com/tilyougogannbare666/p/14014723.html
Copyright © 2011-2022 走看看