2017-02-11 5 views
1

저는 자동차 게임을하고 있습니다.
나는 최고 속도와 현재 속도에서 피치 값을 얻지 만 사운드는 매우 버그가 있습니다.
모든 솔루션?엔진 사운드가 완벽하게 작동하지 않습니다.

public float Topspeed=100; 
void Update() 
{ 
    AnalyzeSound(); 
} 
public void carMovement() 
{ 
    currentSpeed = wc [2].radius * wc [2].rpm * 60/1000 * Mathf.PI; 
    currentSpeed = Mathf.Round (currentSpeed); 
} 
AnalyzeSound() 
{ 
    audio.pitch = currentSpeed/Topspeed; 
} 
+0

'버그가 있음'을 의미하는 것은 무엇입니까? 시작과 멈춤 같은 불편 함을 의미합니까? –

+0

의사가 주문한 경우를 대비하여 [Time.deltaTime] (https://docs.unity3d.com/ScriptReference/Time-deltaTime.html)을 확인하십시오. –

+0

나는 소리가 깨끗하지 않다는 것을 의미하려고 노력했다. 그것은 트랙터와 같은 소리 다! @ Jim W –

답변

1

carMovement이 호출되지 않습니다. Update()에 값을 추가하면 값을 변경할 수 있습니다.

public float Topspeed=100; 
void Update() 
{ 
    AnalyzeSound(); 
    carMovement(); 
} 

또한 당신은 당신이 피치에서 동작 할 수있는 범위를 제한 할 수 있기 때문에, 당신의 피치를 확장하는 방법을 알아 내기 위해 https://www.omega.com/techref/das/scaling.html 비슷한 공식을 사용하여 조사 할 수 있습니다. (전압과 PSI를 사용하는 예와는 달리 피치와 RPM을 사용합니다 ... M과 B를 알아 내면 pitch = M * RPM + B과 같은 형태로 바꿉니다.