我想创建一个游戏,其中相机以y轴(向上)以逐渐增加的速度移动。
void Update () {
float translation = 0.5f;
transform.Translate (0, translation, 0);
我使用了这段代码,但是我想提高速度
答案 0 :(得分:1)
Vector3.Lerp()
,Vector3.MoveTowards
和Mathf.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);
}