Sunday, 9 October 2016

ShakeEffect Player

public bool Shaking;
private float ShakeDecay;
private float ShakeIntensity;  
private Vector3 OriginalPos;
private Quaternion OriginalRot;

public GameObject HealthDownEffect;

void Awake(){
HealthDownEffect.SetActive (false);
}

void Start()
{
Shaking = false;
shake ();
}


void shake(){
if(Player.snake == true)
{
DoShake();
}
}
void Update ()
{

if (ShakeIntensity > 0) {

transform.position = OriginalPos + Random.insideUnitSphere * ShakeIntensity;
/*transform.rotation = new Quaternion(OriginalRot.x + Random.Range(-ShakeIntensity, ShakeIntensity)*.2f,
                                       OriginalRot.y + Random.Range(-ShakeIntensity, ShakeIntensity)*.2f,
                                       OriginalRot.z + Random.Range(-ShakeIntensity, ShakeIntensity)*.2f,
                                       OriginalRot.w + Random.Range(-ShakeIntensity,     ShakeIntensity)*.2f);
   */
ShakeIntensity -= ShakeDecay;
}
else if (Shaking)
{
Shaking = false;
}
shake ();
}

IEnumerator Waiting() {
HealthDownEffect.SetActive (true);

//myPlayer.GetComponent<Rigidbody2D> ().isKinematic = true;
yield return new WaitForSeconds(0.15f);
// myPlayer.GetComponent<Rigidbody2D> ().isKinematic = false;
HealthDownEffect.SetActive (false);
}
/*void OnGUI() {
 
  if (GUI.Button(new Rect(10, 200, 50, 30), "Shake"))
   DoShake();
  //Debug.Log("Shake");
 
 }    
 */
public void DoShake()
{
StartCoroutine(Waiting());

OriginalPos = transform.position;
//OriginalRot = transform.rotation;

ShakeIntensity = 0.3f;
ShakeDecay = 0.02f;
Shaking = true;
Player.snake = false;
}

No comments:

Post a Comment