[UE4]为UStaticMeshComponent添加点击事件

BlockMesh->OnClicked.AddDynamic(this, &APuzzleBlock::BlockClicked);   //鼠标点击事件
BlockMesh->OnInputTouchBegin.AddDynamic(this, &APuzzleBlock::OnFingerPressedBlock);   //触摸屏点击事件

void APuzzleBlock::BlockClicked(UPrimitiveComponent* ClickedComp)
{
    bIsActive = !bIsActive; // flip the value of bIsActive
                            // (if it was true, it becomes false, or vice versa)
    if (bIsActive)
    {
        BlockMesh->SetMaterial(0, OrangeMaterial);
    }
    else
    {
        BlockMesh->SetMaterial(0, BlueMaterial);
    }
    // Tell the Grid
    if (OwningGrid != NULL)
    {
        OwningGrid->AddScore();
    }
    // --TO HERE--
}


void APuzzleBlock::OnFingerPressedBlock(ETouchIndex::Type FingerIndex, UPrimitiveComponent* TouchedComponent)
{
    BlockClicked(TouchedComponent);
}

 

posted on 2018-03-22 12:22  一粒沙  阅读(3072)  评论(0编辑  收藏  举报