using UnityEngine; [ExecuteInEditMode] [AddComponentMenu("Modifiers/Morph Animate")] public class MegaMorphAnim : MonoBehaviour { public string SrcChannel = "None"; public float Percent; private MegaMorphChan channel; public string SrcChannel1 = "None"; public float Percent1; private MegaMorphChan channel1; public string SrcChannel2 = "None"; public float Percent2; private MegaMorphChan channel2; public string SrcChannel3 = "None"; public float Percent3; private MegaMorphChan channel3; public string SrcChannel4 = "None"; public float Percent4; private MegaMorphChan channel4; public string SrcChannel5 = "None"; public float Percent5; private MegaMorphChan channel5; public string SrcChannel6 = "None"; public float Percent6; private MegaMorphChan channel6; public string SrcChannel7 = "None"; public float Percent7; private MegaMorphChan channel7; public string SrcChannel8 = "None"; public float Percent8; private MegaMorphChan channel8; public string SrcChannel9 = "None"; public float Percent9; private MegaMorphChan channel9; public string SrcChannel10 = "None"; public float Percent10; private MegaMorphChan channel10; public string SrcChannel11 = "None"; public float Percent11; private MegaMorphChan channel11; public string SrcChannel12 = "None"; public float Percent12; private MegaMorphChan channel12; public string SrcChannel13 = "None"; public float Percent13; private MegaMorphChan channel13; public string SrcChannel14 = "None"; public float Percent14; private MegaMorphChan channel14; public string SrcChannel15 = "None"; public float Percent15; private MegaMorphChan channel15; public string SrcChannel16 = "None"; public float Percent16; private MegaMorphChan channel16; public string SrcChannel17 = "None"; public float Percent17; private MegaMorphChan channel17; public string SrcChannel18 = "None"; public float Percent18; private MegaMorphChan channel18; public string SrcChannel19 = "None"; public float Percent19; private MegaMorphChan channel19; public string SrcChannel20 = "None"; public float Percent20; private MegaMorphChan channel20; public string SrcChannel21 = "None"; public float Percent21; private MegaMorphChan channel21; public string SrcChannel22 = "None"; public float Percent22; private MegaMorphChan channel22; public string SrcChannel23 = "None"; public float Percent23; private MegaMorphChan channel23; public string SrcChannel24 = "None"; public float Percent24; private MegaMorphChan channel24; public string SrcChannel25 = "None"; public float Percent25; private MegaMorphChan channel25; public string SrcChannel26 = "None"; public float Percent26; private MegaMorphChan channel26; public string SrcChannel27 = "None"; public float Percent27; private MegaMorphChan channel27; public string SrcChannel28 = "None"; public float Percent28; private MegaMorphChan channel28; public string SrcChannel29 = "None"; public float Percent29; private MegaMorphChan channel29; public string SrcChannel30 = "None"; public float Percent30; private MegaMorphChan channel30; public string SrcChannel31 = "None"; public float Percent31; private MegaMorphChan channel31; public string SrcChannel32 = "None"; public float Percent32; private MegaMorphChan channel32; public string SrcChannel33 = "None"; public float Percent33; private MegaMorphChan channel33; public string SrcChannel34 = "None"; public float Percent34; private MegaMorphChan channel34; public string SrcChannel35 = "None"; public float Percent35; private MegaMorphChan channel35; public string SrcChannel36 = "None"; public float Percent36; private MegaMorphChan channel36; public string SrcChannel37 = "None"; public float Percent37; private MegaMorphChan channel37; public string SrcChannel38 = "None"; public float Percent38; private MegaMorphChan channel38; public string SrcChannel39 = "None"; public float Percent39; private MegaMorphChan channel39; public string SrcChannel40 = "None"; public float Percent40; private MegaMorphChan channel40; public string SrcChannel41 = "None"; public float Percent41; private MegaMorphChan channel41; public string SrcChannel42 = "None"; public float Percent42; private MegaMorphChan channel42; public string SrcChannel43 = "None"; public float Percent43; private MegaMorphChan channel43; public string SrcChannel44 = "None"; public float Percent44; private MegaMorphChan channel44; public string SrcChannel45 = "None"; public float Percent45; private MegaMorphChan channel45; public string SrcChannel46 = "None"; public float Percent46; private MegaMorphChan channel46; public string SrcChannel47 = "None"; public float Percent47; private MegaMorphChan channel47; public string SrcChannel48 = "None"; public float Percent48; private MegaMorphChan channel48; public string SrcChannel49 = "None"; public float Percent49; private MegaMorphChan channel49; public string SrcChannel50 = "None"; public float Percent50; private MegaMorphChan channel50; public void GetMinMax(MegaMorph mr, int index, ref float min, ref float max) { MegaMorphChan megaMorphChan = null; switch (index) { case 0: megaMorphChan = channel; break; case 1: megaMorphChan = channel1; break; case 2: megaMorphChan = channel2; break; case 3: megaMorphChan = channel3; break; case 4: megaMorphChan = channel4; break; case 5: megaMorphChan = channel5; break; case 6: megaMorphChan = channel6; break; case 7: megaMorphChan = channel7; break; case 8: megaMorphChan = channel8; break; case 9: megaMorphChan = channel9; break; case 10: megaMorphChan = channel10; break; case 11: megaMorphChan = channel11; break; case 12: megaMorphChan = channel12; break; case 13: megaMorphChan = channel13; break; case 14: megaMorphChan = channel14; break; case 15: megaMorphChan = channel15; break; case 16: megaMorphChan = channel16; break; case 17: megaMorphChan = channel17; break; case 18: megaMorphChan = channel18; break; case 19: megaMorphChan = channel19; break; case 20: megaMorphChan = channel20; break; case 21: megaMorphChan = channel21; break; case 22: megaMorphChan = channel22; break; case 23: megaMorphChan = channel23; break; case 24: megaMorphChan = channel24; break; case 25: megaMorphChan = channel25; break; case 26: megaMorphChan = channel26; break; case 27: megaMorphChan = channel27; break; case 28: megaMorphChan = channel28; break; case 29: megaMorphChan = channel29; break; case 30: megaMorphChan = channel30; break; case 31: megaMorphChan = channel31; break; case 32: megaMorphChan = channel32; break; case 33: megaMorphChan = channel33; break; case 34: megaMorphChan = channel34; break; case 35: megaMorphChan = channel35; break; case 36: megaMorphChan = channel36; break; case 37: megaMorphChan = channel37; break; case 38: megaMorphChan = channel38; break; case 39: megaMorphChan = channel39; break; case 40: megaMorphChan = channel40; break; case 41: megaMorphChan = channel41; break; case 42: megaMorphChan = channel42; break; case 43: megaMorphChan = channel43; break; case 44: megaMorphChan = channel44; break; case 45: megaMorphChan = channel45; break; case 46: megaMorphChan = channel46; break; case 47: megaMorphChan = channel47; break; case 48: megaMorphChan = channel48; break; case 49: megaMorphChan = channel49; break; case 50: megaMorphChan = channel50; break; } if (megaMorphChan != null) { min = megaMorphChan.mSpinmin; max = megaMorphChan.mSpinmax; } else { min = 0f; max = 100f; } } public void SetChannel(MegaMorph mr, int index) { switch (index) { case 0: channel = mr.GetChannel(SrcChannel); break; case 1: channel1 = mr.GetChannel(SrcChannel1); break; case 2: channel2 = mr.GetChannel(SrcChannel2); break; case 3: channel3 = mr.GetChannel(SrcChannel3); break; case 4: channel4 = mr.GetChannel(SrcChannel4); break; case 5: channel5 = mr.GetChannel(SrcChannel5); break; case 6: channel6 = mr.GetChannel(SrcChannel6); break; case 7: channel7 = mr.GetChannel(SrcChannel7); break; case 8: channel8 = mr.GetChannel(SrcChannel8); break; case 9: channel9 = mr.GetChannel(SrcChannel9); break; case 10: channel10 = mr.GetChannel(SrcChannel10); break; case 11: channel11 = mr.GetChannel(SrcChannel11); break; case 12: channel12 = mr.GetChannel(SrcChannel12); break; case 13: channel13 = mr.GetChannel(SrcChannel13); break; case 14: channel14 = mr.GetChannel(SrcChannel14); break; case 15: channel15 = mr.GetChannel(SrcChannel15); break; case 16: channel16 = mr.GetChannel(SrcChannel16); break; case 17: channel17 = mr.GetChannel(SrcChannel17); break; case 18: channel18 = mr.GetChannel(SrcChannel18); break; case 19: channel19 = mr.GetChannel(SrcChannel19); break; case 20: channel20 = mr.GetChannel(SrcChannel20); break; case 21: channel21 = mr.GetChannel(SrcChannel21); break; case 22: channel22 = mr.GetChannel(SrcChannel22); break; case 23: channel23 = mr.GetChannel(SrcChannel23); break; case 24: channel24 = mr.GetChannel(SrcChannel24); break; case 25: channel25 = mr.GetChannel(SrcChannel25); break; case 26: channel26 = mr.GetChannel(SrcChannel26); break; case 27: channel27 = mr.GetChannel(SrcChannel27); break; case 28: channel28 = mr.GetChannel(SrcChannel28); break; case 29: channel29 = mr.GetChannel(SrcChannel29); break; case 30: channel30 = mr.GetChannel(SrcChannel30); break; case 31: channel31 = mr.GetChannel(SrcChannel31); break; case 32: channel32 = mr.GetChannel(SrcChannel32); break; case 33: channel33 = mr.GetChannel(SrcChannel33); break; case 34: channel34 = mr.GetChannel(SrcChannel34); break; case 35: channel35 = mr.GetChannel(SrcChannel35); break; case 36: channel36 = mr.GetChannel(SrcChannel36); break; case 37: channel37 = mr.GetChannel(SrcChannel37); break; case 38: channel38 = mr.GetChannel(SrcChannel38); break; case 39: channel39 = mr.GetChannel(SrcChannel39); break; case 40: channel40 = mr.GetChannel(SrcChannel40); break; case 41: channel41 = mr.GetChannel(SrcChannel41); break; case 42: channel42 = mr.GetChannel(SrcChannel42); break; case 43: channel43 = mr.GetChannel(SrcChannel43); break; case 44: channel44 = mr.GetChannel(SrcChannel44); break; case 45: channel45 = mr.GetChannel(SrcChannel45); break; case 46: channel46 = mr.GetChannel(SrcChannel46); break; case 47: channel47 = mr.GetChannel(SrcChannel47); break; case 48: channel48 = mr.GetChannel(SrcChannel48); break; case 49: channel49 = mr.GetChannel(SrcChannel49); break; case 50: channel50 = mr.GetChannel(SrcChannel50); break; } } private void Start() { MegaMorph component = GetComponent(); if (component != null) { channel = component.GetChannel(SrcChannel); channel1 = component.GetChannel(SrcChannel1); channel2 = component.GetChannel(SrcChannel2); channel3 = component.GetChannel(SrcChannel3); channel4 = component.GetChannel(SrcChannel4); channel5 = component.GetChannel(SrcChannel5); channel6 = component.GetChannel(SrcChannel6); channel7 = component.GetChannel(SrcChannel7); channel8 = component.GetChannel(SrcChannel8); channel9 = component.GetChannel(SrcChannel9); channel10 = component.GetChannel(SrcChannel10); channel11 = component.GetChannel(SrcChannel11); channel12 = component.GetChannel(SrcChannel12); channel13 = component.GetChannel(SrcChannel13); channel14 = component.GetChannel(SrcChannel14); channel15 = component.GetChannel(SrcChannel15); channel16 = component.GetChannel(SrcChannel16); channel17 = component.GetChannel(SrcChannel17); channel18 = component.GetChannel(SrcChannel18); channel19 = component.GetChannel(SrcChannel19); channel20 = component.GetChannel(SrcChannel20); channel21 = component.GetChannel(SrcChannel21); channel22 = component.GetChannel(SrcChannel22); channel23 = component.GetChannel(SrcChannel23); channel24 = component.GetChannel(SrcChannel24); channel25 = component.GetChannel(SrcChannel25); channel26 = component.GetChannel(SrcChannel26); channel27 = component.GetChannel(SrcChannel27); channel28 = component.GetChannel(SrcChannel28); channel29 = component.GetChannel(SrcChannel29); channel30 = component.GetChannel(SrcChannel30); channel31 = component.GetChannel(SrcChannel31); channel32 = component.GetChannel(SrcChannel32); channel33 = component.GetChannel(SrcChannel33); channel34 = component.GetChannel(SrcChannel34); channel35 = component.GetChannel(SrcChannel35); channel36 = component.GetChannel(SrcChannel36); channel37 = component.GetChannel(SrcChannel37); channel38 = component.GetChannel(SrcChannel38); channel39 = component.GetChannel(SrcChannel39); channel40 = component.GetChannel(SrcChannel40); channel41 = component.GetChannel(SrcChannel41); channel42 = component.GetChannel(SrcChannel42); channel43 = component.GetChannel(SrcChannel43); channel44 = component.GetChannel(SrcChannel44); channel45 = component.GetChannel(SrcChannel45); channel46 = component.GetChannel(SrcChannel46); channel47 = component.GetChannel(SrcChannel47); channel48 = component.GetChannel(SrcChannel48); channel49 = component.GetChannel(SrcChannel49); channel50 = component.GetChannel(SrcChannel50); } } private void Update() { if (channel != null) { channel.Percent = Percent; } if (channel1 != null) { channel1.Percent = Percent1; } if (channel2 != null) { channel2.Percent = Percent2; } if (channel3 != null) { channel3.Percent = Percent3; } if (channel4 != null) { channel4.Percent = Percent4; } if (channel5 != null) { channel5.Percent = Percent5; } if (channel6 != null) { channel6.Percent = Percent6; } if (channel7 != null) { channel7.Percent = Percent7; } if (channel8 != null) { channel8.Percent = Percent8; } if (channel9 != null) { channel9.Percent = Percent9; } if (channel10 != null) { channel10.Percent = Percent10; } if (channel11 != null) { channel11.Percent = Percent11; } if (channel12 != null) { channel12.Percent = Percent12; } if (channel13 != null) { channel13.Percent = Percent13; } if (channel14 != null) { channel14.Percent = Percent14; } if (channel15 != null) { channel15.Percent = Percent15; } if (channel16 != null) { channel16.Percent = Percent16; } if (channel17 != null) { channel17.Percent = Percent17; } if (channel18 != null) { channel18.Percent = Percent18; } if (channel19 != null) { channel19.Percent = Percent19; } if (channel20 != null) { channel20.Percent = Percent20; } if (channel21 != null) { channel21.Percent = Percent21; } if (channel22 != null) { channel22.Percent = Percent22; } if (channel23 != null) { channel23.Percent = Percent23; } if (channel24 != null) { channel24.Percent = Percent24; } if (channel25 != null) { channel25.Percent = Percent25; } if (channel26 != null) { channel26.Percent = Percent26; } if (channel27 != null) { channel27.Percent = Percent27; } if (channel28 != null) { channel28.Percent = Percent28; } if (channel29 != null) { channel29.Percent = Percent29; } if (channel30 != null) { channel30.Percent = Percent30; } if (channel31 != null) { channel31.Percent = Percent31; } if (channel32 != null) { channel32.Percent = Percent32; } if (channel33 != null) { channel33.Percent = Percent33; } if (channel34 != null) { channel34.Percent = Percent34; } if (channel35 != null) { channel35.Percent = Percent35; } if (channel36 != null) { channel36.Percent = Percent36; } if (channel37 != null) { channel37.Percent = Percent37; } if (channel38 != null) { channel38.Percent = Percent38; } if (channel39 != null) { channel39.Percent = Percent39; } if (channel40 != null) { channel40.Percent = Percent40; } if (channel41 != null) { channel41.Percent = Percent41; } if (channel42 != null) { channel42.Percent = Percent42; } if (channel43 != null) { channel43.Percent = Percent43; } if (channel44 != null) { channel44.Percent = Percent44; } if (channel45 != null) { channel45.Percent = Percent45; } if (channel46 != null) { channel46.Percent = Percent46; } if (channel47 != null) { channel47.Percent = Percent47; } if (channel48 != null) { channel48.Percent = Percent48; } if (channel49 != null) { channel49.Percent = Percent49; } if (channel50 != null) { channel50.Percent = Percent50; } } }