Cum pot activa/dezactiva funcția de actualizare din alt script în Unity? [închis] (Programare, C#, Studio Vizual, Testare Unitară, Unity3D, C# 4.0)

Programator97 a intrebat.

Am un cursor în aplicația mea de unitate. Deci, vreau să am posibilitatea de a avea posibilitatea de a schimba manual valoarea sa. Pentru a face acest lucru, trebuie să dezactivez funcția Update() a scriptului sliderului atunci când se face clic pe pauză și să o activez atunci când se face clic pe reluare.

Vă mulțumesc!

Comentarii

  • activarea/dezactivarea componentei –  > Por BugFinder.
  • Aveți un script care să se ocupe în schimb de pauză și dezactivați componenta care conține funcția de actualizare. Reactivați componenta odată ce jocul se reia. –  > Por Mylonas K..
2 răspunsuri
gameDev_Unity

Utilizați un bool.Like

bool isUpdateEnable;

void Update()
{
  if(isUpdateEnable)
  {
   // Do whatever you want
  }
}

Comentarii

  • A fost o idee frumoasă. Vă mulțumesc, funcționează! –  > Por Programator97.
  • de asemenea, este inutil… conform comentariului meu, dacă dezactivați componenta te, update și fixedupdate nu rulează… –  > Por BugFinder.
  • Da, doar dezactivați componenta care este mult mai eficientă. Acum primiți Update în continuare apelat prin mesajul Unity, ceea ce cauzează o supraîncărcare inutilă –  > Por derHugo.
derHugo

Pur și simplu dezactivați componenta respectivă:

Behaviour.enabled

Comportamentele activate sunt actualizate, iar cele dezactivate nu.

Acest lucru este afișat sub forma unei mici casete de selectare în inspectorul comportamentului.

Acest lucru este mai eficient decât un bool indicator în Update deoarece apelarea continuă a metodei „empty” Update provoacă o suprasolicitare inutilă.

Un alt avantaj al efectului secundar este că puteți utiliza, de asemenea, funcția OnEnable și OnDisable pentru a implementa un comportament suplimentar de fiecare dată când componenta este activată sau dezactivată.