目录
-
-
-
-
- FString赋值给TCHAR数组
- MessageDialog弹窗
- 想用socket模拟http请求。。暂时放着之后再看看
- Android的根目录路径
- 宏标签 DeterminesOutputType配合TSubclass可以让返回值类型动态
- 宏标签 CommutativeAssociativeBinaryOperator可以让蓝图可以添加引脚,不过应用场景也不多,入参和返回值必须是同一种类型,实际是类似变参模板展开的递归调用
- 压缩图片,输入Texture2d和期望的长宽,返回放大或缩小过的Texture2D
- Rider下载地址
- ue的renderTarget绘制
- 启杀外部exe
- 供联机使用的gamemode委托
- AsyncTask ,其实还是是调用的FNonAbandonableTask,这个是UE提供的快速调用的方式
- AsyncLoad
- c++里输入绑定的格式
- GENERATED_BODY()
-
-
-
FString赋值给TCHAR数组
TCHAR *XXX= meesage.GetCharArray().GetData();
*FString就是TCHAR
MessageDialog弹窗
#include “Misc/MessageDialog.h”
FMessageDialog::Open(EAppMsgType::Ok, Content, &title);
想用socket模拟http请求。。暂时放着之后再看看
大概记录一下ue4发socket需要这些
,还有http报文的格式
PrivateDependencyModuleNames.AddRange(
new string[]
{
"Sockets" , // for use sockets
"NetWorking"
}
);
#include "Sockets.h"
#include "SocketSubsystem.h"
#include "Networking/Public/Interfaces/IPv4/IPv4Address.h"
FSocket* Socket;
TSharedPtr<FInternetAddr> SendTarget;
//build socket
ISocketSubsystem* SocketSubsystem = ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM);
Socket = SocketSubsystem->CreateSocket(NAME_DGram, TEXT("Crash Send Socket"), true);
// build address
FIPv4Address TargetAddress;
FIPv4Address::Parse(TEXT("192.168.1.33"), TargetAddress);
if (SendTarget = SocketSubsystem->CreateInternetAddr())
{
SendTarget->SetPort(5555);
SendTarget->SetIp(TargetAddress.Value);
}
// TCP test
FString _strBuffer;
//1、type
_strBuffer.Append("POST /crash/post HTTP/1.1\r\n");
//2、head
_strBuffer.Append("Host: 192.168.1.33:5555\r\n");
_strBuffer.Append("Content-Type: application/json\r\n");
_strBuffer.Append("\r\n");
int32 CententLen = UE_ARRAY_COUNT(GErrorHist) + 6;
_strBuffer.Append("Content-Length: ");
_strBuffer.Append(FString::FromInt(CententLen));
//头和内容间要空行
_strBuffer.Append("\r\n");
_strBuffer.Append("\r\n");
//3、concent
_strBuffer.Append("stack=");
_strBuffer.Append("1");
_strBuffer.Append("\r\n");
//cast
_strBuffer[_strBuffer.Len()-1] = 0;
int32 SrcLen =_strBuffer.Len();
int32 SentLen = 0;
char UTF8Buf[UE_ARRAY_COUNT(GErrorHist) * 2];
const int32 DataLen = FTCHARToUTF8_Convert::ConvertedLength(*_strBuffer, SrcLen);
UTF8Buf[DataLen] = 0;
FTCHARToUTF8_Convert::Convert(UTF8Buf, _strBuffer.Len() * 2, *_strBuffer, _strBuffer.Len());
//4、send
Socket->SendTo((uint8*)UTF8Buf, DataLen +