2013-08-25 5 views
0

나는 정말로 당신의 도움이 필요하기 때문에 여기 쓰고 있습니다. gameObject light (Directional)에 링크 된이 스크립트를 만들었습니다. 가에 반환단방향 방향 업데이트 (낮밤의 효과)

yield WaitForSeconds(0.2); 
는 회전이 천천히 시작

는 (매 2 라운드)까지의 속도를 increses :

var time : int= 0; 

function Update() { 
    time+=1; 
    transform.Rotate(time*Time.deltaTime, 0 ,0); 
     yield WaitForSeconds(0.2); 
    if (time == 360){ 
     time = 0; 
    } 
} 

내가 게임을 시작할 때, 물체는 회전하지 않고 내가 선을 제거하는 경우 0.

+1

그럼 뭐가 문제입니까? 왜 'yield ...'가 코드에 포함되어 있거나 회전 속도가 느려지는 이유를 모를 때 회전이 작동하지 않는 이유를 모르십니까? 두 번째 부분은 쉽다. Rotate는 각 호출이 입력 값을 현재 회전에 추가한다는 것을 의미하는 상대 함수이다. 그냥'transform.Rotate (Time.deltaTime * speed, 0,0)'를하면 괜찮을 것입니다. – Jerdak

+0

두 가지 질문이 있습니다. 첫 번째 이유는 무엇입니까? 초 : 왜 내가 수율을 제거하면 회전 속도가 빨라지나요? (나는 회전 속도가 아니라 회전 속도를 원한다) – theoden9017

답변

0

Jerdak이 맞습니다. Update()은 매 프레임마다 호출되며 매 초마다 호출되지 않습니다. 이렇게하면 time이 매우 빨리 360에 도달합니다. 마지막 호출 이후 경과 시간을 Update으로 가져 오려면 Time.deltaTime을 사용하십시오. transform.Rotate(Time.deltaTime * speed, 0, 0);을하면 기본적으로 속도에 따라 회전합니다. 따라서 시간 측정보다는 속도 측정을 사용하십시오. (매 2 라운드)가 이것은 예상 된 동작입니다 0

에 반환 될 때까지 회전이 천천히 시작

는 속도를 increses. 내가 말한 것처럼 speed 대신 time을 사용했습니다. 0.2 초마다 속도 (이름 : time)를 늘리므로 회전 속도가 빨라집니다. 내가 게임을 시작할 때

, 객체가 회전하지 않는

이런 일이 발생하는 이유는 확실하지 오전하지만 당신은 충분히 기다릴 때, 당신은 회전 어쨌든 발생하는 확인할 수 있습니다. 그것은 일어날 수도 있지만 매우 천천히.