You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
4.3 KiB

7 years ago
  1. #pragma strict
  2. import DentedPixel;
  3. public var dudeTexture:Texture2D;
  4. public var prefabParticles:GameObject;
  5. #if !UNITY_3_5 && !UNITY_4_0 && !UNITY_4_0_1 && !UNITY_4_1 && !UNITY_4_2
  6. function Start () {
  7. // Setup
  8. var avatarRotate:GameObject = createSpriteDude( "avatarRotate", new Vector3(-2.51208f,10.7119f,-14.37754f), true);
  9. var avatarScale:GameObject = createSpriteDude( "avatarScale", new Vector3(2.51208f,10.2119f,-14.37754f), true);
  10. var avatarMove:GameObject = createSpriteDude( "avatarMove", new Vector3(-3.1208f,7.100643f,-14.37754f), true);
  11. // Rotate Example
  12. LeanTween.rotateAround( avatarRotate, Vector3.forward, -360f, 5f);
  13. // Scale Example
  14. LeanTween.scale( avatarScale, new Vector3(1.7f, 1.7f, 1.7f), 5f).setEase(LeanTweenType.easeOutBounce);
  15. LeanTween.moveX( avatarScale, avatarScale.transform.position.x + 1f, 5f).setEase(LeanTweenType.easeOutBounce); // Simultaneously target many different tweens on the same object
  16. // Move Example
  17. LeanTween.move( avatarMove, avatarMove.transform.position + new Vector3(1.7f, 0f, 0f), 2f).setEase(LeanTweenType.easeInQuad);
  18. // Delay
  19. LeanTween.move( avatarMove, avatarMove.transform.position + new Vector3(2f, -1f, 0f), 2f).setDelay(3f);
  20. // Chain properties (delay, easing with a set repeating of type ping pong)
  21. LeanTween.scale( avatarScale, new Vector3(0.2f, 0.2f, 0.2f), 1f).setDelay(7f).setEase(LeanTweenType.easeInOutCirc).setRepeat(5).setLoopPingPong();
  22. // Call methods after a certain time period
  23. LeanTween.delayedCall(gameObject, 0.2f, advancedExamples);
  24. }
  25. function createSpriteDude( name:String, pos:Vector3, hasParticles:boolean ):GameObject{
  26. var go:GameObject = new GameObject(name);
  27. var ren:SpriteRenderer = go.AddComponent(SpriteRenderer);
  28. go.GetComponent.<Renderer>().material.color = new Color(0f,181f/255f,1f);
  29. ren.sprite = Sprite.Create( dudeTexture, new Rect(0.0f,0.0f,256.0f,256.0f), new Vector2(0.5f,0f), 256f);
  30. go.transform.position = pos;
  31. if(hasParticles){
  32. var particles:GameObject = GameObject.Instantiate(prefabParticles, Vector3.zero, prefabParticles.transform.rotation ) as GameObject;
  33. particles.transform.parent = go.transform;
  34. particles.transform.localPosition = prefabParticles.transform.position;
  35. }
  36. return go;
  37. }
  38. // Advanced Examples
  39. // It might be best to master the basics first, but this is included to tease the many possibilies LeanTween provides.
  40. function advancedExamples(){
  41. LeanTween.delayedCall(gameObject, 14f, function(){
  42. for(var i:int=0; i < 10; i++){
  43. // Instantiate Container
  44. var rotator:GameObject = new GameObject("rotator"+i);
  45. rotator.transform.position = new Vector3(2.71208f,7.100643f,-12.37754f);
  46. // Instantiate Avatar
  47. var dude:GameObject = createSpriteDude( "dude"+i, new Vector3(-2.51208f,7.100643f,-14.37754f), false);//(GameObject)GameObject.Instantiate(prefabAvatar, Vector3.zero, prefabAvatar.transform.rotation );
  48. dude.transform.parent = rotator.transform;
  49. dude.transform.localPosition = new Vector3(0f,0.5f,0.5f*i);
  50. // Scale, pop-in
  51. dude.transform.localScale = new Vector3(0f,0f,0f);
  52. LeanTween.scale(dude, new Vector3(0.65f,0.65f,0.65f), 1f).setDelay(i*0.2f).setEase(LeanTweenType.easeOutBack);
  53. // Color like the rainbow
  54. var period:float = LeanTween.tau/10*i;
  55. var red:float = Mathf.Sin(period + LeanTween.tau*0f/3f) * 0.5f + 0.5f;
  56. var green:float = Mathf.Sin(period + LeanTween.tau*1f/3f) * 0.5f + 0.5f;
  57. var blue:float = Mathf.Sin(period + LeanTween.tau*2f/3f) * 0.5f + 0.5f;
  58. var rainbowColor:Color = new Color(red, green, blue);
  59. LeanTween.color(dude, rainbowColor, 0.3f).setDelay(1.2f + i*0.4f);
  60. // Push into the wheel
  61. LeanTween.moveLocalZ(dude, -2f, 0.3f).setDelay(1.2f + i*0.4f).setEase(LeanTweenType.easeSpring).setOnComplete(
  62. function( rot:GameObject ){
  63. LeanTween.rotateAround(rot, Vector3.forward, -1080f, 12f);
  64. }
  65. ).setOnCompleteParam( rotator );
  66. // Jump Up and back down
  67. LeanTween.moveLocalY(dude,1.17f,1.2f).setDelay(5f + i*0.2f).setLoopPingPong(1).setEase(LeanTweenType.easeInOutQuad);
  68. // Alpha Out, and destroy
  69. LeanTween.alpha(dude, 0f, 0.6f).setDelay(9.2f + i*0.4f).setDestroyOnComplete(true).setOnComplete(
  70. function(rot:GameObject){
  71. Destroy( rot ); // destroying parent as well
  72. }
  73. ).setOnCompleteParam( rotator );;
  74. }
  75. }).setOnCompleteOnStart(true).setRepeat(-1); // Have the OnComplete play in the beginning and have the whole group repeat endlessly
  76. }
  77. #endif