DFTween官方实例详解

将两个动画进行串联。

代码如下:

using UnityEngine;using System.Collections;using DaikonForge.Tween;public class TestShakeObject : MonoBehaviour{public Transform Camera;private TweenShake shake;private TweenBase fallTween;void Start(){shake = TweenShake.Obtain().SetStartValue( Camera.position ).SetDuration( 1f ).SetShakeMagnitude( 0.25f ).SetShakeSpeed( 13f ).SetTimeScaleIndependent( true ).OnExecute( ( result ) => { Camera.position = new Vector3( result.x, result.y, Camera.position.z ); } );fallTween = this.TweenPosition().SetStartValue( transform.position + Vector3.up * 5f ).SetEasing( TweenEasingFunctions.EaseInExpo )// 从StartValue运动到当前editor的位置.SetDuration( 1f ).SetDelay( 0.25f ).SetTimeScaleIndependent( true ).OnCompleted( ( sender ) => { shake.Play(); } )// 接着开始 抖动动画.Play();}void OnGUI(){GUILayout.Label( " Press SPACE to restart " );}void Update(){if( Input.GetKeyDown( KeyCode.LeftArrow ) ){Debug.Log( "Time scale: SLOW" );Time.timeScale = 0.15f;}else if( Input.GetKeyDown( KeyCode.RightArrow ) ){Debug.Log( "Time scale: NORMAL" );Time.timeScale = 1f;}if( Input.GetKeyDown( KeyCode.Space ) ){fallTween.Stop().Rewind().Play();}}}

part2 { cameraSlide, logoSlide, logoAlphaTween}

开开代码吧

using UnityEngine;using System.Collections;using DaikonForge.Tween;using DaikonForge.Tween.Interpolation;public class MuchTweenSoWow : MonoBehaviour{public Transform doge;public TextMesh[] text;public TextMesh logo;void Start(){TweenGroup part1 = new TweenGroup().SetAutoCleanup( true ).SetMode( TweenGroupMode.Sequential );// NOTE: This could be more efficiently done with Transform.TweenScale(),// but we wanted to show an example of using Reflection to tween any // property by name.Tween<Vector3> dogeScale = doge.transform.TweenProperty<Vector3>( "localScale" ).SetStartValue( Vector3.zero ).SetDuration( 0.5f ).SetDelay( 0.5f ).SetInterpolator( EulerInterpolator.Default ).SetEasing( TweenEasingFunctions.Spring );part1.AppendTween( dogeScale );for( int i = 0; i < text.Length; i++ ){text[ i ].color = new Color( 1, 1, 1, 0 );var alphaTween = text[ i ].TweenAlpha().SetAutoCleanup( true ).SetStartValue( 0f ).SetEndValue( 1f ).SetDuration( 0.25f ).SetDelay( 0.25f );var rotTween = text[ i ].TweenRotation().SetAutoCleanup( true ).SetEndValue( Vector3.zero ).SetDuration( 0.5f ).SetDelay( 0.25f ).SetEasing( TweenEasingFunctions.Spring );var textPopup = new TweenGroup().SetAutoCleanup( true ).SetMode( TweenGroupMode.Concurrent ).AppendTween( alphaTween, rotTween );part1.AppendTween( textPopup );}Tween<Vector3> cameraSlide = this.TweenPosition().SetEndValue( transform.position + new Vector3( 0f, -1f, 0f ) ).SetDuration( 0.5f ).SetEasing( TweenEasingFunctions.EaseInOutQuad );Tween<Vector3> logoSlide = logo.TweenPosition().SetStartValue( logo.transform.position – ( Vector3.up * 5 ) ).SetDuration( 1f ).SetEasing( TweenEasingFunctions.Bounce );Tween<float> logoAlphaTween = Tween<float>.Obtain().SetStartValue( 0f ).SetEndValue( 1f ).SetDuration( 0.5f ).SetEasing( TweenEasingFunctions.Linear ).OnExecute( ( result ) => { logo.color = new Color( 1f, 1f, 1f, result ); } );logo.color = Color.clear;TweenGroup part2 = new TweenGroup().SetAutoCleanup( true ).SetMode( TweenGroupMode.Concurrent ).AppendTween( cameraSlide, logoSlide, logoAlphaTween );part1.AppendDelay( 1f ).AppendTween( part2 ).Play();}}

执行:

代码如下:

using UnityEngine;using System.Collections;using DaikonForge.Tween;public class TestEasingFunctions : MonoBehaviour{public EasingType EaseType;void Start(){TweenEasingCallback func = TweenEasingFunctions.GetFunction( this.EaseType );transform.TweenPosition().SetEndValue( transform.position + ( Vector3.right * 9f ) ).SetDelay( 0.5f, false ).SetDuration( 1.33f ).SetEasing( func ).SetLoopType( TweenLoopType.Loop ).Play();}}

Update() 函数中。当我们单击鼠标左键,会启动所有的动画!

代码如下:

切忌贪婪,恨不得一次玩遍所有传说中的好景点,

DFTween官方实例详解

相关文章:

你感兴趣的文章:

标签云: