在Live2d上下载的资源模型是.cmox格式的,无法直接在unity内使用,需要在Cubism中导出成.moc文件。
1.将下载的.cmox资源直接拖入Cubism
2.导出的时候有2.0版本和3.0版本的,如图
随便哪个版本都OK,这里2.0和3.0的区别是,3.0版本导出以后的文件直接拖到unity里面会生成已有的prefab,然后模型的变量属性都可以直接在unity内就能观察到啦,不用在Cubism和unity之间来回切换。这里都可以开个testscene测试一下,我随便导了个2.0版本的。
导出以后就会生成.moc格式的文件
3.放到unit内加载可能看不到物体,需要把camera调成orthographic正交视觉,然后调整size和物体位置即可。
4.我们可以通过直接加载.moc文件载入live2d的资源,也可以把它们转换成.bytes文件再加载。
先载入命名空间,初始化以后定义变量来存储模型对象

//载入命名空间 using live2d; using live2d.framework;

void Start() { //初始化 Live2D.init(); }

private Live2DModelUnity live2dModel; //生成对象
然后思考,如果直接加载moc文件,首先我们需要获取到资源内文件的相对地址路径:

live2DModel = Live2DModelUnity.loadModel(Application.dataPath + ".moc文件的路径");
如果是用字节文件加载,这里在路径文件夹内先复制一份相对应的moc文件然后修改后缀,接着同样需要加载到文件:

TextAsset mocFile = Resources.Load<TextAsset>(".bytes文件的路径"); live2DModel = Live2DModelUnity.loadModel(mocFile.bytes);
每次调用完live2d的资源以后需要释放资源:

Live2D.dispose(); //释放资源
接下来是与贴图建立联系,可以定义一个公有的Texture2D数组来存储live2d内的贴图资源:

public Texture2D[] textures;
初始化以后遍历就好了

for (int i = 0; i < textures.Length; i++) { live2DModel.setTexture(i, textures[i]); }
5.画布+更新

private Matrix4x4 live2DCanvasPos; //建立画布
画布初始化:

float modelWidth = live2DModel.getCanvasWidth(); live2DCanvasPos = Matrix4x4.Ortho(0, modelWidth, modelWidth, 0, -50f, 50);
在update内更新模型状态:

void Update () { live2DModel.setMatrix(transform.localToWorldMatrix*live2DCanvasPos); live2DModel.update(); }
最后绘图:

private void OnRenderObject() { live2DModel.draw(); }