Unreal C++ - UPROPERTY() 及 UFUNCTION()常見設定差異

UPROPERTY( )

  •  UPROPERTY(EditAnywhere) : 
    表示此變數可在Detail視窗 (Property Windows)變更

  • UPROPERTY(EditDefaultsOnly) : 
    表示變數僅可在Detail視窗中被修改

  • UPROPERTY(Category = "AAAA") : 
    表示此變數在grapchi與BP編輯工具中可以變顯示收納在某個分類中

  • UPROPERTY(BlueprintReadOnly) :
    表示此變數在BP中只能被Read,不能被修改
     
  • UPROPERTY(BlueprintReadWrite) : 
    表示此變數在BP中可被Read可被Write

  • UPROPERTY(BlueprintReadWrite, meta = (BindWidget))
    表示此變數和BP中某個同名同型別的Widget綁定,會指向同一個物件

  • UPROPERTY(BlueprintAssignable)
    用在Delegate上,表示此Delegate可在BP中被Assign (像是Bind?)

  • UPROPERTY(DisplayName="Property Name")
    在BP上的顯示名稱,取代掉C++中宣告的名稱

UFUNCTION( )

  • UFUNCTION(BlueprintCallable)
    表示此C++ Function可以在BP被呼叫使用

  • UFUNCTION(BlueprintImplementableEvent)
    表示此C++Function是在BP中被實作出來的,意思是你要先去BP把他的程式邏輯拉好,然後在C++這邊送好參數去讓這個BP處理

  • UFUNCTION(Client, ...)
    表示為Client RPC function,呼叫只在client端上執行的function

  • UFUNCTION(Server, ...)
    表示為Server RPC function,呼叫只在Server端上執行的function

  • UFUNCTION(NetMulticast,...)
    表示為Multicast RPC function,若由server端呼叫這個,則Server端與所有有這個actor的client都會執行這個function 。(詳情見UE4 RPC / Replicated)
  • UFUNCTION(BlueprintAssignable)
    表示此function是可以被BP給override掉的,若是沒有override,會自動呼叫使用原本function名後綴_Implementation()的function


留言

這個網誌中的熱門文章

UE4 tutorial : Blueprints 筆記

UE4 tutorial : Materials 筆記

UE4 tutorial : Getting Started