Unity3D C#에서 조건이 충족 될 때까지 x 초마다 코드를 실행해야합니다. 코드는 조건이 참일 때 다른 코드와 관계없이 실행되어야하며 그렇지 않은 경우 중지해야합니다. 조건이 거짓으로 바뀌 자마자 실행을 멈추고 조건이 참일 경우 다시 실행해야합니다 (가능한 경우 0에서 초로 계산). 그렇게하는 방법?매 x 초 후에 Unity3D에서 일부 코드를 실행하는 방법은 무엇입니까?
0
A
답변
3
이와 비슷한 기능이 작동합니다.
void Start(){
StartCoroutine("DoStuff", 2.0F);
}
IEnumerator DoStuff(float waitTime) {
while(true){
//...do stuff here
if(someStopFlag==true)yield break;
else yield return new WaitForSeconds(waitTime);
}
}
2
실제로는 수율이 높은 coroutine을 사용하는 것보다 나은 방법이 있습니다. InvokeRepeating 방법은 적은 오버 헤드를 가지고 있으며, 추악한 동안 (사실) 구조가 필요하지 않습니다
또한using UnityEngine;
using System.Collections;
public class Example : MonoBehaviour {
public Rigidbody projectile;
public bool Condition;
void LaunchProjectile() {
if (!Condition) return;
Rigidbody instance = Instantiate(projectile);
instance.velocity = Random.insideUnitSphere * 5;
}
void Start() {
InvokeRepeating("LaunchProjectile", 2, 0.3F);
}
}
, 어떻게 당신의 상태가 정의를?
public class Example : MonoBehaviour {
public Rigidbody projectile;
private bool _condition;
public bool Condition {
get { return _condition; }
set
{
if (_condition == value) return;
_condition = value;
if (value)
InvokeRepeating("LaunchProjectile", 2, 0.3F);
else
CancelInvoke("LaunchProjectile");
}
void LaunchProjectile() {
Rigidbody instance = Instantiate(projectile);
instance.velocity = Random.insideUnitSphere * 5;
}
}
관련 문제
- 1. 애니메이션 후에 코드를 실행하는 방법은 무엇입니까?
- 2. 매 x 분마다 각 개별 컴퓨터의 URL을 실행하는 방법은 무엇입니까?
- 3. x 초 후에 proc_open 종료
- 4. Unity3D에서 장면로드 7 초 후
- 5. 성공적인 JSON 응답 후에 만 추가 코드를 실행하는 방법은 무엇입니까?
- 6. flowplayer - X 초 후에 비디오를 멈추고 자바 스크립트 코드를 실행하십시오.
- 7. 몇 초 후에 PHP 코드를 종료하는 방법은 무엇입니까?
- 8. PhantomJSDriver가 X 초 후에 화면을 캡처합니까?
- 9. QQialog가 PyQT에 표시된 후에 코드를 실행하는 관용적 인 방법은 무엇입니까?
- 10. jquery에서 X 초 후에 함수 실행
- 11. 매 x 초마다 Javascript 함수를 호출하고 y 초 후에 중지 하시겠습니까?
- 12. 매 x 분마다
- 13. vba를 매 10 분마다 실행하는 방법은 무엇입니까?
- 14. IFrame을 매 x 초마다 다시로드하는 방법은 무엇입니까?
- 15. 주어진 시간 후에 함수를 실행하는 방법은 무엇입니까?
- 16. AVPlayer를 seekToTime은 매 초
- 17. 몇 초 후에 PHP 스크립트를 실행하는 방법
- 18. x 초 후에 새보기를 표시 하시겠습니까?
- 19. x 양 초 후에 다시 실행하십시오.
- 20. X 초 후에 프로그램 종료 Linux C
- 21. Jquery가 x 초 후에 대화 상자를 닫습니다.
- 22. JQuery (이미지로드, x 초 후에 축소)
- 23. x 초 후에 트위터 부트 박스
- 24. x 초 후에 alertdialog "ok"버튼 사용
- 25. [x] 초 후에 델파이 대화 상자 닫기
- 26. Y 초 후에 데이터베이스에 X 결과 추가
- 27. 버튼은 X 초 후에 클릭 가능
- 28. jquery로 X 초 후에 태그 숨기기/제거
- 29. X 초 후에 jgrowl 메시지를 표시 하시겠습니까?
- 30. x 초 후에 BG-Image를 변경하십시오.
[여기가 (http://forum.unity3d.com/threads/67856-Coroutines-vs- : 당신이없는이 방법은 그것에게 모든 시간을 확인하는 - 그것은 속성의 경우 훨씬 낫다 업데이트) 오버 헤드와 관련하여 [링크] (http://answers.unity3d.com/questions/189917/any-costs-i-should-know-about-associated-with-invo.html)를 참조하십시오. 이러한 링크의 벤치 마크에 세심한주의를 기울이면 5000 개체의 4ms 스파이크가 비효율을 느끼지 않습니다. 또한, 마지막으로 점검 했으므로 런타임에 InvokeRepeating의 반복 속도를 수정할 수 없습니다. InvokeRepeating은 깨끗합니다. 의심의 여지가 없습니다. – Jerdak