【Unityで学ぶC#プログラミング⑨】Time.deltaTimeとは

プログラミング初心者向けのUnityで学ぶC#講座。

初心者にもわかりやすく、なるべく専門的な用語をなくして簡単に説明します。

今回は「Time.deltaTime」についてです。

この記事を読み終えると、以下のことが分かるようになります。

Time.deltaTimeとは

Time.deltaTimeの使い方

Time.deltaTimeのしくみ

端末に依存しないゲームの公平性を持たせる為にも、Time.deltaTimeの概念の理解は非常に重要です。

しっかりと覚えて活用しましょう。

Time.deltaTimeとは

Time.deltaTimeで何が出来るようになるのか?何のために使われるのか?

Time.deltaTimeを使う事で、スマホやPCなどの端末の性能に依存しない、ゲームに公平性をもたらすことができます。

といわれても中々イメージができないですよね。それではもう少し深堀して解説していきます。

世の中にはさまざまなスマホ端末や、PCが存在します。

発売されたばかりの高性能のスマホやPCから、何年も使っている端末では処理のスピードが異なるのは簡単に理解できるでしょう。

新しいPCでプレイしている人はプレイヤーの動きがめっちゃ早いけど、古いPCでプレイしている人は動きが遅く、ゲームの結果に差が出たらどうなりますか?

端末の性能によって結果が変わるゲームは公平性が無いですよね。タイムアタックなんかする際に、端末によって結果に差が出たら最悪です。

このような問題を解決するのがTime.deltaTimeです。

つまり、どの環境でプレイしても変わらないゲームスピードが提供できる様になります。

公平性を保つためにも、必ず利用しましょう。

Time.deltaTimeの使い方

Time.deltaTimeの使い方は簡単です。

下記のスクリプトはtransform.translateでオブジェクトを動かしています。オブジェクトを動かすspeedにtime.deltaTimeを掛けるだけで完了です。これでどの端末でもゲームスピードが公平に保たれます。

オブジェクトの移動だけでなく、カウントダウンなどの秒数を数える時も、同じようにTime.deltaTimeを掛けるだけで完了です。

Time.deltaTimeのしくみ

ではなぜこれでゲームスピードの公平性が保たれるのか説明いたします。

そもそもTime.deltaTimeとは何なのか?

Time.deltaTimeとは最後のフレームを完了するのに要した時間です。

少し意味が分からないと思いますので、まずフレームについて説明します。

格ゲーが好きな人なら聞いた事があるかもしれません。

フレームとは動画を構成する1枚の静止画のことで、1秒当あたりの静止画数をfpsをつけて表します。

Unityだと1フレームごとにUpdate関数が呼ばれ、静止画が描画されます。

このフレームの1秒間に呼ばれる回数がどの端末でも同じなら問題は起きません。

ですが、高性能なパソコンや古いスマホによってフレームの処理速度は違います。

例えば、「1フレームごとに2進む」という処理を書いたらどうでしょう。

PCが1秒間に60フレームに対しスマホが1秒間に30フレームだったら、全く違う結果になるのは明らかですね。

それに対しTime.deltaTimeはフレームが完了した時間によって計算しています。

例えば、以下のスクリプトはTime.deltaTimeを利用し、1秒ごとにDebug.Log呼ぶスクリプトになります。
どの端末でも1秒はフレームの回数に関係なく1秒です。よってどの端末でも変わらないゲームの公平性が保たれるようになります。

まとめ

まだよくわからない人もいると思いますが、ひとまずはTime.deltatimeを利用すればゲームの公平性が保たれる。フレームごとの処理では無く、時間によって処理をすると考えて大丈夫です。

普段から深く意識する必要もないので、むずかしく考える必要もありません。

使って行くうちに自然と覚えていくので安心してください。

今回の所は以上となります。
最後まで読んでいただきありがとうございました。

おすすめ記事【現役Unityエンジニアが厳選】Unityを学ぶのにおすすめのプログラミングスクール2選

おすすめのUnityスクール

Unityが学べるおすすめのプログラミングスクールはTECH STUDIAMになります。

理由はゲーム開発に特化したプログラミングスクールであり、2ヶ月で9万円の授業料で他のプログラミングスクールに比べても安いからです。

興味のある方は、無料相談してみるのをオススメます。

ゲーム制作を学べるオンラインスクール TECH STUDIAM

Follow me!