언리얼5를 반드시 사용해야 하는 이유
블루프린트가 공유가 가능했다.
언리얼4에서는 외부로 복사만 가능하다.
언리얼5는 양방향으로 복사 붙여넣기가 된다.
언리얼5를 써야 하는 이유이다.
4.27.2 에서 UMaterialInstanceDynamic 의 사용법이 달랐다.
StartMergeTimer() 함수에서
->GetVectorParameterValue(TILE_COLOR_PARAM_NAME, LColor)))
부분을
->GetVectorParameterValue(FName(TILE_COLOR_PARAM_NAME), LColor)))
으로 수정하면 된다.
void ATetrisGrid::StartMergeTimer()
{
TArray<int32> GridIndeces = CurrentTetromino->GetGridIndeces(Dimension, Sides, Point);
TArray<int32> TetrominoBitmap = CurrentTetromino->GetBitmap();
int32 TBitmapLength = TetrominoBitmap.Num();
int32 GBitmapLength = BitMap.Num();
UMaterialInstanceDynamic * CurrentTetrominoDynamicMat = CurrentTetromino->GetDynamicBlockMatInstance();
FLinearColor LColor;
if (!(CurrentTetrominoDynamicMat && CurrentTetrominoDynamicMat->GetVectorParameterValue(FName(TILE_COLOR_PARAM_NAME), LColor)))
{
LColor = FLinearColor(0.0f, 0.0f, 0.0f);
}
for (int Index = 0; Index < TBitmapLength; ++Index)
{
if ( GridIndeces[Index] < 0
|| GridIndeces[Index] >= GBitmapLength
|| TetrominoBitmap[Index] == 0 )
{
continue;
}
DynamicBlockMats[GridIndeces[Index]]->SetVectorParameterValue(TILE_COLOR_PARAM_NAME, LColor);
BitMap[GridIndeces[Index]] = TetrominoBitmap[Index];
Blocks[GridIndeces[Index]]->SetVisibility(true);
}
LapsedTime = 0.0f;
CurrentGridState = EGridState::ClearRowAnimation;
//CurrentGridState = EGridState::ClearRowCleanup;
}
https://github.com/s6brian/Tetris3D
GitHub - s6brian/Tetris3D: Tetris 3D made with Unreal Engine
Tetris 3D made with Unreal Engine. Contribute to s6brian/Tetris3D development by creating an account on GitHub.
github.com