UserData
最終更新: 2020年1月30日
概述
UserData是一个在Unity上可视化模型图形网格中设置的用户数据的功能。
用户数据是允许您将任意标签添加到图形网格的功能,并且可以在指定对SDK执行特殊处理的图形网格等时使用。
参考 此处 了解有关用户数据的详细信息。
要在Unity上使用用户数据,请按照以下步骤操作。
- 解析.userdata3.json
- 在图形网格中设置UserData
1. 解析.userdata3.json
使用CubismUserData3Json解析.userdata3.json。
关于CubismUserData3Json,请参考 此处。
var userData3Json = CubismUserData3Json.LoadFrom(jsonString);
.userdata3.json的路径也可以使用CubismModel3Json从.model3.json中获取。
可以获取的路径是来自.model3.json的相对路径。
var userDataPath = modelJson.FileReferences.UserData; var jsonString = ((TextAsset)Resources.Load<TextAsset>(userDataPath)).text;
参考 此处 了解有关CubismModel3Json的更多信息。
从解析的.userdata3.json中获取图形网格数据。
var drawableBodies = userData3Json.ToBodyArray(CubismUserDataTargetType.ArtMesh);
2. 在图形网格中设置UserData
将从.userdata3.json获得的用户数据应用到Prefab的图形网格。
使用CubismUserDataTag将用户数据信息添加到图形网格。
// 获取Prefab图形网格的参考 var drawables = cubismModel.Drawables; for (var i = 0; i < drawables.Length; ++i) { var index = -1; for (var j = 0; j < drawableBodies.Length; ++j) { if (drawableBodies[j].Id != drawables[i].Id) { continue; } index = j; break; } if (index < 0) { continue; } // 如果CubismUserDataTag已经附加,则重复使用 var tag = drawables[i].gameObject.GetComponent<CubismUserDataTag>(); if (tag == null) { tag = drawables[i].gameObject.AddComponent<CubismUserDataTag>(); } // 将用户数据设置为CubismUserDataTag tag.Initialize(drawableBodies[index]); }
请问这篇文章对您有帮助吗?
是否