SNew 与SAssignNew
就像创建一个新的UObject对象用NewObject() 一样,在Slate中,创建一个新的UI 有SNew 与 SAssignNew 两种方式。
两者的区别:
SNew返回TSharedPtr;
SAssignNew 返回TSharedRef.
当我们需要存储一个UI对象的时候,我们要在头文件里声明一个变量记录。例如我们声明一个按钮(SButton)变量:
TSharedPtr<SButton> TestButton;
在源文件中实例化这个按钮,有两种方式:
1、 SAssignNew(TestButton,SButton);
2、TestButton = SNew(SButton);
这个地方有一个注意的地方:在虚幻4引擎中,TSharedRef可以直接转换为TSharedPtr,但是这个转化不是双向的,TSharedPtr转化为TSharedRef需要用到AsShared() 函数;