// TODO: Need none in the popup to clear a channel public override void OnInspectorGUI() { MegaMorphAnim anim = (MegaMorphAnim)target; MegaMorph morph = anim.gameObject.GetComponent <MegaMorph>(); if (morph != null) { string[] channels = morph.GetChannelNames(); int index = GetIndex(anim.SrcChannel, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel = channels[index]; anim.SetChannel(morph, 0); } float min = 0.0f; float max = 100.0f; anim.GetMinMax(morph, 0, ref min, ref max); anim.Percent = EditorGUILayout.Slider("Percent", anim.Percent, min, max); if (index != -1) { index = GetIndex(anim.SrcChannel1, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel1 = channels[index]; anim.SetChannel(morph, 1); } anim.GetMinMax(morph, 1, ref min, ref max); anim.Percent1 = EditorGUILayout.Slider("Percent", anim.Percent1, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel2, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel2 = channels[index]; anim.SetChannel(morph, 2); } anim.GetMinMax(morph, 2, ref min, ref max); anim.Percent2 = EditorGUILayout.Slider("Percent", anim.Percent2, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel3, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel3 = channels[index]; anim.SetChannel(morph, 3); } anim.GetMinMax(morph, 3, ref min, ref max); anim.Percent3 = EditorGUILayout.Slider("Percent", anim.Percent3, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel4, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel4 = channels[index]; anim.SetChannel(morph, 4); } anim.GetMinMax(morph, 4, ref min, ref max); anim.Percent4 = EditorGUILayout.Slider("Percent", anim.Percent4, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel5, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel5 = channels[index]; anim.SetChannel(morph, 5); } anim.GetMinMax(morph, 5, ref min, ref max); anim.Percent5 = EditorGUILayout.Slider("Percent", anim.Percent5, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel6, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel6 = channels[index]; anim.SetChannel(morph, 6); } anim.GetMinMax(morph, 6, ref min, ref max); anim.Percent6 = EditorGUILayout.Slider("Percent", anim.Percent6, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel7, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel7 = channels[index]; anim.SetChannel(morph, 7); } anim.GetMinMax(morph, 7, ref min, ref max); anim.Percent7 = EditorGUILayout.Slider("Percent", anim.Percent7, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel8, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel8 = channels[index]; anim.SetChannel(morph, 8); } anim.GetMinMax(morph, 8, ref min, ref max); anim.Percent8 = EditorGUILayout.Slider("Percent", anim.Percent8, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel9, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel9 = channels[index]; anim.SetChannel(morph, 9); } anim.GetMinMax(morph, 9, ref min, ref max); anim.Percent9 = EditorGUILayout.Slider("Percent", anim.Percent9, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel10, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel10 = channels[index]; anim.SetChannel(morph, 10); } anim.GetMinMax(morph, 10, ref min, ref max); anim.Percent10 = EditorGUILayout.Slider("Percent", anim.Percent10, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel11, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel11 = channels[index]; anim.SetChannel(morph, 11); } anim.GetMinMax(morph, 11, ref min, ref max); anim.Percent11 = EditorGUILayout.Slider("Percent", anim.Percent11, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel12, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel12 = channels[index]; anim.SetChannel(morph, 12); } anim.GetMinMax(morph, 12, ref min, ref max); anim.Percent12 = EditorGUILayout.Slider("Percent", anim.Percent12, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel13, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel13 = channels[index]; anim.SetChannel(morph, 13); } anim.GetMinMax(morph, 13, ref min, ref max); anim.Percent13 = EditorGUILayout.Slider("Percent", anim.Percent13, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel14, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel14 = channels[index]; anim.SetChannel(morph, 14); } anim.GetMinMax(morph, 14, ref min, ref max); anim.Percent14 = EditorGUILayout.Slider("Percent", anim.Percent14, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel15, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel15 = channels[index]; anim.SetChannel(morph, 15); } anim.GetMinMax(morph, 15, ref min, ref max); anim.Percent15 = EditorGUILayout.Slider("Percent", anim.Percent15, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel16, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel16 = channels[index]; anim.SetChannel(morph, 16); } anim.GetMinMax(morph, 16, ref min, ref max); anim.Percent16 = EditorGUILayout.Slider("Percent", anim.Percent16, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel17, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel17 = channels[index]; anim.SetChannel(morph, 17); } anim.GetMinMax(morph, 17, ref min, ref max); anim.Percent17 = EditorGUILayout.Slider("Percent", anim.Percent17, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel18, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel18 = channels[index]; anim.SetChannel(morph, 18); } anim.GetMinMax(morph, 18, ref min, ref max); anim.Percent18 = EditorGUILayout.Slider("Percent", anim.Percent18, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel19, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel19 = channels[index]; anim.SetChannel(morph, 19); } anim.GetMinMax(morph, 19, ref min, ref max); anim.Percent19 = EditorGUILayout.Slider("Percent", anim.Percent19, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel20, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel20 = channels[index]; anim.SetChannel(morph, 20); } anim.GetMinMax(morph, 20, ref min, ref max); anim.Percent20 = EditorGUILayout.Slider("Percent", anim.Percent20, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel21, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel21 = channels[index]; anim.SetChannel(morph, 21); } anim.GetMinMax(morph, 21, ref min, ref max); anim.Percent21 = EditorGUILayout.Slider("Percent", anim.Percent21, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel22, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel22 = channels[index]; anim.SetChannel(morph, 22); } anim.GetMinMax(morph, 22, ref min, ref max); anim.Percent22 = EditorGUILayout.Slider("Percent", anim.Percent22, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel23, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel23 = channels[index]; anim.SetChannel(morph, 23); } anim.GetMinMax(morph, 23, ref min, ref max); anim.Percent23 = EditorGUILayout.Slider("Percent", anim.Percent23, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel24, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel24 = channels[index]; anim.SetChannel(morph, 24); } anim.GetMinMax(morph, 24, ref min, ref max); anim.Percent24 = EditorGUILayout.Slider("Percent", anim.Percent24, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel25, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel25 = channels[index]; anim.SetChannel(morph, 25); } anim.GetMinMax(morph, 25, ref min, ref max); anim.Percent25 = EditorGUILayout.Slider("Percent", anim.Percent25, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel26, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel16 = channels[index]; anim.SetChannel(morph, 26); } anim.GetMinMax(morph, 26, ref min, ref max); anim.Percent26 = EditorGUILayout.Slider("Percent", anim.Percent26, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel27, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel27 = channels[index]; anim.SetChannel(morph, 27); } anim.GetMinMax(morph, 27, ref min, ref max); anim.Percent27 = EditorGUILayout.Slider("Percent", anim.Percent27, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel28, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel28 = channels[index]; anim.SetChannel(morph, 28); } anim.GetMinMax(morph, 28, ref min, ref max); anim.Percent28 = EditorGUILayout.Slider("Percent", anim.Percent28, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel29, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel29 = channels[index]; anim.SetChannel(morph, 29); } anim.GetMinMax(morph, 29, ref min, ref max); anim.Percent29 = EditorGUILayout.Slider("Percent", anim.Percent29, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel30, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel30 = channels[index]; anim.SetChannel(morph, 30); } anim.GetMinMax(morph, 30, ref min, ref max); anim.Percent30 = EditorGUILayout.Slider("Percent", anim.Percent30, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel31, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel31 = channels[index]; anim.SetChannel(morph, 31); } anim.GetMinMax(morph, 31, ref min, ref max); anim.Percent31 = EditorGUILayout.Slider("Percent", anim.Percent31, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel32, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel32 = channels[index]; anim.SetChannel(morph, 32); } anim.GetMinMax(morph, 32, ref min, ref max); anim.Percent32 = EditorGUILayout.Slider("Percent", anim.Percent32, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel33, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel33 = channels[index]; anim.SetChannel(morph, 33); } anim.GetMinMax(morph, 33, ref min, ref max); anim.Percent33 = EditorGUILayout.Slider("Percent", anim.Percent33, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel34, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel34 = channels[index]; anim.SetChannel(morph, 34); } anim.GetMinMax(morph, 34, ref min, ref max); anim.Percent34 = EditorGUILayout.Slider("Percent", anim.Percent34, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel35, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel35 = channels[index]; anim.SetChannel(morph, 35); } anim.GetMinMax(morph, 35, ref min, ref max); anim.Percent35 = EditorGUILayout.Slider("Percent", anim.Percent35, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel36, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel36 = channels[index]; anim.SetChannel(morph, 36); } anim.GetMinMax(morph, 36, ref min, ref max); anim.Percent36 = EditorGUILayout.Slider("Percent", anim.Percent36, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel37, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel37 = channels[index]; anim.SetChannel(morph, 37); } anim.GetMinMax(morph, 37, ref min, ref max); anim.Percent37 = EditorGUILayout.Slider("Percent", anim.Percent37, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel38, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel38 = channels[index]; anim.SetChannel(morph, 38); } anim.GetMinMax(morph, 38, ref min, ref max); anim.Percent38 = EditorGUILayout.Slider("Percent", anim.Percent38, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel39, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel39 = channels[index]; anim.SetChannel(morph, 39); } anim.GetMinMax(morph, 39, ref min, ref max); anim.Percent39 = EditorGUILayout.Slider("Percent", anim.Percent39, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel40, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel40 = channels[index]; anim.SetChannel(morph, 40); } anim.GetMinMax(morph, 40, ref min, ref max); anim.Percent40 = EditorGUILayout.Slider("Percent", anim.Percent40, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel41, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel41 = channels[index]; anim.SetChannel(morph, 41); } anim.GetMinMax(morph, 41, ref min, ref max); anim.Percent41 = EditorGUILayout.Slider("Percent", anim.Percent41, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel42, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel42 = channels[index]; anim.SetChannel(morph, 42); } anim.GetMinMax(morph, 42, ref min, ref max); anim.Percent42 = EditorGUILayout.Slider("Percent", anim.Percent42, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel43, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel43 = channels[index]; anim.SetChannel(morph, 43); } anim.GetMinMax(morph, 43, ref min, ref max); anim.Percent43 = EditorGUILayout.Slider("Percent", anim.Percent43, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel44, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel44 = channels[index]; anim.SetChannel(morph, 44); } anim.GetMinMax(morph, 44, ref min, ref max); anim.Percent44 = EditorGUILayout.Slider("Percent", anim.Percent44, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel45, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel45 = channels[index]; anim.SetChannel(morph, 45); } anim.GetMinMax(morph, 45, ref min, ref max); anim.Percent45 = EditorGUILayout.Slider("Percent", anim.Percent45, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel46, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel46 = channels[index]; anim.SetChannel(morph, 46); } anim.GetMinMax(morph, 46, ref min, ref max); anim.Percent46 = EditorGUILayout.Slider("Percent", anim.Percent46, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel47, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel47 = channels[index]; anim.SetChannel(morph, 47); } anim.GetMinMax(morph, 47, ref min, ref max); anim.Percent47 = EditorGUILayout.Slider("Percent", anim.Percent47, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel48, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel48 = channels[index]; anim.SetChannel(morph, 48); } anim.GetMinMax(morph, 48, ref min, ref max); anim.Percent48 = EditorGUILayout.Slider("Percent", anim.Percent48, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel49, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel49 = channels[index]; anim.SetChannel(morph, 49); } anim.GetMinMax(morph, 49, ref min, ref max); anim.Percent49 = EditorGUILayout.Slider("Percent", anim.Percent49, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel50, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel50 = channels[index]; anim.SetChannel(morph, 50); } anim.GetMinMax(morph, 50, ref min, ref max); anim.Percent50 = EditorGUILayout.Slider("Percent", anim.Percent50, min, max); } if (GUI.changed) { EditorUtility.SetDirty(target); } } }
// TODO: Need none in the popup to clear a channel public override void OnInspectorGUI() { MegaMorphAnim anim = (MegaMorphAnim)target; MegaMorph morph = anim.gameObject.GetComponent <MegaMorph>(); if (morph != null) { string[] channels = morph.GetChannelNames(); int index = GetIndex(anim.SrcChannel, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel = channels[index]; anim.SetChannel(morph, 0); } float min = 0.0f; float max = 100.0f; anim.GetMinMax(morph, 0, ref min, ref max); anim.Percent = EditorGUILayout.Slider("Percent", anim.Percent, min, max); if (index != -1) { index = GetIndex(anim.SrcChannel1, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel1 = channels[index]; anim.SetChannel(morph, 1); } anim.GetMinMax(morph, 1, ref min, ref max); anim.Percent1 = EditorGUILayout.Slider("Percent", anim.Percent1, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel2, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel2 = channels[index]; anim.SetChannel(morph, 2); } anim.GetMinMax(morph, 2, ref min, ref max); anim.Percent2 = EditorGUILayout.Slider("Percent", anim.Percent2, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel3, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel3 = channels[index]; anim.SetChannel(morph, 3); } anim.GetMinMax(morph, 3, ref min, ref max); anim.Percent3 = EditorGUILayout.Slider("Percent", anim.Percent3, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel4, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel4 = channels[index]; anim.SetChannel(morph, 4); } anim.GetMinMax(morph, 4, ref min, ref max); anim.Percent4 = EditorGUILayout.Slider("Percent", anim.Percent4, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel5, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel5 = channels[index]; anim.SetChannel(morph, 5); } anim.GetMinMax(morph, 5, ref min, ref max); anim.Percent5 = EditorGUILayout.Slider("Percent", anim.Percent5, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel6, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel6 = channels[index]; anim.SetChannel(morph, 6); } anim.GetMinMax(morph, 6, ref min, ref max); anim.Percent6 = EditorGUILayout.Slider("Percent", anim.Percent6, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel7, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel7 = channels[index]; anim.SetChannel(morph, 7); } anim.GetMinMax(morph, 7, ref min, ref max); anim.Percent7 = EditorGUILayout.Slider("Percent", anim.Percent7, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel8, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel8 = channels[index]; anim.SetChannel(morph, 8); } anim.GetMinMax(morph, 8, ref min, ref max); anim.Percent8 = EditorGUILayout.Slider("Percent", anim.Percent8, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel9, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel9 = channels[index]; anim.SetChannel(morph, 9); } anim.GetMinMax(morph, 9, ref min, ref max); anim.Percent9 = EditorGUILayout.Slider("Percent", anim.Percent9, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel10, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel10 = channels[index]; anim.SetChannel(morph, 10); } anim.GetMinMax(morph, 10, ref min, ref max); anim.Percent10 = EditorGUILayout.Slider("Percent", anim.Percent10, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel11, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel11 = channels[index]; anim.SetChannel(morph, 11); } anim.GetMinMax(morph, 11, ref min, ref max); anim.Percent11 = EditorGUILayout.Slider("Percent", anim.Percent11, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel12, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel12 = channels[index]; anim.SetChannel(morph, 12); } anim.GetMinMax(morph, 12, ref min, ref max); anim.Percent12 = EditorGUILayout.Slider("Percent", anim.Percent12, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel13, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel13 = channels[index]; anim.SetChannel(morph, 13); } anim.GetMinMax(morph, 13, ref min, ref max); anim.Percent13 = EditorGUILayout.Slider("Percent", anim.Percent13, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel14, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel14 = channels[index]; anim.SetChannel(morph, 14); } anim.GetMinMax(morph, 14, ref min, ref max); anim.Percent14 = EditorGUILayout.Slider("Percent", anim.Percent14, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel15, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel15 = channels[index]; anim.SetChannel(morph, 15); } anim.GetMinMax(morph, 15, ref min, ref max); anim.Percent15 = EditorGUILayout.Slider("Percent", anim.Percent15, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel16, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel16 = channels[index]; anim.SetChannel(morph, 16); } anim.GetMinMax(morph, 16, ref min, ref max); anim.Percent16 = EditorGUILayout.Slider("Percent", anim.Percent16, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel17, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel17 = channels[index]; anim.SetChannel(morph, 17); } anim.GetMinMax(morph, 17, ref min, ref max); anim.Percent17 = EditorGUILayout.Slider("Percent", anim.Percent17, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel18, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel18 = channels[index]; anim.SetChannel(morph, 18); } anim.GetMinMax(morph, 18, ref min, ref max); anim.Percent18 = EditorGUILayout.Slider("Percent", anim.Percent18, min, max); } if (index != -1) { index = GetIndex(anim.SrcChannel19, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel19 = channels[index]; anim.SetChannel(morph, 19); } anim.GetMinMax(morph, 19, ref min, ref max); anim.Percent19 = EditorGUILayout.Slider("Percent", anim.Percent19, min, max); } if (GUI.changed) { EditorUtility.SetDirty(target); } } }
// TODO: Need none in the popup to clear a channel public override void OnInspectorGUI() { MegaMorphLink anim = (MegaMorphLink)target; anim.morph = (MegaMorph)EditorGUILayout.ObjectField("Morph", anim.morph, typeof(MegaMorph), true); MegaMorph morph = anim.morph; //gameObject.GetComponent<MegaMorph>(); if (morph != null) { if (GUILayout.Button("Add Link")) { MegaMorphLinkDesc desc = new MegaMorphLinkDesc(); anim.links.Add(desc); } string[] channels = morph.GetChannelNames(); for (int i = 0; i < anim.links.Count; i++) { MegaMorphLinkDesc md = anim.links[i]; md.name = EditorGUILayout.TextField("Name", md.name); //md.active = EditorGUILayout.Toggle("Active", md.active); //if ( md.active ) md.active = EditorGUILayout.BeginToggleGroup("Active", md.active); { md.channel = EditorGUILayout.Popup("Channel", md.channel, channels); md.target = (Transform)EditorGUILayout.ObjectField("Target", md.target, typeof(Transform), true); md.src = (MegaLinkSrc)EditorGUILayout.EnumPopup("Source", md.src); if (md.src != MegaLinkSrc.Angle && md.src != MegaLinkSrc.DotRotation) { md.axis = (MegaAxis)EditorGUILayout.EnumPopup("Axis", md.axis); } EditorGUILayout.LabelField("Val", md.GetVal().ToString()); md.min = EditorGUILayout.FloatField("Min", md.min); md.max = EditorGUILayout.FloatField("Max", md.max); md.low = EditorGUILayout.FloatField("Low", md.low); md.high = EditorGUILayout.FloatField("High", md.high); md.useCurve = EditorGUILayout.BeginToggleGroup("Use Curve", md.useCurve); md.curve = EditorGUILayout.CurveField("Curve", md.curve); EditorGUILayout.EndToggleGroup(); if (md.src == MegaLinkSrc.Angle || md.src == MegaLinkSrc.DotRotation) { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Set Start Rot")) { if (md.target) { md.rot = md.target.localRotation; } } //if ( GUILayout.Button("Set End Rot") ) //{ //if ( md.target ) //{ //Quaternion rot = md.target.localRotation; // md.max = md.GetVal(); //} //} EditorGUILayout.EndHorizontal(); } EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Set Min Val")) { if (md.target) { md.min = md.GetVal(); } //md.rot = md.target.localRotation; } if (GUILayout.Button("Set Max Val")) { if (md.target) { //Quaternion rot = md.target.localRotation; md.max = md.GetVal(); } } EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndToggleGroup(); if (GUILayout.Button("Delete")) { anim.links.RemoveAt(i); i--; } } if (GUI.changed) { EditorUtility.SetDirty(target); } } }
// TODO: Need none in the popup to clear a channel public override void OnInspectorGUI() { MegaMorphAnim anim = (MegaMorphAnim)target; MegaMorph morph = anim.gameObject.GetComponent <MegaMorph>(); if (morph != null) { string[] channels = morph.GetChannelNames(); int index = GetIndex(anim.SrcChannel, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel = channels[index]; anim.SetChannel(morph, 0); } anim.Percent = EditorGUILayout.Slider("Percent", anim.Percent, 0.0f, 100.0f); if (index != -1) { index = GetIndex(anim.SrcChannel1, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel1 = channels[index]; anim.SetChannel(morph, 1); } anim.Percent1 = EditorGUILayout.Slider("Percent", anim.Percent1, 0.0f, 100.0f); } if (index != -1) { index = GetIndex(anim.SrcChannel2, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel2 = channels[index]; anim.SetChannel(morph, 2); } anim.Percent2 = EditorGUILayout.Slider("Percent", anim.Percent2, 0.0f, 100.0f); } if (index != -1) { index = GetIndex(anim.SrcChannel3, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel3 = channels[index]; anim.SetChannel(morph, 3); } anim.Percent3 = EditorGUILayout.Slider("Percent", anim.Percent3, 0.0f, 100.0f); } if (index != -1) { index = GetIndex(anim.SrcChannel4, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel4 = channels[index]; anim.SetChannel(morph, 4); } anim.Percent4 = EditorGUILayout.Slider("Percent", anim.Percent4, 0.0f, 100.0f); } if (index != -1) { index = GetIndex(anim.SrcChannel5, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel5 = channels[index]; anim.SetChannel(morph, 5); } anim.Percent5 = EditorGUILayout.Slider("Percent", anim.Percent5, 0.0f, 100.0f); } if (index != -1) { index = GetIndex(anim.SrcChannel6, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel6 = channels[index]; anim.SetChannel(morph, 6); } anim.Percent6 = EditorGUILayout.Slider("Percent", anim.Percent6, 0.0f, 100.0f); } if (index != -1) { index = GetIndex(anim.SrcChannel7, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel7 = channels[index]; anim.SetChannel(morph, 7); } anim.Percent7 = EditorGUILayout.Slider("Percent", anim.Percent7, 0.0f, 100.0f); } if (index != -1) { index = GetIndex(anim.SrcChannel8, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel8 = channels[index]; anim.SetChannel(morph, 8); } anim.Percent8 = EditorGUILayout.Slider("Percent", anim.Percent8, 0.0f, 100.0f); } if (index != -1) { index = GetIndex(anim.SrcChannel9, channels); index = EditorGUILayout.Popup("Source Channel", index, channels); if (index != -1) { anim.SrcChannel9 = channels[index]; anim.SetChannel(morph, 9); } anim.Percent9 = EditorGUILayout.Slider("Percent", anim.Percent9, 0.0f, 100.0f); } if (GUI.changed) { EditorUtility.SetDirty(target); } } }