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