c# - How do i delay a function after the handled device ends shake? -


i'm developing game on unity3d. here have 5 cards, , i'm trying shuffle them shake movement, but, code, cards being shuffle while shake performed, need that function can delayed or start when shake ends. here code:

using unityengine; using system.collections; using unityengine.ui;  public class shake1 : monobehaviour {      int numtimes = 50;      public image personajes;     public image lugares;     public image situaciones;     public image emociones;     public image objetos;     public gameobject camshake;       float accelerometerupdateinterval;     // greater value of lowpasskernelwidthinseconds, slower filtered value converge towards current input sample (and vice versa).     float lowpasskernelwidthinseconds;     // next parameter initialized 2.0 per apple's recommendation, or @ least according brady! ;)     float shakedetectionthreshold ;      float lowpassfilterfactor;      vector3 lowpassvalue;     vector3 acceleration;     vector3 deltaacceleration;      void start () {         lowpasskernelwidthinseconds = 1.0f;         accelerometerupdateinterval = 1.0f / 60.0f;         lowpassvalue  = vector3.zero;         lowpassfilterfactor = accelerometerupdateinterval / lowpasskernelwidthinseconds;     }     public vector3 lowpassfilter(vector3 newsample){         lowpassvalue = vector3.lerp (lowpassvalue, newsample,lowpassfilterfactor);         return lowpassvalue;         }      void update () {         acceleration = input.acceleration;         deltaacceleration = acceleration - lowpassfilter (acceleration);          if (mathf.abs (deltaacceleration.x) >= 0.2 && mathf.abs (deltaacceleration.y) >= 0.2 && mathf.abs (deltaacceleration.z) >= 0.2) {             (int = 0; < numtimes; i++) {                 handheld.vibrate();                 if (personajes.transform.parent.name == "panel_superior") {                     personajes.sprite = resources.load<sprite> ("cartas/pillow-cards-" + random.range (2, 13)) sprite;                 }                 if (situaciones.transform.parent.name == "panel_superior") {                     situaciones.sprite = resources.load<sprite> ("cartas/pillow-cards-" + random.range (28, 39)) sprite;                 }                 if (emociones.transform.parent.name == "panel_superior") {                     emociones.sprite = resources.load<sprite> ("cartas/pillow-cards-" + random.range (41, 52)) sprite;                 }                 if (lugares.transform.parent.name == "panel_superior") {                     lugares.sprite = resources.load<sprite> ("cartas/pillow-cards-" + random.range (15, 26)) sprite;                 }                 if (objetos.transform.parent.name == "panel_superior") {                     objetos.sprite = resources.load<sprite> ("cartas/pillow-cards-" + random.range (54, 68)) sprite;                 }             }         }     }  } 

as update() called @ 60hz, can create counter (let's it's called zeroacc) increased everytime acceleration below triggering threshold of "shake".
@ same time shake triggered, can store value of zeroacc @ moment, let's acctri.
need decide delay, example 30 calls of update(), , trigger callback.
this:

void update(){ //keep code have , add this:     if (zeroacc - acctri > 30) {         callback ();         acctri = int.maxvalue; //we don't want trigger again     } } 

Comments

Popular posts from this blog

jOOQ update returning clause with Oracle -

java - Warning equals/hashCode on @Data annotation lombok with inheritance -

java - BasicPathUsageException: Cannot join to attribute of basic type -