「Live2D Unity 文档翻译」获取艺术网格中的用户数据

本文翻译自:https://docs.live2d.com/cubism-sdk-tutorials/userdata-drawable/

译者注:注意!这并不是一篇严谨的翻译,本人并不是翻译行业从业者,也根本不会日文。官网的中文翻译会连带代码一起翻译,而且还不如机翻日文,官网的英语翻译版本有的语法很奇怪,看起来也是机翻。本文主要来自日文机翻,然后再结合实际开发经验调整到通顺,修改不该翻译的东西并润色。

[最后更新日期: 2017/11/21] 译者注:这是这个日文原文的更新日期

在这里,我们将说明如何从模型中获取艺术网格中设置的 “用户数据(userdata)” 。

译者注:userdata 就好像是一个备注,模型制作者留下的小纸条,具体干什么需要我们自己去编程实现

概要

[UserData] 是从 3.1 开始添加的功能,用户可以向艺术网格添加任意元数据。

可以通过处理用户数据来达到多种目的,例如将艺术网格指定为命中判断或应用特殊阴影。

点击 此处 来了解如何在 Artmesh(艺术网格) 中设置用户数据。

要获取艺术网格对应的用户数据,请遵循以下步骤。

在 “project/项目” 窗口空白处右键选择 “create/创建”,然后单击 “C#脚本” 来创建一个 C# 脚本。

此处命名为「UserDataTest」。

img

在「UserDataTest」写下以下的内容。

  1. using Live2D.Cubism.Framework.UserData;
  2. using UnityEngine;
  3. public class UserDataTest : MonoBehaviour
  4. {
  5. private void Start ()
  6. {
  7. var userDatas = gameObject.GetComponentsInChildren<CubismUserDataTag>();
  8. foreach (var userData in userDatas)
  9. {
  10. Debug.Log(
  11. "Drawable ID : " + userData.gameObject.name +"\n" +
  12. "Value : " + userData.Value
  13. );
  14. }
  15. }
  16. }

然后将带有用户数据的模型的 Prefab 放置在 Hierarchy(层级)中。

将上面创建的 UserDataTest 组件附加到放置的 Prefab 的根目录。

大功告成!

如果现在运行场景,则会将设置了用户数据的艺术网格的 ID 和在用户数据中设置的字符串输出到控制台窗口。

img