Пример #1
0
        static TweenParms SetAttributes(NTweenAttributes attributes)
        {
            var tweenParms = new TweenParms ();

            if (attributes != null) {

                tweenParms.AutoKill (attributes.GetAutoKill ());

                if (attributes.GetDelay () > 0) {
                    tweenParms.Delay (attributes.GetDelay ());
                }

                if (attributes.GetLoops () != 0) {
                    tweenParms.Loops (attributes.GetLoops (), GetLoopType (attributes.GetLoopType ()));
                }

                if (attributes.GetEaseType () != NTweenEaseType.Linear) {
                    tweenParms.Ease (GetEaseType (attributes.GetEaseType ()));
                }

                if (attributes.GetOnComplete () != null) {
                    tweenParms.OnComplete (attributes.GetOnComplete ().Invoke);
                }
                if (attributes.GetOnPlay () != null) {
                    tweenParms.OnStart (attributes.GetOnPlay ().Invoke);
                }
                if (attributes.GetOnUpdate () != null) {
                    tweenParms.OnUpdate (attributes.GetOnUpdate ().Invoke);
                }
            }

            return tweenParms;
        }
Пример #2
0
    //creates a new HOTween tween which moves us to the next waypoint
    //(defined by passed arguments)
    internal void CreateTween()
    {
        //play walk animation if set
        PlayWalk();

        //prepare HOTween's parameters, you can look them up here
        //http://www.holoville.com/hotween/documentation.html
        ////////////////////////////////////////////////////////////

        //create new HOTween plugin for curved paths
        //pass in array of Vector3 waypoint positions, relative = true
        plugPath = new PlugVector3Path(wpPos, true, pathtype);

        //orients the tween target along the path
        //constrains this game object on one axis
        if (orientToPath || lockAxis != Axis.None)
            plugPath.OrientToPath(lookAhead, lockAxis);

        //lock position axis
        if (lockPosition != Axis.None)
            plugPath.LockPosition(lockPosition);

        //create a smooth path if closePath was true
        if (closePath)
            plugPath.ClosePath(true);

        //create TweenParms for storing HOTween's parameters
        tParms = new TweenParms();
        //sets the path plugin as tween position property
        if (local)
            tParms.Prop("localPosition", plugPath);
        else
            tParms.Prop("position", plugPath);
        //additional tween parameters for partial tweens
        tParms.AutoKill(false);
        tParms.Pause(true);
        tParms.Loops(1);

        //differ between TimeValue like mentioned above at enum TimeValue
        //use speed with linear easing
        if (timeValue == TimeValue.speed)
        {
            tParms.SpeedBased();
            tParms.Ease(EaseType.Linear);
        }
        else
            //use time in seconds and the chosen easetype
            tParms.Ease(easetype);

        //create a new tween, move this gameobject with given arguments
        tween = HOTween.To(transform, originSpeed, tParms);
		
		//continue new tween with adjusted speed if it was changed before
		if(originSpeed != speed)
			ChangeSpeed(speed);
    }