MegaMorphAnimEditor.cs 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709
  1. 
  2. using UnityEngine;
  3. using UnityEditor;
  4. [CanEditMultipleObjects, CustomEditor(typeof(MegaMorphAnim))]
  5. public class MegaMorphAnimEditor : Editor
  6. {
  7. int GetIndex(string name, string[] channels)
  8. {
  9. int index = -1;
  10. for ( int i = 0; i < channels.Length; i++ )
  11. {
  12. if ( channels[i] == name )
  13. {
  14. index = i;
  15. break;
  16. }
  17. }
  18. return index;
  19. }
  20. // TODO: Need none in the popup to clear a channel
  21. public override void OnInspectorGUI()
  22. {
  23. MegaMorphAnim anim = (MegaMorphAnim)target;
  24. MegaMorph morph = anim.gameObject.GetComponent<MegaMorph>();
  25. if ( morph != null )
  26. {
  27. string[] channels = morph.GetChannelNames();
  28. int index = GetIndex(anim.SrcChannel, channels);
  29. index = EditorGUILayout.Popup("Source Channel", index, channels);
  30. if ( index != -1 )
  31. {
  32. anim.SrcChannel = channels[index];
  33. anim.SetChannel(morph, 0);
  34. }
  35. float min = 0.0f;
  36. float max = 100.0f;
  37. anim.GetMinMax(morph, 0, ref min, ref max);
  38. anim.Percent = EditorGUILayout.Slider("Percent", anim.Percent, min, max);
  39. if ( index != -1 )
  40. {
  41. index = GetIndex(anim.SrcChannel1, channels);
  42. index = EditorGUILayout.Popup("Source Channel", index, channels);
  43. if ( index != -1 )
  44. {
  45. anim.SrcChannel1 = channels[index];
  46. anim.SetChannel(morph, 1);
  47. }
  48. anim.GetMinMax(morph, 1, ref min, ref max);
  49. anim.Percent1 = EditorGUILayout.Slider("Percent", anim.Percent1, min, max);
  50. }
  51. if ( index != -1 )
  52. {
  53. index = GetIndex(anim.SrcChannel2, channels);
  54. index = EditorGUILayout.Popup("Source Channel", index, channels);
  55. if ( index != -1 )
  56. {
  57. anim.SrcChannel2 = channels[index];
  58. anim.SetChannel(morph, 2);
  59. }
  60. anim.GetMinMax(morph, 2, ref min, ref max);
  61. anim.Percent2 = EditorGUILayout.Slider("Percent", anim.Percent2, min, max);
  62. }
  63. if ( index != -1 )
  64. {
  65. index = GetIndex(anim.SrcChannel3, channels);
  66. index = EditorGUILayout.Popup("Source Channel", index, channels);
  67. if ( index != -1 )
  68. {
  69. anim.SrcChannel3 = channels[index];
  70. anim.SetChannel(morph, 3);
  71. }
  72. anim.GetMinMax(morph, 3, ref min, ref max);
  73. anim.Percent3 = EditorGUILayout.Slider("Percent", anim.Percent3, min, max);
  74. }
  75. if ( index != -1 )
  76. {
  77. index = GetIndex(anim.SrcChannel4, channels);
  78. index = EditorGUILayout.Popup("Source Channel", index, channels);
  79. if ( index != -1 )
  80. {
  81. anim.SrcChannel4 = channels[index];
  82. anim.SetChannel(morph, 4);
  83. }
  84. anim.GetMinMax(morph, 4, ref min, ref max);
  85. anim.Percent4 = EditorGUILayout.Slider("Percent", anim.Percent4, min, max);
  86. }
  87. if ( index != -1 )
  88. {
  89. index = GetIndex(anim.SrcChannel5, channels);
  90. index = EditorGUILayout.Popup("Source Channel", index, channels);
  91. if ( index != -1 )
  92. {
  93. anim.SrcChannel5 = channels[index];
  94. anim.SetChannel(morph, 5);
  95. }
  96. anim.GetMinMax(morph, 5, ref min, ref max);
  97. anim.Percent5 = EditorGUILayout.Slider("Percent", anim.Percent5, min, max);
  98. }
  99. if ( index != -1 )
  100. {
  101. index = GetIndex(anim.SrcChannel6, channels);
  102. index = EditorGUILayout.Popup("Source Channel", index, channels);
  103. if ( index != -1 )
  104. {
  105. anim.SrcChannel6 = channels[index];
  106. anim.SetChannel(morph, 6);
  107. }
  108. anim.GetMinMax(morph, 6, ref min, ref max);
  109. anim.Percent6 = EditorGUILayout.Slider("Percent", anim.Percent6, min, max);
  110. }
  111. if ( index != -1 )
  112. {
  113. index = GetIndex(anim.SrcChannel7, channels);
  114. index = EditorGUILayout.Popup("Source Channel", index, channels);
  115. if ( index != -1 )
  116. {
  117. anim.SrcChannel7 = channels[index];
  118. anim.SetChannel(morph, 7);
  119. }
  120. anim.GetMinMax(morph, 7, ref min, ref max);
  121. anim.Percent7 = EditorGUILayout.Slider("Percent", anim.Percent7, min, max);
  122. }
  123. if ( index != -1 )
  124. {
  125. index = GetIndex(anim.SrcChannel8, channels);
  126. index = EditorGUILayout.Popup("Source Channel", index, channels);
  127. if ( index != -1 )
  128. {
  129. anim.SrcChannel8 = channels[index];
  130. anim.SetChannel(morph, 8);
  131. }
  132. anim.GetMinMax(morph, 8, ref min, ref max);
  133. anim.Percent8 = EditorGUILayout.Slider("Percent", anim.Percent8, min, max);
  134. }
  135. if ( index != -1 )
  136. {
  137. index = GetIndex(anim.SrcChannel9, channels);
  138. index = EditorGUILayout.Popup("Source Channel", index, channels);
  139. if ( index != -1 )
  140. {
  141. anim.SrcChannel9 = channels[index];
  142. anim.SetChannel(morph, 9);
  143. }
  144. anim.GetMinMax(morph, 9, ref min, ref max);
  145. anim.Percent9 = EditorGUILayout.Slider("Percent", anim.Percent9, min, max);
  146. }
  147. if ( index != -1 )
  148. {
  149. index = GetIndex(anim.SrcChannel10, channels);
  150. index = EditorGUILayout.Popup("Source Channel", index, channels);
  151. if ( index != -1 )
  152. {
  153. anim.SrcChannel10 = channels[index];
  154. anim.SetChannel(morph, 10);
  155. }
  156. anim.GetMinMax(morph, 10, ref min, ref max);
  157. anim.Percent10 = EditorGUILayout.Slider("Percent", anim.Percent10, min, max);
  158. }
  159. if ( index != -1 )
  160. {
  161. index = GetIndex(anim.SrcChannel11, channels);
  162. index = EditorGUILayout.Popup("Source Channel", index, channels);
  163. if ( index != -1 )
  164. {
  165. anim.SrcChannel11 = channels[index];
  166. anim.SetChannel(morph, 11);
  167. }
  168. anim.GetMinMax(morph, 11, ref min, ref max);
  169. anim.Percent11 = EditorGUILayout.Slider("Percent", anim.Percent11, min, max);
  170. }
  171. if ( index != -1 )
  172. {
  173. index = GetIndex(anim.SrcChannel12, channels);
  174. index = EditorGUILayout.Popup("Source Channel", index, channels);
  175. if ( index != -1 )
  176. {
  177. anim.SrcChannel12 = channels[index];
  178. anim.SetChannel(morph, 12);
  179. }
  180. anim.GetMinMax(morph, 12, ref min, ref max);
  181. anim.Percent12 = EditorGUILayout.Slider("Percent", anim.Percent12, min, max);
  182. }
  183. if ( index != -1 )
  184. {
  185. index = GetIndex(anim.SrcChannel13, channels);
  186. index = EditorGUILayout.Popup("Source Channel", index, channels);
  187. if ( index != -1 )
  188. {
  189. anim.SrcChannel13 = channels[index];
  190. anim.SetChannel(morph, 13);
  191. }
  192. anim.GetMinMax(morph, 13, ref min, ref max);
  193. anim.Percent13 = EditorGUILayout.Slider("Percent", anim.Percent13, min, max);
  194. }
  195. if ( index != -1 )
  196. {
  197. index = GetIndex(anim.SrcChannel14, channels);
  198. index = EditorGUILayout.Popup("Source Channel", index, channels);
  199. if ( index != -1 )
  200. {
  201. anim.SrcChannel14 = channels[index];
  202. anim.SetChannel(morph, 14);
  203. }
  204. anim.GetMinMax(morph, 14, ref min, ref max);
  205. anim.Percent14 = EditorGUILayout.Slider("Percent", anim.Percent14, min, max);
  206. }
  207. if ( index != -1 )
  208. {
  209. index = GetIndex(anim.SrcChannel15, channels);
  210. index = EditorGUILayout.Popup("Source Channel", index, channels);
  211. if ( index != -1 )
  212. {
  213. anim.SrcChannel15 = channels[index];
  214. anim.SetChannel(morph, 15);
  215. }
  216. anim.GetMinMax(morph, 15, ref min, ref max);
  217. anim.Percent15 = EditorGUILayout.Slider("Percent", anim.Percent15, min, max);
  218. }
  219. if ( index != -1 )
  220. {
  221. index = GetIndex(anim.SrcChannel16, channels);
  222. index = EditorGUILayout.Popup("Source Channel", index, channels);
  223. if ( index != -1 )
  224. {
  225. anim.SrcChannel16 = channels[index];
  226. anim.SetChannel(morph, 16);
  227. }
  228. anim.GetMinMax(morph, 16, ref min, ref max);
  229. anim.Percent16 = EditorGUILayout.Slider("Percent", anim.Percent16, min, max);
  230. }
  231. if ( index != -1 )
  232. {
  233. index = GetIndex(anim.SrcChannel17, channels);
  234. index = EditorGUILayout.Popup("Source Channel", index, channels);
  235. if ( index != -1 )
  236. {
  237. anim.SrcChannel17 = channels[index];
  238. anim.SetChannel(morph, 17);
  239. }
  240. anim.GetMinMax(morph, 17, ref min, ref max);
  241. anim.Percent17 = EditorGUILayout.Slider("Percent", anim.Percent17, min, max);
  242. }
  243. if ( index != -1 )
  244. {
  245. index = GetIndex(anim.SrcChannel18, channels);
  246. index = EditorGUILayout.Popup("Source Channel", index, channels);
  247. if ( index != -1 )
  248. {
  249. anim.SrcChannel18 = channels[index];
  250. anim.SetChannel(morph, 18);
  251. }
  252. anim.GetMinMax(morph, 18, ref min, ref max);
  253. anim.Percent18 = EditorGUILayout.Slider("Percent", anim.Percent18, min, max);
  254. }
  255. if ( index != -1 )
  256. {
  257. index = GetIndex(anim.SrcChannel19, channels);
  258. index = EditorGUILayout.Popup("Source Channel", index, channels);
  259. if ( index != -1 )
  260. {
  261. anim.SrcChannel19 = channels[index];
  262. anim.SetChannel(morph, 19);
  263. }
  264. anim.GetMinMax(morph, 19, ref min, ref max);
  265. anim.Percent19 = EditorGUILayout.Slider("Percent", anim.Percent19, min, max);
  266. }
  267. if ( index != -1 )
  268. {
  269. index = GetIndex(anim.SrcChannel20, channels);
  270. index = EditorGUILayout.Popup("Source Channel", index, channels);
  271. if ( index != -1 )
  272. {
  273. anim.SrcChannel20 = channels[index];
  274. anim.SetChannel(morph, 20);
  275. }
  276. anim.GetMinMax(morph, 20, ref min, ref max);
  277. anim.Percent20 = EditorGUILayout.Slider("Percent", anim.Percent20, min, max);
  278. }
  279. if ( index != -1 )
  280. {
  281. index = GetIndex(anim.SrcChannel21, channels);
  282. index = EditorGUILayout.Popup("Source Channel", index, channels);
  283. if ( index != -1 )
  284. {
  285. anim.SrcChannel21 = channels[index];
  286. anim.SetChannel(morph, 21);
  287. }
  288. anim.GetMinMax(morph, 21, ref min, ref max);
  289. anim.Percent21 = EditorGUILayout.Slider("Percent", anim.Percent21, min, max);
  290. }
  291. if ( index != -1 )
  292. {
  293. index = GetIndex(anim.SrcChannel22, channels);
  294. index = EditorGUILayout.Popup("Source Channel", index, channels);
  295. if ( index != -1 )
  296. {
  297. anim.SrcChannel22 = channels[index];
  298. anim.SetChannel(morph, 22);
  299. }
  300. anim.GetMinMax(morph, 22, ref min, ref max);
  301. anim.Percent22 = EditorGUILayout.Slider("Percent", anim.Percent22, min, max);
  302. }
  303. if ( index != -1 )
  304. {
  305. index = GetIndex(anim.SrcChannel23, channels);
  306. index = EditorGUILayout.Popup("Source Channel", index, channels);
  307. if ( index != -1 )
  308. {
  309. anim.SrcChannel23 = channels[index];
  310. anim.SetChannel(morph, 23);
  311. }
  312. anim.GetMinMax(morph, 23, ref min, ref max);
  313. anim.Percent23 = EditorGUILayout.Slider("Percent", anim.Percent23, min, max);
  314. }
  315. if ( index != -1 )
  316. {
  317. index = GetIndex(anim.SrcChannel24, channels);
  318. index = EditorGUILayout.Popup("Source Channel", index, channels);
  319. if ( index != -1 )
  320. {
  321. anim.SrcChannel24 = channels[index];
  322. anim.SetChannel(morph, 24);
  323. }
  324. anim.GetMinMax(morph, 24, ref min, ref max);
  325. anim.Percent24 = EditorGUILayout.Slider("Percent", anim.Percent24, min, max);
  326. }
  327. if ( index != -1 )
  328. {
  329. index = GetIndex(anim.SrcChannel25, channels);
  330. index = EditorGUILayout.Popup("Source Channel", index, channels);
  331. if ( index != -1 )
  332. {
  333. anim.SrcChannel25 = channels[index];
  334. anim.SetChannel(morph, 25);
  335. }
  336. anim.GetMinMax(morph, 25, ref min, ref max);
  337. anim.Percent25 = EditorGUILayout.Slider("Percent", anim.Percent25, min, max);
  338. }
  339. if ( index != -1 )
  340. {
  341. index = GetIndex(anim.SrcChannel26, channels);
  342. index = EditorGUILayout.Popup("Source Channel", index, channels);
  343. if ( index != -1 )
  344. {
  345. anim.SrcChannel16 = channels[index];
  346. anim.SetChannel(morph, 26);
  347. }
  348. anim.GetMinMax(morph, 26, ref min, ref max);
  349. anim.Percent26 = EditorGUILayout.Slider("Percent", anim.Percent26, min, max);
  350. }
  351. if ( index != -1 )
  352. {
  353. index = GetIndex(anim.SrcChannel27, channels);
  354. index = EditorGUILayout.Popup("Source Channel", index, channels);
  355. if ( index != -1 )
  356. {
  357. anim.SrcChannel27 = channels[index];
  358. anim.SetChannel(morph, 27);
  359. }
  360. anim.GetMinMax(morph, 27, ref min, ref max);
  361. anim.Percent27 = EditorGUILayout.Slider("Percent", anim.Percent27, min, max);
  362. }
  363. if ( index != -1 )
  364. {
  365. index = GetIndex(anim.SrcChannel28, channels);
  366. index = EditorGUILayout.Popup("Source Channel", index, channels);
  367. if ( index != -1 )
  368. {
  369. anim.SrcChannel28 = channels[index];
  370. anim.SetChannel(morph, 28);
  371. }
  372. anim.GetMinMax(morph, 28, ref min, ref max);
  373. anim.Percent28 = EditorGUILayout.Slider("Percent", anim.Percent28, min, max);
  374. }
  375. if ( index != -1 )
  376. {
  377. index = GetIndex(anim.SrcChannel29, channels);
  378. index = EditorGUILayout.Popup("Source Channel", index, channels);
  379. if ( index != -1 )
  380. {
  381. anim.SrcChannel29 = channels[index];
  382. anim.SetChannel(morph, 29);
  383. }
  384. anim.GetMinMax(morph, 29, ref min, ref max);
  385. anim.Percent29 = EditorGUILayout.Slider("Percent", anim.Percent29, min, max);
  386. }
  387. if ( index != -1 )
  388. {
  389. index = GetIndex(anim.SrcChannel30, channels);
  390. index = EditorGUILayout.Popup("Source Channel", index, channels);
  391. if ( index != -1 )
  392. {
  393. anim.SrcChannel30 = channels[index];
  394. anim.SetChannel(morph, 30);
  395. }
  396. anim.GetMinMax(morph, 30, ref min, ref max);
  397. anim.Percent30 = EditorGUILayout.Slider("Percent", anim.Percent30, min, max);
  398. }
  399. if ( index != -1 )
  400. {
  401. index = GetIndex(anim.SrcChannel31, channels);
  402. index = EditorGUILayout.Popup("Source Channel", index, channels);
  403. if ( index != -1 )
  404. {
  405. anim.SrcChannel31 = channels[index];
  406. anim.SetChannel(morph, 31);
  407. }
  408. anim.GetMinMax(morph, 31, ref min, ref max);
  409. anim.Percent31 = EditorGUILayout.Slider("Percent", anim.Percent31, min, max);
  410. }
  411. if ( index != -1 )
  412. {
  413. index = GetIndex(anim.SrcChannel32, channels);
  414. index = EditorGUILayout.Popup("Source Channel", index, channels);
  415. if ( index != -1 )
  416. {
  417. anim.SrcChannel32 = channels[index];
  418. anim.SetChannel(morph, 32);
  419. }
  420. anim.GetMinMax(morph, 32, ref min, ref max);
  421. anim.Percent32 = EditorGUILayout.Slider("Percent", anim.Percent32, min, max);
  422. }
  423. if ( index != -1 )
  424. {
  425. index = GetIndex(anim.SrcChannel33, channels);
  426. index = EditorGUILayout.Popup("Source Channel", index, channels);
  427. if ( index != -1 )
  428. {
  429. anim.SrcChannel33 = channels[index];
  430. anim.SetChannel(morph, 33);
  431. }
  432. anim.GetMinMax(morph, 33, ref min, ref max);
  433. anim.Percent33 = EditorGUILayout.Slider("Percent", anim.Percent33, min, max);
  434. }
  435. if ( index != -1 )
  436. {
  437. index = GetIndex(anim.SrcChannel34, channels);
  438. index = EditorGUILayout.Popup("Source Channel", index, channels);
  439. if ( index != -1 )
  440. {
  441. anim.SrcChannel34 = channels[index];
  442. anim.SetChannel(morph, 34);
  443. }
  444. anim.GetMinMax(morph, 34, ref min, ref max);
  445. anim.Percent34 = EditorGUILayout.Slider("Percent", anim.Percent34, min, max);
  446. }
  447. if ( index != -1 )
  448. {
  449. index = GetIndex(anim.SrcChannel35, channels);
  450. index = EditorGUILayout.Popup("Source Channel", index, channels);
  451. if ( index != -1 )
  452. {
  453. anim.SrcChannel35 = channels[index];
  454. anim.SetChannel(morph, 35);
  455. }
  456. anim.GetMinMax(morph, 35, ref min, ref max);
  457. anim.Percent35 = EditorGUILayout.Slider("Percent", anim.Percent35, min, max);
  458. }
  459. if ( index != -1 )
  460. {
  461. index = GetIndex(anim.SrcChannel36, channels);
  462. index = EditorGUILayout.Popup("Source Channel", index, channels);
  463. if ( index != -1 )
  464. {
  465. anim.SrcChannel36 = channels[index];
  466. anim.SetChannel(morph, 36);
  467. }
  468. anim.GetMinMax(morph, 36, ref min, ref max);
  469. anim.Percent36 = EditorGUILayout.Slider("Percent", anim.Percent36, min, max);
  470. }
  471. if ( index != -1 )
  472. {
  473. index = GetIndex(anim.SrcChannel37, channels);
  474. index = EditorGUILayout.Popup("Source Channel", index, channels);
  475. if ( index != -1 )
  476. {
  477. anim.SrcChannel37 = channels[index];
  478. anim.SetChannel(morph, 37);
  479. }
  480. anim.GetMinMax(morph, 37, ref min, ref max);
  481. anim.Percent37 = EditorGUILayout.Slider("Percent", anim.Percent37, min, max);
  482. }
  483. if ( index != -1 )
  484. {
  485. index = GetIndex(anim.SrcChannel38, channels);
  486. index = EditorGUILayout.Popup("Source Channel", index, channels);
  487. if ( index != -1 )
  488. {
  489. anim.SrcChannel38 = channels[index];
  490. anim.SetChannel(morph, 38);
  491. }
  492. anim.GetMinMax(morph, 38, ref min, ref max);
  493. anim.Percent38 = EditorGUILayout.Slider("Percent", anim.Percent38, min, max);
  494. }
  495. if ( index != -1 )
  496. {
  497. index = GetIndex(anim.SrcChannel39, channels);
  498. index = EditorGUILayout.Popup("Source Channel", index, channels);
  499. if ( index != -1 )
  500. {
  501. anim.SrcChannel39 = channels[index];
  502. anim.SetChannel(morph, 39);
  503. }
  504. anim.GetMinMax(morph, 39, ref min, ref max);
  505. anim.Percent39 = EditorGUILayout.Slider("Percent", anim.Percent39, min, max);
  506. }
  507. if ( index != -1 )
  508. {
  509. index = GetIndex(anim.SrcChannel40, channels);
  510. index = EditorGUILayout.Popup("Source Channel", index, channels);
  511. if ( index != -1 )
  512. {
  513. anim.SrcChannel40 = channels[index];
  514. anim.SetChannel(morph, 40);
  515. }
  516. anim.GetMinMax(morph, 40, ref min, ref max);
  517. anim.Percent40 = EditorGUILayout.Slider("Percent", anim.Percent40, min, max);
  518. }
  519. if ( index != -1 )
  520. {
  521. index = GetIndex(anim.SrcChannel41, channels);
  522. index = EditorGUILayout.Popup("Source Channel", index, channels);
  523. if ( index != -1 )
  524. {
  525. anim.SrcChannel41 = channels[index];
  526. anim.SetChannel(morph, 41);
  527. }
  528. anim.GetMinMax(morph, 41, ref min, ref max);
  529. anim.Percent41 = EditorGUILayout.Slider("Percent", anim.Percent41, min, max);
  530. }
  531. if ( index != -1 )
  532. {
  533. index = GetIndex(anim.SrcChannel42, channels);
  534. index = EditorGUILayout.Popup("Source Channel", index, channels);
  535. if ( index != -1 )
  536. {
  537. anim.SrcChannel42 = channels[index];
  538. anim.SetChannel(morph, 42);
  539. }
  540. anim.GetMinMax(morph, 42, ref min, ref max);
  541. anim.Percent42 = EditorGUILayout.Slider("Percent", anim.Percent42, min, max);
  542. }
  543. if ( index != -1 )
  544. {
  545. index = GetIndex(anim.SrcChannel43, channels);
  546. index = EditorGUILayout.Popup("Source Channel", index, channels);
  547. if ( index != -1 )
  548. {
  549. anim.SrcChannel43 = channels[index];
  550. anim.SetChannel(morph, 43);
  551. }
  552. anim.GetMinMax(morph, 43, ref min, ref max);
  553. anim.Percent43 = EditorGUILayout.Slider("Percent", anim.Percent43, min, max);
  554. }
  555. if ( index != -1 )
  556. {
  557. index = GetIndex(anim.SrcChannel44, channels);
  558. index = EditorGUILayout.Popup("Source Channel", index, channels);
  559. if ( index != -1 )
  560. {
  561. anim.SrcChannel44 = channels[index];
  562. anim.SetChannel(morph, 44);
  563. }
  564. anim.GetMinMax(morph, 44, ref min, ref max);
  565. anim.Percent44 = EditorGUILayout.Slider("Percent", anim.Percent44, min, max);
  566. }
  567. if ( index != -1 )
  568. {
  569. index = GetIndex(anim.SrcChannel45, channels);
  570. index = EditorGUILayout.Popup("Source Channel", index, channels);
  571. if ( index != -1 )
  572. {
  573. anim.SrcChannel45 = channels[index];
  574. anim.SetChannel(morph, 45);
  575. }
  576. anim.GetMinMax(morph, 45, ref min, ref max);
  577. anim.Percent45 = EditorGUILayout.Slider("Percent", anim.Percent45, min, max);
  578. }
  579. if ( index != -1 )
  580. {
  581. index = GetIndex(anim.SrcChannel46, channels);
  582. index = EditorGUILayout.Popup("Source Channel", index, channels);
  583. if ( index != -1 )
  584. {
  585. anim.SrcChannel46 = channels[index];
  586. anim.SetChannel(morph, 46);
  587. }
  588. anim.GetMinMax(morph, 46, ref min, ref max);
  589. anim.Percent46 = EditorGUILayout.Slider("Percent", anim.Percent46, min, max);
  590. }
  591. if ( index != -1 )
  592. {
  593. index = GetIndex(anim.SrcChannel47, channels);
  594. index = EditorGUILayout.Popup("Source Channel", index, channels);
  595. if ( index != -1 )
  596. {
  597. anim.SrcChannel47 = channels[index];
  598. anim.SetChannel(morph, 47);
  599. }
  600. anim.GetMinMax(morph, 47, ref min, ref max);
  601. anim.Percent47 = EditorGUILayout.Slider("Percent", anim.Percent47, min, max);
  602. }
  603. if ( index != -1 )
  604. {
  605. index = GetIndex(anim.SrcChannel48, channels);
  606. index = EditorGUILayout.Popup("Source Channel", index, channels);
  607. if ( index != -1 )
  608. {
  609. anim.SrcChannel48 = channels[index];
  610. anim.SetChannel(morph, 48);
  611. }
  612. anim.GetMinMax(morph, 48, ref min, ref max);
  613. anim.Percent48 = EditorGUILayout.Slider("Percent", anim.Percent48, min, max);
  614. }
  615. if ( index != -1 )
  616. {
  617. index = GetIndex(anim.SrcChannel49, channels);
  618. index = EditorGUILayout.Popup("Source Channel", index, channels);
  619. if ( index != -1 )
  620. {
  621. anim.SrcChannel49 = channels[index];
  622. anim.SetChannel(morph, 49);
  623. }
  624. anim.GetMinMax(morph, 49, ref min, ref max);
  625. anim.Percent49 = EditorGUILayout.Slider("Percent", anim.Percent49, min, max);
  626. }
  627. if ( index != -1 )
  628. {
  629. index = GetIndex(anim.SrcChannel50, channels);
  630. index = EditorGUILayout.Popup("Source Channel", index, channels);
  631. if ( index != -1 )
  632. {
  633. anim.SrcChannel50 = channels[index];
  634. anim.SetChannel(morph, 50);
  635. }
  636. anim.GetMinMax(morph, 50, ref min, ref max);
  637. anim.Percent50 = EditorGUILayout.Slider("Percent", anim.Percent50, min, max);
  638. }
  639. if ( GUI.changed )
  640. {
  641. EditorUtility.SetDirty(target);
  642. }
  643. }
  644. }
  645. }