【Unity】基于GLTFUtility插件加载gltf格式数据

这篇具有很好参考价值的文章主要介绍了【Unity】基于GLTFUtility插件加载gltf格式数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、环境配置

1. GLTFUtility项目git地址

https://github.com/Siccity/GLTFUtility
gltf格式数据插件直接拖放至asset下即可

2. 安装支持工具:搜索Newtonsoft.Json并安装

gltfutility 使用,unity学习笔记,unity,ui,游戏引擎
gltfutility 使用,unity学习笔记,unity,ui,游戏引擎

二、代码调用

1. 单线程加载GLTF/GLB

// Single thread
using Siccity.GLTFUtility;

void ImportGLTF(string filepath) {
   GameObject result = Importer.LoadFromFile(filepath);
}
void ImportGLB(string filepath) {
   GameObject result = Importer.LoadFromFile(filepath);
}

2. 多线程加载GLTF

// Multithreaded
using Siccity.GLTFUtility;

void ImportGLTFAsync(string filepath) {
   Importer.ImportGLTFAsync(filepath, new ImportSettings(), OnFinishAsync);
}

void OnFinishAsync(GameObject result, AnimationClip[] animations) {
   Debug.Log("Finished importing " + result.name);
}

3. 多线程加载GLB

// Multithreaded
using Siccity.GLTFUtility;

void ImportGLBAsync(string filepath) {
   Importer.ImportGLBAsync(filepath, new ImportSettings(), OnFinishAsync);
}

void OnFinishAsync(GameObject result, AnimationClip[] animations) {
   Debug.Log("Finished importing " + result.name);
}

三、加载参考案例

1. 创建基础UI

gltfutility 使用,unity学习笔记,unity,ui,游戏引擎

2. 挂接脚本到ReaderGLTF对象

gltfutility 使用,unity学习笔记,unity,ui,游戏引擎
将UI组件挂载到脚本参数。

    public Button addGLTF_Button;
	public Button addGLB_Button;
	public Button del_Button;

	public Text pathName;
	public Text text;
	public bool loaded = false;

	GameObject glTFObj;
	List<GameObject> glTFObjList;
	// Start is called before the first frame update
	void Start()
    {
		addGLTF_Button.onClick.AddListener(loadGLTF);//调用加载GLTF文件方法
		addGLB_Button.onClick.AddListener(loadGLB);//调用加载GLB文件方法
		del_Button.onClick.AddListener(unloadAll);//调用清除所有对象方法

		glTFObjList = new List<GameObject>();//创建列表用于存储模型对象
		
	}

参考上文第二节,补充相关代码。

3. 加载结果

gltfutility 使用,unity学习笔记,unity,ui,游戏引擎
测试数据:食人花动画模型

四、拓展说明

1. 拓展支持说明

注意,这个插件不支持EXT_texture_webp拓展。
gltfutility 使用,unity学习笔记,unity,ui,游戏引擎

2. 报错处理

如果glb格式数据加载出现报错
JsonReaderException: Unexpected character encountered while parsing value: g. Path ‘’, line 0, position 0."
建议转换为gltf格式再试试
再不行大概率就是这个gltf数据用到的拓展不被支持

3. 工具分享

一个gltf和glb在线免费互转工具
https://products.aspose.app/3d/zh-cn/conversion/glb-to-gltf文章来源地址https://www.toymoban.com/news/detail-613514.html

到了这里,关于【Unity】基于GLTFUtility插件加载gltf格式数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity动态加载资源 - 从硬盘任意地址加载任意格式3D模型

    前言 一、Unity官方给的动态资源加载方式 二、Unity中调用windows资源管理器 三、从资源管理器获得文件地址后复制到Unity指定文件夹 附上全部代码(不完善,仅框架) Unity官方给的动态资源加载方式就不赘述了。大体分为3种:(1) Resources.Load (2)AssetBundle(3) WWW加载 。 其中前两

    2024年02月04日
    浏览(45)
  • Unity倾斜摄影开发-Unity加载3DTiles格式的倾斜摄影模型

    首先看看Unity加载3DTiles格式的效果 首先使用上一章节生成的osgb格式的倾斜摄影模型,上节地址:Unity倾斜摄影开发-航拍图片生成3mx和OSGB模型_虚拟现实(微尘)的博客-CSDN博客 使用软件  Unity3d 3DTiles(Unity3d插件,大家可以到Unity商城中下载,下载地址:3DTiles | Modeling | Unity A

    2024年02月03日
    浏览(48)
  • 【Unity】 Unity PackageManager通过git url 加载插件失败问题

    我在测试dolby 的unity demo 的时候,遇到加载package 失败的问题。 [Package Manager Window] Cannot perform upm operation: Unable to add package [https://github.com/focus-creative-games/hybridclr_unity.git]: 网上查解决办法, 使用下面的改变系统环境变量还是没有效果。 Unity 通过url 下载插件失败 最后尝试自己

    2024年04月15日
    浏览(35)
  • unity强力配置插件-Luban使用(一)加载保存

    Luban是一种配置工具,生成c#等各种语言的代码,支持导出成bytes或json等多种格式,且能检查数据错误。unity只是其中支持的一种引擎,可以想象其功能非常强大。 不但如此,在使用的时候非常简单、方便,支持类型丰富,初学者也能迅速掌握。 插件地址 本系列版本为[class

    2024年02月04日
    浏览(41)
  • vue结合Cesium加载gltf模型

    Cesium支持什么格式?         Cesium支持的格式包括:3D模型格式(如COLLADA、gITF、OBJ)、影像格式(如JPEG、PNG、GeoTIFF)、地形格式(如STL、Heightmap)、矢量数据格式(如GeoJSON、KMZ)、时间动态数据格式(如CZML),以及其他各种数据格式。此外,Cesium还通过插件支持其他特

    2024年02月01日
    浏览(38)
  • EasyCode代码生成插件-模板分享(基于数据表生成MyBatisPlus格式的dao,service,controller和vue组件)

    目录 概述 使用演示 模板代码    实体类pojo   表现层controller 业务层service接口  业务层serviceImpl实现类 持久层dao Vue组件    本片博客用于分享EasyCode的自定义模板(模板在篇末),用于简化开发,免去重复性的工作。 作用: 1.根据数据库表,后端生成基于MyBatisPlus结构下的

    2024年02月10日
    浏览(56)
  • unity开放世界解决方案-World Streamer 2加载插件(一)

    我原来想做开放世界独立游戏,是不是很大胆?整个游戏完全是开放世界,就这个游戏,就完全是这个独立游戏(团队就我一个人)。 我最早和朋友说的时候,就是做独立游戏,做开放世界独立游戏,所有朋友啊都很兴奋,宫崎英高、小岛秀夫、默神啊他们啊都很兴奋,一直

    2024年02月11日
    浏览(42)
  • 3dmax模型完美转glb模型,gltf格式模型转fbx格式转obj格式

    现在好多模型都是3dmax模型,但是客户要求是glb或者gltf模型 这个时候好多人直接导出glb模型,是没有颜色贴图的,这样的 这个时候是不能用的,怎么办,咱们要回到3dmax,把VR材质一个个重新上普通材质 当然也可以用插件一键转换 没有插件可以联系QQ 424081801也可以制作glb模

    2024年02月12日
    浏览(43)
  • 【Cesium学习(六)】Cesium加载3D模型(3D tiles和glTF模型)

    前面我们学习到了绘制基本的形状,但是Cesium还可以加载3D模型,因为像高德地图这种的技术来加载大型复杂的建筑模型性能不加,所有只能想Cesium这种专门做3D地图的技术。接下来就学习一下如何加载模型。 Cesium目前支持两种模型方案,一个是使用3D tiles, 另一个是加载g

    2024年02月07日
    浏览(47)
  • Three.js加载外部glb,fbx,gltf,obj 模型文件

    vue3使用Three.js加载外部模型文件 1.安装Three.js 2.新建一个renderModel.js 用于处理Three.js相关逻辑 3.modelPage.vue 中使用页面 6.效果图:

    2024年02月15日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包