我对无限背景及其速度感到疯狂。
基本上我想平稳地控制速度以增加/减少它。
我怎样才能做到这一点?
void Start () {
speed = 0.4f;
}
void Update () {
float x = Mathf.Repeat((Time.time * speed),1);
GetComponent<Renderer>().material.mainTextureOffset = new Vector2 (x, 0f);
}
public void IncreaseSpeed(float newSpeed){
?
}
public void DecreaseSpeed(float newSpeed){
?
}
答案 0 :(得分:1)
根据您的要求,我认为您无需为增加和降低速度提供单独的功能。相反,只需要设置一个目标速度,然后根据需要每帧增加/减少实际速度,直到达到目标。
示例实现可能如下所示:
float speed = 0;
float targetSpeed = 0;
float speedStepSize = 0.1f; // Change as needed based on how quickly speed should change
void Start () {
targetSpeed = 0.4f;
}
void Update () {
float x = Mathf.Repeat((Time.time * speed),1);
GetComponent<Renderer>().material.mainTextureOffset = new Vector2 (x, 0f);
if (targetSpeed < speed) {
speed = Mathf.Max(speed - speedStepSize, targetSpeed);
}
else if (targetSpeed > speed){
speed = Mathf.Min(speed + speedStepSize, targetSpeed);
}
}
public void SetTargetSpeed(float newSpeed){
targetSpeed = newSpeed;
}
(如果您不希望速度绑定到帧速率,也可以将步长乘以Time.deltaTime
。)
希望这有帮助!如果您有任何问题,请告诉我。