MegaFFDAnimate.cs 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  1. 
  2. using UnityEngine;
  3. [ExecuteInEditMode]
  4. public class MegaFFDAnimate : MonoBehaviour
  5. {
  6. bool record = false;
  7. public bool Enabled = true;
  8. MegaFFD ffd;
  9. public Vector3 p00;
  10. public Vector3 p01;
  11. public Vector3 p02;
  12. public Vector3 p03;
  13. public Vector3 p04;
  14. public Vector3 p05;
  15. public Vector3 p06;
  16. public Vector3 p07;
  17. public Vector3 p08;
  18. public Vector3 p09;
  19. public Vector3 p10;
  20. public Vector3 p11;
  21. public Vector3 p12;
  22. public Vector3 p13;
  23. public Vector3 p14;
  24. public Vector3 p15;
  25. public Vector3 p16;
  26. public Vector3 p17;
  27. public Vector3 p18;
  28. public Vector3 p19;
  29. public Vector3 p20;
  30. public Vector3 p21;
  31. public Vector3 p22;
  32. public Vector3 p23;
  33. public Vector3 p24;
  34. public Vector3 p25;
  35. public Vector3 p26;
  36. public Vector3 p27;
  37. public Vector3 p28;
  38. public Vector3 p29;
  39. public Vector3 p30;
  40. public Vector3 p31;
  41. public Vector3 p32;
  42. public Vector3 p33;
  43. public Vector3 p34;
  44. public Vector3 p35;
  45. public Vector3 p36;
  46. public Vector3 p37;
  47. public Vector3 p38;
  48. public Vector3 p39;
  49. public Vector3 p40;
  50. public Vector3 p41;
  51. public Vector3 p42;
  52. public Vector3 p43;
  53. public Vector3 p44;
  54. public Vector3 p45;
  55. public Vector3 p46;
  56. public Vector3 p47;
  57. public Vector3 p48;
  58. public Vector3 p49;
  59. public Vector3 p50;
  60. public Vector3 p51;
  61. public Vector3 p52;
  62. public Vector3 p53;
  63. public Vector3 p54;
  64. public Vector3 p55;
  65. public Vector3 p56;
  66. public Vector3 p57;
  67. public Vector3 p58;
  68. public Vector3 p59;
  69. public Vector3 p60;
  70. public Vector3 p61;
  71. public Vector3 p62;
  72. public Vector3 p63;
  73. [ContextMenu("Help")]
  74. public void Help()
  75. {
  76. Application.OpenURL("http://www.west-racing.com/mf/?page_id=2270");
  77. }
  78. public MegaFFD GetFFD()
  79. {
  80. return ffd;
  81. }
  82. public bool GetRecord()
  83. {
  84. return record;
  85. }
  86. public void SetRecord(bool rec)
  87. {
  88. record = rec;
  89. }
  90. public void GetPoints()
  91. {
  92. if ( ffd )
  93. {
  94. p00 = ffd.pt[0];
  95. p01 = ffd.pt[1];
  96. p02 = ffd.pt[2];
  97. p03 = ffd.pt[3];
  98. p04 = ffd.pt[4];
  99. p05 = ffd.pt[5];
  100. p06 = ffd.pt[6];
  101. p07 = ffd.pt[7];
  102. if ( ffd.GridSize() > 2 )
  103. {
  104. p08 = ffd.pt[8];
  105. p09 = ffd.pt[9];
  106. p10 = ffd.pt[10];
  107. p11 = ffd.pt[11];
  108. p12 = ffd.pt[12];
  109. p13 = ffd.pt[13];
  110. p14 = ffd.pt[14];
  111. p15 = ffd.pt[15];
  112. p16 = ffd.pt[16];
  113. p17 = ffd.pt[17];
  114. p18 = ffd.pt[18];
  115. p19 = ffd.pt[19];
  116. p20 = ffd.pt[20];
  117. p21 = ffd.pt[21];
  118. p22 = ffd.pt[22];
  119. p23 = ffd.pt[23];
  120. p24 = ffd.pt[24];
  121. p25 = ffd.pt[25];
  122. p26 = ffd.pt[26];
  123. if ( ffd.GridSize() > 3 )
  124. {
  125. p27 = ffd.pt[27];
  126. p28 = ffd.pt[28];
  127. p29 = ffd.pt[29];
  128. p30 = ffd.pt[30];
  129. p31 = ffd.pt[31];
  130. p32 = ffd.pt[32];
  131. p33 = ffd.pt[33];
  132. p34 = ffd.pt[34];
  133. p35 = ffd.pt[35];
  134. p36 = ffd.pt[36];
  135. p37 = ffd.pt[37];
  136. p38 = ffd.pt[38];
  137. p39 = ffd.pt[39];
  138. p40 = ffd.pt[40];
  139. p41 = ffd.pt[41];
  140. p42 = ffd.pt[42];
  141. p43 = ffd.pt[43];
  142. p44 = ffd.pt[44];
  143. p45 = ffd.pt[45];
  144. p46 = ffd.pt[46];
  145. p47 = ffd.pt[47];
  146. p48 = ffd.pt[48];
  147. p49 = ffd.pt[49];
  148. p50 = ffd.pt[50];
  149. p51 = ffd.pt[51];
  150. p52 = ffd.pt[52];
  151. p53 = ffd.pt[53];
  152. p54 = ffd.pt[54];
  153. p55 = ffd.pt[55];
  154. p56 = ffd.pt[56];
  155. p57 = ffd.pt[57];
  156. p58 = ffd.pt[58];
  157. p59 = ffd.pt[59];
  158. p60 = ffd.pt[60];
  159. p61 = ffd.pt[61];
  160. p62 = ffd.pt[62];
  161. p63 = ffd.pt[63];
  162. }
  163. }
  164. }
  165. }
  166. public void SetPoints()
  167. {
  168. if ( ffd )
  169. {
  170. ffd.pt[0] = p00;
  171. ffd.pt[1] = p01;
  172. ffd.pt[2] = p02;
  173. ffd.pt[3] = p03;
  174. ffd.pt[4] = p04;
  175. ffd.pt[5] = p05;
  176. ffd.pt[6] = p06;
  177. ffd.pt[7] = p07;
  178. if ( ffd.GridSize() > 2 )
  179. {
  180. ffd.pt[8] = p08;
  181. ffd.pt[9] = p09;
  182. ffd.pt[10] = p10;
  183. ffd.pt[11] = p11;
  184. ffd.pt[12] = p12;
  185. ffd.pt[13] = p13;
  186. ffd.pt[14] = p14;
  187. ffd.pt[15] = p15;
  188. ffd.pt[16] = p16;
  189. ffd.pt[17] = p17;
  190. ffd.pt[18] = p18;
  191. ffd.pt[19] = p19;
  192. ffd.pt[20] = p20;
  193. ffd.pt[21] = p21;
  194. ffd.pt[22] = p22;
  195. ffd.pt[23] = p23;
  196. ffd.pt[24] = p24;
  197. ffd.pt[25] = p25;
  198. ffd.pt[26] = p26;
  199. if ( ffd.GridSize() > 3 )
  200. {
  201. ffd.pt[27] = p27;
  202. ffd.pt[28] = p28;
  203. ffd.pt[29] = p29;
  204. ffd.pt[30] = p30;
  205. ffd.pt[31] = p31;
  206. ffd.pt[32] = p32;
  207. ffd.pt[33] = p33;
  208. ffd.pt[34] = p34;
  209. ffd.pt[35] = p35;
  210. ffd.pt[36] = p36;
  211. ffd.pt[37] = p37;
  212. ffd.pt[38] = p38;
  213. ffd.pt[39] = p39;
  214. ffd.pt[40] = p40;
  215. ffd.pt[41] = p41;
  216. ffd.pt[42] = p42;
  217. ffd.pt[43] = p43;
  218. ffd.pt[44] = p44;
  219. ffd.pt[45] = p45;
  220. ffd.pt[46] = p46;
  221. ffd.pt[47] = p47;
  222. ffd.pt[48] = p48;
  223. ffd.pt[49] = p49;
  224. ffd.pt[50] = p50;
  225. ffd.pt[51] = p51;
  226. ffd.pt[52] = p52;
  227. ffd.pt[53] = p53;
  228. ffd.pt[54] = p54;
  229. ffd.pt[55] = p55;
  230. ffd.pt[56] = p56;
  231. ffd.pt[57] = p57;
  232. ffd.pt[58] = p58;
  233. ffd.pt[59] = p59;
  234. ffd.pt[60] = p60;
  235. ffd.pt[61] = p61;
  236. ffd.pt[62] = p62;
  237. ffd.pt[63] = p63;
  238. }
  239. }
  240. }
  241. }
  242. void Start()
  243. {
  244. ffd = GetComponent<MegaFFD>();
  245. GetPoints();
  246. }
  247. public void SetPoint(int index, Vector3 p)
  248. {
  249. switch ( index )
  250. {
  251. case 0: p00 = p; break;
  252. case 1: p01 = p; break;
  253. case 2: p02 = p; break;
  254. case 3: p03 = p; break;
  255. case 4: p04 = p; break;
  256. case 5: p05 = p; break;
  257. case 6: p06 = p; break;
  258. case 7: p07 = p; break;
  259. case 8: p08 = p; break;
  260. case 9: p09 = p; break;
  261. case 10: p10 = p; break;
  262. case 11: p11 = p; break;
  263. case 12: p12 = p; break;
  264. case 13: p13 = p; break;
  265. case 14: p14 = p; break;
  266. case 15: p15 = p; break;
  267. case 16: p16 = p; break;
  268. case 17: p17 = p; break;
  269. case 18: p18 = p; break;
  270. case 19: p19 = p; break;
  271. case 20: p20 = p; break;
  272. case 21: p21 = p; break;
  273. case 22: p22 = p; break;
  274. case 23: p23 = p; break;
  275. case 24: p24 = p; break;
  276. case 25: p25 = p; break;
  277. case 26: p26 = p; break;
  278. case 27: p27 = p; break;
  279. case 28: p28 = p; break;
  280. case 29: p29 = p; break;
  281. case 30: p30 = p; break;
  282. case 31: p31 = p; break;
  283. case 32: p32 = p; break;
  284. case 33: p33 = p; break;
  285. case 34: p34 = p; break;
  286. case 35: p35 = p; break;
  287. case 36: p36 = p; break;
  288. case 37: p37 = p; break;
  289. case 38: p38 = p; break;
  290. case 39: p39 = p; break;
  291. case 40: p40 = p; break;
  292. case 41: p41 = p; break;
  293. case 42: p42 = p; break;
  294. case 43: p43 = p; break;
  295. case 44: p44 = p; break;
  296. case 45: p45 = p; break;
  297. case 46: p46 = p; break;
  298. case 47: p47 = p; break;
  299. case 48: p48 = p; break;
  300. case 49: p49 = p; break;
  301. case 50: p50 = p; break;
  302. case 51: p51 = p; break;
  303. case 52: p52 = p; break;
  304. case 53: p53 = p; break;
  305. case 54: p54 = p; break;
  306. case 55: p55 = p; break;
  307. case 56: p56 = p; break;
  308. case 57: p57 = p; break;
  309. case 58: p58 = p; break;
  310. case 59: p59 = p; break;
  311. case 60: p60 = p; break;
  312. case 61: p61 = p; break;
  313. case 62: p62 = p; break;
  314. case 63: p63 = p; break;
  315. }
  316. }
  317. public Vector3 GetPoint(int index)
  318. {
  319. switch ( index )
  320. {
  321. case 0: return p00;
  322. case 1: return p01;
  323. case 2: return p02;
  324. case 3: return p03;
  325. case 4: return p04;
  326. case 5: return p05;
  327. case 6: return p06;
  328. case 7: return p07;
  329. case 8: return p08;
  330. case 9: return p09;
  331. case 10: return p10;
  332. case 11: return p11;
  333. case 12: return p12;
  334. case 13: return p13;
  335. case 14: return p14;
  336. case 15: return p15;
  337. case 16: return p16;
  338. case 17: return p17;
  339. case 18: return p18;
  340. case 19: return p19;
  341. case 20: return p20;
  342. case 21: return p21;
  343. case 22: return p22;
  344. case 23: return p23;
  345. case 24: return p24;
  346. case 25: return p25;
  347. case 26: return p26;
  348. case 27: return p27;
  349. case 28: return p28;
  350. case 29: return p29;
  351. case 30: return p30;
  352. case 31: return p31;
  353. case 32: return p32;
  354. case 33: return p33;
  355. case 34: return p34;
  356. case 35: return p35;
  357. case 36: return p36;
  358. case 37: return p37;
  359. case 38: return p38;
  360. case 39: return p39;
  361. case 40: return p40;
  362. case 41: return p41;
  363. case 42: return p42;
  364. case 43: return p43;
  365. case 44: return p44;
  366. case 45: return p45;
  367. case 46: return p46;
  368. case 47: return p47;
  369. case 48: return p48;
  370. case 49: return p49;
  371. case 50: return p50;
  372. case 51: return p51;
  373. case 52: return p52;
  374. case 53: return p53;
  375. case 54: return p54;
  376. case 55: return p55;
  377. case 56: return p56;
  378. case 57: return p57;
  379. case 58: return p58;
  380. case 59: return p59;
  381. case 60: return p60;
  382. case 61: return p61;
  383. case 62: return p62;
  384. case 63: return p63;
  385. }
  386. return Vector3.zero;
  387. }
  388. void Update()
  389. {
  390. if ( !Enabled )
  391. return;
  392. if ( !ffd )
  393. ffd = GetComponent<MegaFFD>();
  394. if ( GetRecord() )
  395. GetPoints();
  396. else
  397. SetPoints();
  398. }
  399. }