Installed Surge, fixed compile errors, moved a bunch of external stuff into folder
This commit is contained in:
72
Assets/External/Pixelplacement/Surge/Tween/TweenActions/ShakePosition.cs
vendored
Normal file
72
Assets/External/Pixelplacement/Surge/Tween/TweenActions/ShakePosition.cs
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
/// <summary>
|
||||
/// SURGE FRAMEWORK
|
||||
/// Author: Bob Berkebile
|
||||
/// Email: bobb@pixelplacement.com
|
||||
/// </summary>
|
||||
|
||||
using UnityEngine;
|
||||
using System;
|
||||
using Pixelplacement;
|
||||
|
||||
namespace Pixelplacement.TweenSystem
|
||||
{
|
||||
class ShakePosition : TweenBase
|
||||
{
|
||||
//Public Properties:
|
||||
public Vector3 EndValue {get; private set;}
|
||||
|
||||
//Private Variables:
|
||||
Transform _target;
|
||||
Vector3 _initialPosition;
|
||||
Vector3 _intensity;
|
||||
|
||||
//Constructor:
|
||||
public ShakePosition (Transform target, Vector3 initialPosition, Vector3 intensity, float duration, float delay, AnimationCurve curve, Action startCallback, Action completeCallback, Tween.LoopType loop, bool obeyTimescale)
|
||||
{
|
||||
//set essential properties:
|
||||
SetEssentials (Tween.TweenType.Position, target.GetInstanceID (), duration, delay, obeyTimescale, curve, loop, startCallback, completeCallback);
|
||||
|
||||
//catalog custom properties:
|
||||
_target = target;
|
||||
_initialPosition = initialPosition;
|
||||
_intensity = intensity;
|
||||
}
|
||||
|
||||
//Processes:
|
||||
protected override bool SetStartValue ()
|
||||
{
|
||||
if (_target == null) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
protected override void Operation (float percentage)
|
||||
{
|
||||
if (percentage == 0)
|
||||
{
|
||||
_target.localPosition = _initialPosition;
|
||||
}
|
||||
|
||||
percentage = 1 - percentage;
|
||||
|
||||
//create diminishing shake offset:
|
||||
Vector3 amount = _intensity * percentage;
|
||||
amount.x = UnityEngine.Random.Range (-amount.x, amount.x);
|
||||
amount.y = UnityEngine.Random.Range (-amount.y, amount.y);
|
||||
amount.z = UnityEngine.Random.Range (-amount.z, amount.z);
|
||||
|
||||
//apply:
|
||||
_target.localPosition = _initialPosition + amount;
|
||||
}
|
||||
|
||||
//Loops:
|
||||
public override void Loop ()
|
||||
{
|
||||
ResetStartTime ();
|
||||
_target.localPosition = _initialPosition;
|
||||
}
|
||||
|
||||
public override void PingPong ()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user