如何逐步提高相机的速度向上移动

时间:2018-09-25 14:51:28

标签: c# unity3d

我想创建一个游戏,其中相机以y轴(向上)以逐渐增加的速度移动。

void Update () {
        float translation = 0.5f;
        transform.Translate (0, translation, 0);

我使用了这段代码,但是我想提高速度

3 个答案:

答案 0 :(得分:1)

Vector3.Lerp()Vector3.MoveTowardsMathf.Lerp()Mathf.MoveTowards()之类的功能将帮助您做到这一点。

您还可以将翻译乘以Time.deltaTime并通过控制翻译值来控制速度。

答案 1 :(得分:1)

一种方法是创建一个计时器,并每过X秒就会增加速度:

float translation = 0.5f;
float timer = 0f;

void Update()
{
    timer += Time.deltaTime;
    if (timer > 1f) //after 1 second has passed...
    {
        timer = 0; // reset timer
        translation += 0.5f; //increase speed by 0.5
    }

    transform.Translate (0, translation, 0);
}

答案 2 :(得分:1)

public float BaseTranslationSpeed = 0.5f ;
public float TranslationSpeedIncreaseRate = 1 ;
private float translationSpeed ;

void Start()
{
    translationSpeed = BaseTranslationSpeed ;
}

void Update ()
{
    translationSpeed += TranslationSpeedIncreaseRate ;
    // Multiplying by Time.deltaTime is advised in order to be frame independant
    transform.Translate (0, translationSpeed * Time.deltaTime , 0);
}

您甚至可以使用动画曲线来控制速度:

public AnimationCurve SpeedOverTime ; // Change the curve in the inspector
private float startTime ;

void Start()
{
    startTime = Time.time ;
}

void Update ()
{
    // Multiplying by Time.deltaTime is advised in order to be frame independant
    transform.Translate (0, SpeedOverTime.Evaluate( Time.time - startTime ) * Time.deltaTime , 0);
}