Пример #1
0
    private void displaySpriteList(string listName, ref List<SpriteMeshDataDescription> datas, ref bool showData)
    {
        showData = EditorGUILayout.Foldout(showData, listName);

        if (showData)
        {
            for (int i = 0; i < datas.Count; i++)
            {
                if (datas[i] == null)
                {
                    datas[i] = new SpriteMeshDataDescription("" , "");
                }
            }

            int currentListSize = Mathf.Max(0, EditorGUILayout.DelayedIntField("size", datas.Count));
            while (currentListSize < datas.Count)
                datas.RemoveAt(datas.Count - 1);
            while (currentListSize > datas.Count)
                datas.Add(new SpriteMeshDataDescription("", ""));


            for (int i = 0; i < datas.Count; i++)
            {

                EditorGUILayout.BeginVertical();

                GUILayout.BeginHorizontal();
                GUILayout.Space(20);
                datas[i].fullName = EditorGUILayout.TextField("Name: ", datas[i].fullName);
                GUILayout.EndHorizontal();

                GUILayout.BeginHorizontal();
                GUILayout.Space(20);
                //datas[i].mesh = (SpriteMesh)EditorGUILayout.ObjectField("Mesh: ", datas[i].mesh, typeof(SpriteMesh), true);
                GUILayout.EndHorizontal();

                EditorGUILayout.EndVertical();
                GUILayout.Space(10f);
            }
        }
    }
Пример #2
0
    public List <SpriteMeshDataDescription> loadDescriptions(BodyPart bodyPart, string bundleAssetDirectory)
    {
        string bundleName = m_bodyPartKey[bodyPart];
        List <SpriteMeshDataDescription> result = new List <SpriteMeshDataDescription>();

        var bundle = AssetBundle.LoadFromFile(Path.Combine(bundleAssetDirectory, bundleName));

        m_meshBundles[bodyPart] = bundle;
        if (bundle == null)
        {
            Debug.Log("Failed to load AssetBundle " + bundleName);
        }
        else
        {
            var assets = bundle.GetAllAssetNames();
            foreach (var name in assets)
            {
                var meshDescription = new SpriteMeshDataDescription(getLastPartOfUri(name), name);
                result.Add(meshDescription);
            }
        }
        return(result);
    }