Esempio n. 1
0
        private void GUIPaintItem(FaceBaseData data, int ix)
        {
            PaintData pdata = data as PaintData;

            EditorGUILayout.Space();
            pdata.offset = EditorGUILayout.Vector2Field("offset  ", pdata.offset);
            if (pdata.offset == Vector2.zero)
            {
                pdata.offset = 256 * Vector2.one;
            }
            GUILayout.BeginHorizontal();
            GUILayout.Label("texture");

            int pindx = ix;

            if (!string.IsNullOrEmpty(pdata.texture) && paintings[pindx] == null)
            {
                paintings[pindx] = AssetDatabase.LoadAssetAtPath <Texture2D>("Assets/BundleRes/Knead/" + pdata.texture + "_female.tga");
            }
            paintings[pindx] = EditorGUILayout.ObjectField(paintings[pindx], typeof(Texture2D), true);
            if (paintings[pindx] != null)
            {
                string str = paintings[pindx].name;
                pdata.texture = str.Remove(str.LastIndexOf('_'));
                GUILayout.Label(pdata.texture);
            }
            else
            {
                pdata.texture = "";
            }
            GUILayout.EndHorizontal();
        }
Esempio n. 2
0
 private void GuiItem(FaceBaseData data, int ix)
 {
     folds[ix] = EditorGUILayout.Foldout(folds[ix], data.name);
     if (folds[ix])
     {
         EditorGUILayout.BeginHorizontal();
         EditorGUILayout.BeginVertical();
         int jx = startIndx[ix];
         if (data.v2Type != FaceV2Type.None)
         {
             int    idx  = (int)data.v2Type;
             string name = XEditorUtil.Config.facev2Type[idx];
             GuiSlider(name + "X", data.v2ID, ref jx);
             GuiSlider(name + "Y", data.v2ID2, ref jx);
         }
         else if (data.values != null)
         {
             for (int i = 0; i < data.values.Length; i++)
             {
                 FaceValueType type = data.values[i];
                 string        name = XEditorUtil.Config.faceType[(int)type];
                 GuiSlider(name, data.properities[i], ref jx);
             }
         }
         EditorGUILayout.EndVertical();
         EditorGUILayout.Space();
         if (!string.IsNullOrEmpty(data.icon) && icons[ix] == null)
         {
             icons[ix] = AssetDatabase.LoadAssetAtPath <Texture>(XEditorUtil.uiFace + data.icon + ".png");
         }
         EditorGUILayout.ObjectField(icons[ix], typeof(Texture), true, GUILayout.Width(56), GUILayout.Height(56));
         EditorGUILayout.EndHorizontal();
     }
 }
Esempio n. 3
0
        private int BindItem(FaceBaseData data)
        {
            int cnt = 0;

            if (data.v2Type != FaceV2Type.None)
            {
                cnt += 2;
            }
            if (data.values != null)
            {
                cnt += data.values.Length;
            }
            return(cnt);
        }
Esempio n. 4
0
 private void NeuralItem(float[] boneArgs, FaceBaseData data, ref int ix)
 {
     if (data.v2Type != FaceV2Type.None)
     {
         float v = boneArgs[ix++];
         ProcessKneadBone(data.v2ID, 2 * v - 1);
         v = boneArgs[ix++];
         ProcessKneadBone(data.v2ID2, 2 * v - 1);
     }
     if (data.properities != null)
     {
         for (int i = 0; i < data.properities.Length; i++)
         {
             float v = boneArgs[ix++];
             ProcessKneadBone(data.properities[i], 2 * v - 1);
         }
     }
 }
Esempio n. 5
0
        private void GUIFaceBase(FaceBaseData data, int indx, int ix)
        {
            data.name = EditorGUILayout.TextField("name", data.name);
            if (string.IsNullOrEmpty(data.name))
            {
                EditorGUILayout.HelpBox("name can not be null", MessageType.Warning);
            }

            GUILayout.BeginHorizontal();
            GUILayout.Label("icon");
            GUILayout.FlexibleSpace();
            GUILayout.BeginVertical();
            if (!string.IsNullOrEmpty(data.icon))
            {
                icons[indx] = AssetDatabase.LoadAssetAtPath <Texture>(XEditorUtil.uiFace + data.icon + ".png");
            }
            icons[indx] = EditorGUILayout.ObjectField(icons[indx], typeof(Texture), true, GUILayout.Width(64), GUILayout.Height(64));
            if (icons[indx] != null)
            {
                data.icon = icons[indx].name;
                GUILayout.Label((icons[indx]).name);
            }
            GUILayout.EndVertical();
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            bool v2add = false;

            if (data.v2Type == FaceV2Type.None)
            {
                v2add = GUILayout.Button("AddV2Item", XEditorUtil.boldButtonStyle);
            }
            if (GUILayout.Button("AddV1Item", XEditorUtil.boldButtonStyle))
            {
                if (data.properities == null || data.properities.Length < maxv1)
                {
                    Add <int>(ref data.properities, data is PaintData ? (maxid + 1) : 1);
                    Add <FaceValueType>(ref data.values, FaceValueType.BigSmall);
                }
                else
                {
                    UnityEditor.EditorUtility.DisplayDialog("Warn", "You add item too much!", "OK");
                }
            }
            GUILayout.EndHorizontal();
            if (v2add)
            {
                data.v2Type = FaceV2Type.Position;
            }
            if (data.v2Type != FaceV2Type.None)
            {
                data.v2Type = (FaceV2Type)EditorGUILayout.EnumPopup("v2Type", data.v2Type);
                data.v2ID   = EditorGUILayout.IntField("v2ID1: ", data.v2ID);
                data.v2ID2  = EditorGUILayout.IntField("v2ID2: ", data.v2ID2);
            }
            if (data.values != null)
            {
                for (int i = data.values.Length - 1; i >= 0; i--)
                {
                    if (data.values[i] == FaceValueType.None)
                    {
                        data.properities = Remv <int>(data.properities, i);
                        data.values      = Remv <FaceValueType>(data.values, i);
                    }
                }
                if (data.properities.Length > data.values.Length)
                {
                    for (int i = data.values.Length; i < data.properities.Length; i++)
                    {
                        data.properities = Remv <int>(data.properities, i);
                    }
                }
                for (int i = 0; i < data.properities.Length; i++)
                {
                    GUIItem(ref data.values[i], ref data.properities[i]);
                }
                if (data is PaintData)
                {
                    GUIPaintItem(data, ix);
                }
            }

            data.camPos   = EditorGUILayout.Vector3Field("camera pos", data.camPos);
            data.dummyRot = EditorGUILayout.FloatField("player rot", data.dummyRot);
            EditorGUILayout.Space();
        }