2016-09-17 1 views
0

안녕하세요, 저는 코딩에 익숙하지 않고이 간단한 코드를 작동 시키려고 노력하고 있습니다. 코드를 업데이트하지 않고 연속 루프에서 5 초 동안 실행해야합니다.루프가 작동하지 않습니다. 코드가 실행되지 않습니다. 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 (new 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

감사합니다. –

0

질문을 이해할 수 있는지 확실하지는 않지만 코딩 된 루프는 10으로 계산됩니다. 초 단위가 아닌 10 회 반복. 이러한 10 번의 반복 작업은 3 밀리 초 또는 1 년 또는 40 나노초가 걸릴 수 있습니다.이 작업은 해당 기능의 속도에 달려 있습니다.

첫 번째 프레임이 표시되기 전에 10 번의 반복 작업이 모두 수행되므로 문제를 설명 할 수 있습니다.

while을 몇 초 동안 간단하게 코딩 할 수 없습니다. 타이머 장치에 질문하고 그 기준을 직접 처리해야합니다. 또는 대략 5 초가 소요되는 번호를 찾을 때까지 더 크고 더 큰 반복 횟수로 시도해보십시오.

관련 문제