在UE中自由绘制基本图元的几种方法
1. 在UMG中可以使用UWidgetBlueprintLibrary類來繪制,
? ? UWidgetBlueprintLibrary類提供了一系列的靜態函數可以使用。
? ? 但只提供了DrawLine,DrawLines,DrawBox,DrawText,DrawTextFormatted函數,
? ? 如果要自己繪制的圓形,需要在DrawLine的基礎上自己來寫。
? ? 實際上UWidgetBlueprintLibrary類是對FSlateDrawElement的封裝,所以也可以直接調用FSlateDrawElement
? ??FSlateDrawElement提供了MakeBox,MakeText,MakeSpline這些函數
? ? 這種方式繪制的話有局限性:
? ? 1)這種方法只能在UMG中繪制,因為它需要UMG的Onpaint函數傳入context參數。
? ? 2)用DrawLine自己封裝的畫圓函數鋸齒嚴重,如果開啟反鋸齒參數,圓上居然有缺口的現象
2. 在Actor的Event tick函數里,可以使用drawdebug函數族來繪制圖形。
3. 繼承UMeshComponent組件來實現一個自己的組件,并添加到一個Actor中。
? ?在這里可以使用PDI函數來繪制。
4. 直接使用UProceduralMeshComponent組件并添加到Actor中。
? ?UProceduralMeshComponent提供了CreateMeshSection_LinearColor函數,把我們需要繪制的圖型的頂點坐標,
? ?UV坐標,頂點顏色傳入這個函數即可繪制。這樣我們可以隨意自由的繪制任何我們需要的圖形。
? ?UProceduralMeshComponent并沒有暴露給藍圖,因此需要在自己的Actor類里來創建出組件。
? ?另外需要調用SetMaterial(0, GEngine->VertexColorMaterial)這個函數,頂點的顏色才能生效。
? ?另外UProceduralMeshComponent提供了SetRelativeRotation了函數可以對組件進行旋轉。
總結
以上是生活随笔為你收集整理的在UE中自由绘制基本图元的几种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 刘亦菲/柳岩/林允美女主演电视剧《梦华录
- 下一篇: 小米回应电视屏幕自动脱落:生产原因出现开