2016-09-17 2 views
0

hey guys Я новичок в кодировании, и я пытаюсь работать с этим простым кодом. Мне нужен этот код для работы в течение 5 секунд в непрерывном цикле, не помещая его в обновление.while loop не работает, код isnt runnign 60 кадров

void Update() { 

} 
void OnTriggerEnter2D(Collider2D other) 
{ 
    timer += Time.deltaTime; 
    if (other.gameObject.CompareTag("IcePickup")) 
    { 
     Destroy(other.gameObject); 

     Blade1 = GameObject.Find("Blade1"); 
     Blade1.gameObject.GetComponent<SpriteRenderer>().sprite = IceBlade; 

     int counting = 1; 
     while (counting <= 10) 
     { 
      print("icey"); 
      (Blade1.transform.Rotate(new Vector3(0, 0, -0.50f)); 
      counting ++; 
     } 
    } 
} 
+0

Blade1.transform.Rotate (новый Vector3 (0, 0, -0.50f)); woops не должно быть никаких скобок на этом ... –

+0

, так что лезвие вращается на другом скрипте, идущем 0,0, -3.00f, но когда я получаю ледяной пикап, я пытаюсь изменить скорость до -0.50f, но я не могу проработай это. –

+0

Редактировать свой вопрос, чтобы обновить его более подробно – Veltas

ответ

1

Ну, может быть, этот пример может помочь вам:

using System; 

class Program 
{ 
    private static void Main(string[] args) 
    { 
     DateTime StartTime = DateTime.Now; 
     int Seconds = 5; 
     int Counter = 0; 

     while(DateTime.Now - StartTime < TimeSpan.FromSeconds(Seconds)) 
     { 
      //Your Code here? 
      Counter++; 
     } 

     Console.WriteLine("In " + Seconds + "seconds are " + Counter + "iterations"); 
    } 
} 

Привет!

+0

haha ​​wow thanks o much for this example –

0

Не уверен, если я понимаю, вопрос - но ваши кодированные счетчики цикла к 10. 10 итераций, а не секунд. Эти 10 итераций могут занимать 3 миллисекунды или год или 40 наносекунд, это зависит от того, насколько быстро эта функция.

Скорее всего, все 10 итераций выполняются до отображения первого кадра, что может объяснить вашу проблему.

Вы не можете использовать простой код a while столько секунд; вам нужно спросить устройство таймера и самостоятельно выполнить эти критерии. Или вы пытаетесь объединить все больше и больше счетчиков, пока не найдете число, которое занимает около пяти секунд.