在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(); }