簡體   English   中英

如何加速無盡的跑步者

[英]How to speed up endless runner

我已經使用過 Unity2D,但這是第一次在 Unity3D 中創建項目。 我正在為我的投資組合制作無盡的跑步者,但不知道如何計算游戲的最佳速度。 是否有一個速度公式或類似的東西總是可以輕松開始游戲,但會變得越來越困難,永遠不會變得不可能。

有兩個普遍接受的加速游戲的答案:

  1. 使用可變速度參數構建您的游戲邏輯,並將其包含在您的控制器和游戲邏輯腳本中。 這種方法的好處是它允許您准確地控制您想要加速的和您不想加速的。 缺點是您需要修改所有腳本才能使用 speedMultiplier:

     vector3 direction; float speed = 1.0f; Update() { direction = //Set direction using inputs } FixedUpdate() { rigidbody.velocity = direction * speed }
  2. 修改 Time.timeScale。 Time.timeScale 是所有依賴於 deltaTime 的內置乘法器 如果您設置 Time.timeScale = 2.0f,您的游戲將執行邏輯,就好像已經過去了兩倍的時間。 這包括動畫、物理和任何其他基於時間的游戲邏輯)。 如果您設置 Time.timeScale = 0.0f,您的游戲將暫停。 如果您只想加快速度,這將非常有用。

     time.timeScale = multiplier;

    人們在使用 time.timeScale 時遇到的一個常見問題是,由於時間尺度扭曲,他們的動畫感覺不連貫。 您可以將動畫師的更新模式指定為Unscaled Time以保持動畫以恆定速度運行,無論時間尺度如何,以防止這種情況發生。

看看對函數。

在此計算器上鍵入“y = 10log a”以查看值范圍。

這將在遠離極限時更快地提高你的速度,一旦接近極限就會變慢。

在“y = 10log a”的情況下

  • 如果 a = 1,則 y = 0
  • 如果 a = 10,則 y = 10
  • 如果 a = 100,則 y = 20
  • 等等。

所以它沒有上限,但你可以強加它在 100 或 1000 處停止,它起初很容易增加速度,但速度越快加速越慢

簡而言之,“a”越高,“y”移動越慢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM