IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> UE4 python scrpit——导入资产 -> 正文阅读

[游戏开发]UE4 python scrpit——导入资产

UE4 python scrpit——导入资产


链接: Unreal Python API.

思路

1.直接在API搜索自己想干嘛,然后查看合适的方法
在这里插入图片描述
2.点进看中的方法,描述合适,然后开始研究怎么用
在这里插入图片描述

这个方法需要的参数,是Array(AssetImportTask)类型的,继续点进去看看这个类型是怎么来的。

AssetImportTask里面直接一堆参数,Base是unreal.object——unreal._object,那就直接进到unreal._object
在这里插入图片描述
unreal._object中有个set_editor_property,所以我们可以直接用set_editor_property来设置AssetImportTask里面的参数,再返回给我们搜到的方法:import_asset_tasks(import_tasks)就可以了。
在这里插入图片描述

写代码

刚开始写这种脚本,从下往上写是不错的方法。
按照我们思路来,先写最直接的方法,然后填空就可以了

import unreal

# 因为import_asset_tasks需要的参数是数组Array
# 所以我们先把import_tasks设成list
import_tasks = []
unreal.AssetTools.import_asset_tasks(import_tasks)

然后我们需要一个类型是AssetImportTask的对象,放到列表里面

# 实例化
file = unreal.AssetImportTask()
# 按照属性描述,设置属性
file.set_editor_property("automated",True)# 是否避免弹框对话
file.set_editor_property("destination_name","ABC")# 资产重命名,若空字符串则为文件原名
file.set_editor_property("destination_path","/Game/texture/")# 资产存放路径,支持新建文件夹(比如Game里面没有texture的,它会帮你建一个名为texture的文件夹)
file.set_editor_property("filename",asset_path)# 从哪里导入文件
file.set_editor_property("replace_existing",True)# 是否覆盖现在资产
file.set_editor_property("replace_existing_settings",True)# 覆盖时是否替换现在设置
file.set_editor_property("save",True)# 导入后是否保存

# 最后把对象添加到我们的列表里面
import_tasks.append(file)

设置属性的时候我们发现了,有个属性竟然需要我们的文件路径(废话),那么赶紧把文件路径给它吧!

asset_path = "C:\Users\dzj\Desktop\Game\asadafh.TGA"

最后我们把代码返回来,编译一下:

LogPython: Error: TypeError: descriptor 'import_asset_tasks' requires a 'AssetTools' object but received a 'list'

得到一个错误,‘import_asset_tasks’需要的是’AssetTools’ object

但我们的AssetTool不是一个object,所以我们直接搜索AssetTool,看谁能返回一个Base是Object的AssetTool给我们。
在这里插入图片描述
此时就只有这个helpers能进我们眼了,进去看看,确实符合要求
在这里插入图片描述
所以我们要把最后一句代码改一改

unreal.AssetToolsHelpers.get_asset_tools().import_asset_tasks(import_tasks)

再执行,成功导入。
在这里插入图片描述

完整代码

import unreal

# 因为import_asset_tasks需要的参数是数组Array
# 所以我们先把import_tasks设成list
import_tasks = []
asset_path = "C:\\Users\\dzj\\Desktop\\Game\\asadafh.TGA"

file = unreal.AssetImportTask()
# 按照属性描述,设置属性
file.set_editor_property("automated",True)# 是否避免弹框对话
file.set_editor_property("destination_name","ABC")# 资产重命名,若空字符串则为文件原名
file.set_editor_property("destination_path","/Game/texture/")# 资产存放路径,支持新建文件夹(比如Game里面没有texture的,它会帮你建一个名为texture的文件夹)
file.set_editor_property("filename",asset_path)# 从哪里导入文件
file.set_editor_property("replace_existing",True)# 是否覆盖现在资产
file.set_editor_property("replace_existing_settings",True)# 覆盖时是否替换现在设置
file.set_editor_property("save",True)# 导入后是否保存

# 最后把对象添加到我们的列表里面
import_tasks.append(file)
unreal.AssetToolsHelpers.get_asset_tools().import_asset_tasks(import_tasks)

需要批量的话,只要在asset_path上整个for循环就可以了

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-12-10 11:22:49  更:2021-12-10 11:23:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 21:36:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码