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

news2024/11/25 20:45:50

C#代码:JSON数据解析

  • 一、环境配置
    • 1. GLTFUtility项目git地址
    • 2. 安装支持工具:搜索Newtonsoft.Json并安装
  • 二、代码调用
    • 1. 单线程加载GLTF/GLB
    • 2. 多线程加载GLTF
    • 3. 多线程加载GLB
  • 三、加载参考案例
    • 1. 创建基础UI
    • 2. 挂接脚本到ReaderGLTF对象
    • 3. 加载结果
  • 四、拓展说明
    • 1. 拓展支持说明
    • 2. 报错处理
    • 3. 工具分享


一、环境配置

1. GLTFUtility项目git地址

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

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

在这里插入图片描述
https://github.com/JamesNK/Newtonsoft.Json

二、代码调用

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

在这里插入图片描述

2. 挂接脚本到ReaderGLTF对象

在这里插入图片描述
将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. 加载结果

在这里插入图片描述
测试数据:食人花动画模型

四、拓展说明

1. 拓展支持说明

注意,这个插件不支持EXT_texture_webp拓展。
在这里插入图片描述

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/587667.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flink从入门到精通之-11Table API 和 SQL

Flink从入门到精通之-11Table API 和 SQL 如图 11-1 所示&#xff0c;在 Flink 提供的多层级 API 中&#xff0c;核心是 DataStream API&#xff0c;这是我们开发流处理应用的基本途径&#xff1b;底层则是所谓的处理函数&#xff08;process function&#xff09;&#xff0c…

【八】设计模式~~~结构型模式~~~装饰模式(Java)

【学习难度&#xff1a;★★★☆☆&#xff0c;使用频率&#xff1a;★★★☆☆】 3.1. 模式动机 一般有两种方式可以实现给一个类或对象增加行为&#xff1a; 继承机制&#xff0c;使用继承机制是给现有类添加功能的一种有效途径&#xff0c;通过继承一个现有类可以使得子类…

当APP进入推荐榜,我们需要做些什么

在苹果的应用商店内&#xff0c;“today标签页”和“热门推荐页”的曝光率会更高些&#xff0c;更新时间都是每周五的上午八点前后&#xff0c;热门推荐页的占比权重大&#xff0c;是获取流量的重大突破口&#xff0c;如果应用本身优秀&#xff0c;还可获得更好的下载转化率。 …

华为OD机试之模拟商场优惠打折(Java源码)

模拟商场优惠打折 题目描述 模拟商场优惠打折&#xff0c;有三种优惠券可以用&#xff0c;满减券、打折券和无门槛券。 满减券&#xff1a;满100减10&#xff0c;满200减20&#xff0c;满300减30&#xff0c;满400减40&#xff0c;以此类推不限制使用&#xff1b; 打折券&…

后端 API 接口文档 Swagger 使用指南

前言一&#xff1a;swagger是什么&#xff1f;二&#xff1a;为什么要使用swaager? 2.1:对于后端开发人员来说2.2:对于前端开发来说2.3&#xff1a;对于测试三&#xff1a;如何搭一个swagger 3.1:引入swagger的依赖3.2&#xff1a;springBoot整合swagger3.3&#xff1a;swagge…

Hive介绍

Hive定义 Hive是一个基于Hadoop的数据仓库工具&#xff0c;可以将结构化的数据文件映射成一张数据表&#xff0c;并可以使用类似SQL的方式来对数据文件进行读写以及管理。这套Hive SQL 简称HQL。Hive的执行引擎可以是MR、Spark、Tez。 Hive的本质是将HQL转换成MapReduce任务&…

阿里云服务器最新优惠价格及最新收费标准(2023更新)

阿里云服务器收费标准分为包年包月和按量付费两种模式&#xff0c;包年包月是一种先付费后使用的计费方式&#xff0c;按量付费是一种先使用后付费的计费方式。选择包年包月的收费模式&#xff0c;用户可以提前预留资源&#xff0c;同时享受更大的价格优惠&#xff0c;帮您更大…

MGRE 综合实验

配置IP的地址 [R1-GigabitEthernet0/0/0]int g0/0/0 [R1-GigabitEthernet0/0/0]ip add 192.168.1.1 24 [R1-GigabitEthernet0/0/0]int s4/0/0 [R1-Serial4/0/0]ip add 15.0.0.1 24 [R2]int s 4/0/0 [R2-Serial4/0/0]ip add 25.0.0.1 24 [R2-Serial4/0/0]int g 0/0/0 [R2-Giga…

SpringBatch的两种实现方式: Tasklet 和 Chunk

直接上代码 ■ 共通部分&#xff1a; 1. 代码结构 2. pom.xml <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-batch</artifactId></dependency> 3. framework/BatchAnnotation.java packa…

MSP432学习笔记8:定时器A_PWM驱动舵机

开发板型号&#xff1a;MSP432P401r 今日得以继续我的MSP432电赛速通之路&#xff0c;文首提供本次学习实践项目文件。 注&#xff1a;我笔记实践都是从原始空项目工程文件开始配置的。 有道是 —_—_—_—_— “山无重数周遭碧&#xff0c;花不知名分外娇” “曲…

行为型设计模式02-模板方法模式

&#x1f9d1;‍&#x1f4bb;作者&#xff1a;猫十二懿 &#x1f3e1;账号&#xff1a;CSDN 、个人博客 、Github &#x1f38a;公众号&#xff1a;猫十二懿 模板方法模式 1、模板方法模式介绍 模板方法模式是一种行为型设计模式&#xff0c;定义了一个算法的框架&#xff0…

现代化个人博客系统 ModStartBlog v7.4.0 暗黑模式跟随系统,随机博客获取

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场&#xff0c;后台一键快速安装 …

基于GMM的一维时序数据平滑算法

本文将介绍我们使用高斯混合模型(GMM)算法作为一维数据的平滑和去噪算法。 假设我们想要在音频记录中检测一个特定的人的声音&#xff0c;并获得每个声音片段的时间边界。例如&#xff0c;给定一小时的流&#xff0c;管道预测前10分钟是前景(我们感兴趣的人说话)&#xff0c;然…

OSPF协议知识点

OSPF 七种状态机 down--- 关闭状态 ---- 一旦启动了 OSPF 协议&#xff0c;则发出 hello 包&#xff0c;并进入下一状态 init---- 初始化状态 ---- 收到的 hello 包中&#xff0c;存在自己的 RID 值&#xff0c;则进入下一状态 2-way---- 双向通讯状态 ----- 邻居关系建立的…

Linux kernel调试 SPI NORFLASH--W25Q128

W25Q128介绍 W25Q128 是华邦公司推出的一款 SPI 接口的 NOR Flash 芯片&#xff0c;其存储空间为 128Mbit&#xff0c;相当于 16M 字节。W25Q128 可以支持 SPI 的模式 0 和模式 3&#xff0c;也就是 CPOL0/CPHA0 和CPOL1/CPHA1 这两种模式。      Flash 写入数据时和 EEPR…

【Linux初阶】基础IO - 文件操作(使用系统接口实现) | vim批量注释代码

&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f; &#x1f36d;&#x1f36d;系列专栏&#xff1a;【Linux初阶】 ✒️✒️本篇内容&#xff1a;重新理解文件和文件操作&#xff0c;C语言实现的简单文件操作&#xff0c;文本初始权限&#xff0c;系统接口介…

【spring源码系列-01】spring底层源码整体概述

JVM系列整体栏目 内容链接地址【一】spring源码整体概述https://blog.csdn.net/zhenghuishengq/article/details/130940885 初识虚拟机与java虚拟机 一&#xff0c;spring源码整体概述1&#xff0c;初步概述2&#xff0c;扩展点机制3&#xff0c;核心方法refresh4&#xff0c;B…

【wpf】xaml 中的参数复用

背景 xaml中有几种复用的方式&#xff1a; 有时在xaml中&#xff0c;我们需要复用一些参数&#xff0c;比如 固定的一个值。 有时是固定的一个样式。 资源&#xff0c;sys的引入 有时多个控件都要设置一个高度&#xff0c;我可以引入sys 声明 我就使用这个吧&#xff1a…

扬帆出海正当时,企业应该做好哪些准备?

在跨境出海的时代大潮中&#xff0c;想要拓展海外市场的中国企业&#xff0c;应该事先做好哪些准备&#xff1f; 中国企业出海的新格局 首先来看一组令人振奋的数据。来自中国信通院的数据显示&#xff0c;在2020年的时候&#xff0c;中国数字经济的规模就达到了39.2万亿元人民…

本地Linux搭建web服务并发布公网访问

文章目录 前言1. 本地环境服务搭建2. 局域网测试访问3. 内网穿透3.1 ubuntu本地安装cpolar内网穿透3.2 创建隧道3.3 测试公网访问 4. 配置固定二级子域名4.1 保留一个二级子域名4.2 配置二级子域名4.3 测试访问公网固定二级子域名 转载自cpolar极点云的文章&#xff1a;在Ubunt…