UE + PyQt6

获取ue的全局编辑器对象,通过该对象可以获取编辑器中的资产:

@unreal.uclass()
class GLEdit(unreal.GlobalEditorUtilityBase):
    def __init__(self):
        super(GLEdit,self).__init__()

gl_editor=GLEdit()

加载使用Qt Designer生成的.ui文件:

将ui文件放在项目文件夹下,方便加载,再对信号和槽进行连接

ui_path=unreal.Paths.project_content_dir()
ui_path=ui_path+"Python/ue.ui"
if unreal.Paths.file_exists(ui_path):
    uic.loadUi(ui_path,self)
else:
    return
self.btn.clicked.connect(self.Btn)

获取选中的资产:

select_assets=gl_editor.get_selected_assets()

加载资产:

unreal.load_asset(str(select_assets[i].get_fname),select_assets[i].static_class())

获取被引用资产:

options=unreal.AssetRegistryDependencyOptions(True,True,False,False,False)
asset_list=unreal.AssetRegistryHelpers.get_asset_registry().get_referencers(package_path,options)

判断资产是否是某个类型的资产:

if select_assets[i].static_class()==unreal.StaticMesh.static_class():

获取静态网格体资产的材质槽:

smc=unreal.StaticMeshComponent()
smc.set_static_mesh(static_mesh)//static_mesh为静态网格体资产
asset_materialID=unreal.StaticMeshComponent.get_material_slot_names(smc)

打开资产对应的编辑器:

unreal.AssetToolsHelpers.get_asset_tools().open_editor_for_assets(obj)

将自定义ui的父窗口设置在ue窗口上:

unreal.parent_external_window_to_slate(int(myapp.winId()))

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值