下载
GLTFUtility插件下载Newtonsoft.Json-for-Unity 下载 :插件需要此dll
使用using Siccity.GLTFUtility;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
///
/// 加载GLB模型单例
///
public class GLTFUtilityScript
{
private static GLTFUtilityScript instance;
public static GLTFUtilityScript Instance
{
get
{
if (instance == null)
{
instance = new GLTFUtilityScript();
}
return instance;
}
}
Action action;
public GameObject obj;
bool isCreate = true;
///
/// 同步加载 gltf and glb (不建议使用)
///
/// 路径
/// 回调函数
public void ImportGLTF(string filepath, Action action)
{
UnloadAndDestroy(obj);
obj = Importer.LoadFromFile(filepath);
action = this.action;
}
///
/// 异步加载 gltf and glb
///
/// 路径
/// 回调函数
public void ImportGLTFAsync(string filepath, Action action)
{
if (!isCreate) return;
isCreate = false;
UnloadAndDestroy(obj);
Importer.LoadFromFileAsync(filepath, new ImportSettings(), OnFinishAsync);
action = this.action;
}
public void ImportGLTFAsync(string filepath)
{
if (!isCreate) return;
isCreate = false;
UnloadAndDestroy(obj);
Importer.LoadFromFileAsync(filepath, new ImportSettings(), OnFinishAsync);
}
public void ImportGLTAsync()
{
obj = new GameObject ();
}
///
/// 加载完后的回调
///
/// 加载出来的物体
///
void OnFinishAsync(GameObject result, AnimationClip[] clip)
{
obj = result;
isCreate = true;
Debug.Log("Finished importing " + result.name);
if (action != null)
action();
}
///
/// 删除卸载 所有加载过的模型 清除缓存
///
public void UnloadAndDestroy(GameObject obj)
{
if (obj != null)
{
GameObject.Destroy(obj);
}
Resources.UnloadUnusedAssets();
}
/
/ 删除卸载 所有加载过的模型 清除缓存
/
//public void UnloadAndDestroyALL()
//{
// Resources.UnloadUnusedAssets();
//}
}
问题
unity 直接加载没问题 打包会加载不出来 报错:着色器
需要把插件里的shader 放入unity 的图形设置里