现在有个问题,就是我们会有一些自己写的外部工具,需要读写权限。但是如果编辑器开着的话,就会有文件占用问题导致DT这类资产没法读写。
这种情况下,是否可以通过命令行拿到UE Editor的进程,然后通过某些命令让他跑一些python脚本或者是执行某些我们的C++逻辑呢? 如果不行的话,有什么比较好的方法推荐么? 核心就是保证编辑器开着的情况下,外部工具不被文件占用问题影响。
现在有个问题,就是我们会有一些自己写的外部工具,需要读写权限。但是如果编辑器开着的话,就会有文件占用问题导致DT这类资产没法读写。
这种情况下,是否可以通过命令行拿到UE Editor的进程,然后通过某些命令让他跑一些python脚本或者是执行某些我们的C++逻辑呢? 如果不行的话,有什么比较好的方法推荐么? 核心就是保证编辑器开着的情况下,外部工具不被文件占用问题影响。
如果能外部触发UE Unload 某个资产,其实应该也就可以了。关键是好像没有途径。
我突然想起来UE Editor下好像是会开UDP的消息收发的? 是否可以通过原生的这套UDP消息手法来拓展? 如果可以的话,方便给出解析消息然后自定义逻辑的目标代码端么?
hi?
您好, 抱歉最近公司休假回复不会很及时,
引擎有一个 remote control 插件,可以通过http或websocket发送请求
您可以对这个插件进行扩展.
这里提供一段python代码,展示如何连接.可以修改 sendmsg 的内容,执行不同的逻辑, 例如 /remote/object/call 可以调用函数
`# 先在引擎中执行
import unreal
@unreal.uclass()
class RemoteClass(unreal.BlueprintFunctionLibrary):
@unreal.ufunction(static=True)
def remote():
print(“Hello from remote!”)
from websocket import create_connection
import json
ws = create_connection(“ws://localhost:30020”)
print(“连接成功!”)
sendmsg = {
“MessageName”: “http”,
“Parameters”: {
“Url”: “/remote/object/call”,
“Verb”: “PUT”,
“Body”:
{
“objectPath”:“/Engine/PythonTypes.Default__RemoteClass”,
“functionName”:“remote”
}
}
}
ws.send(json.dumps(sendmsg)) #dict 2 json
result = ws.recv().decode(‘utf-8’)
print(f"收到消息: {result}")
ws.close()`