void ApplyShakePositionTargets()
{
preUpdate = transform.position;
//reset rotation to prevent look interferences as object rotates and attempts to move with translate and record current rotation
Vector3 currentRotation = new Vector3();
if(tweenArguments.Contains("looktarget")){
currentRotation = transform.eulerAngles;
transform.eulerAngles = vector3s[3];
}
//impact:
if (percentage==0) {
transform.Translate(vector3s[1],space);
}
//reset:
transform.position=vector3s[0];
//generate:
float diminishingControl = 1-percentage;
vector3s[2].x= UnityEngine.Random.Range(-vector3s[1].x*diminishingControl, vector3s[1].x*diminishingControl);
vector3s[2].y= UnityEngine.Random.Range(-vector3s[1].y*diminishingControl, vector3s[1].y*diminishingControl);
vector3s[2].z= UnityEngine.Random.Range(-vector3s[1].z*diminishingControl, vector3s[1].z*diminishingControl);
//apply:
transform.Translate(vector3s[2],space);
//reset rotation:
if(tweenArguments.Contains("looktarget")){
transform.eulerAngles = currentRotation;
}
//need physics?
postUpdate=transform.position;
if(physics){
transform.position=preUpdate;
rigidbody.MovePosition(postUpdate);
}
}