時間
Unity から時刻情報を取得するためのインターフェイスを提供します。
Time.deltaTime : 前のフレームを完了するのにかかった時間 (読み取り専用)。フレームレートが変化したときに変換が安定するように、増分時間はリアルタイムで変化します。
void Update()
{
transform.Rotate(0,0,speed*Time.deltaTime);
}
Time.fixedTime : 最後の FixedUpdate が開始された時刻。ゲーム開始からの時間。
Time.time : アプリケーションが実行されている時間 (読み取り専用)。画像を時間でスケーリングします。
Time.timeScale : 経過時間のスケール。スローモーション効果に使用できます。
Time.unscaledTime : timeScale に依存しない時間 (読み取り専用)。ゲーム開始からの時間。
Time.realtimeSinceStartup : ゲームが開始されてからのリアルタイム (読み取り専用)。
プレハブ
プレハブ - プロジェクト ビューに保存される再利用可能なゲーム オブジェクトのアセット タイプ。複数のシーンに配置することも、同じシーンに複数配置することもできます。プレハブを変更すると、シーンに配置されているすべてのプレハブも変更されます。
プレハブを作成する
Assetsフォルダーの下にPrefabフォルダーを作成し、シーン内に作成したゲーム オブジェクトをこのフォルダーにドラッグします。
プレハブからオブジェクトを切り離す
ゲームオブジェクトを選択し、右クリックしてPrefab -> Unpack (プレハブから現在のレイヤーを切り離す) / Unpack Completely (プレハブからすべてのサブレイヤーから現在のレイヤーを切り離す) を選択します。
入力
入力システムにアクセスするためのインターフェース
Input.GetKeyDown(name) : name で識別されるキーが押されたフレーム中にtrue を返します。(押されたコマ)
Input.GetKeyUp(name) : name で識別されるキーが離されたフレーム中にtrue を返します。(フレームがリリースされました)
void Update()
{
if(Input.GetKeyDown(KeyCode_Space))
{
Debug.Log("按下空格");
}
if(Input.GetKeyUp(KeyCode_Space))
{
Debug.Log("释放空格");
}
}
Input.GetKey(Key) : 名前で識別されるキーをユーザーが押すと true を返します。(ポインティングキーの状態を報告、長押しでtrueを返す)
Input.GetMouseButton(mouseButton) : 指定されたマウス ボタンが押されているかどうかを返します。0: 左ボタン、1: 右ボタン、2: 中央ボタン。
Input.GetMouseButtonDown(mouseButton) :ユーザーがマウス ボタンを押したフレーム期間。
Input.GetMouseButtonUp(mouseButton) :ユーザーがマウス ボタンを離すフレーム。
void Update()
{
if(Input.GetMouseButton(0))
{
Debug.Log("按住鼠标左键");
}
if(Input.GetMouseButtonDown(0))
{
Debug.Log("按下鼠标左键");
}
if(Input.GetMouseButtonUp(0))
{
Debug.Log("释放鼠标左键");
}
}
仮想軸
デフォルトでは、作成された各プロジェクトにはいくつかの入力軸が作成されています。これらの軸を使用すると、プロジェクトでキーボード、マウス、およびジョイスティックの入力をすぐに使用できます。
仮想軸を表示
編集 -> プロジェクト設定 -> 入力マネージャー
仮想軸の取得/使用
Input.GetAxis(axisName) : axisName で識別される仮想軸の値 (float) を返します。この値の範囲は -1 ~ 1 で、-1 は左、1 は右、0 は中央を意味します。
Input.GetAxisRaw(axisName) : GetAxis と同じで、滑らかな遷移は適用されません (自分で実装できます)。戻り値の型は float ですが、戻り値は -1、0、1 のみです。
public Rigidbody rigid;
void FixedUpdate()
{
Movement();
}
private void Movement()
{
float horizontalMove = Input.GetAxis("Horizontal");
//float horizontalMove = Input.GetAxisRaw("Horizontal");
rigid.velocity = new Vector3(horizontalmove*speed,rigid.velocity.y,rigid.velocity.z);
}