Unityで1時間プレイするか時間をつぶす

こんにちは、Habr!

今夜、私は自由な時間を過ごし、ラップトップの広大な場所を無駄に旅していたときに、インストールされたUnity3dを見つけました。
まあ、私は単純な何かを混乱させることにしました。

まず、Unityを開き、プロジェクト(3D)を作成します。

始めましょうか?


メニューGameObject> 3D Object> Cubeに移動し、 キューブを取得します

画像

スケールツールを使用して、キューブを引き伸ばし、高さを減らします。最後にプレートを取得する必要があります

画像

別のキューブを1つ追加し、それにplayerという名前を付けます。 カメラを「プレイヤー」に取り付けます

画像


[ コンポーネントの追加]> [物理]> [リジッドボディ]をクリックします

画像


Rigidbodyウィンドウで、 Use Gravityにチェックマークを付けます。

再生ボタンをクリックすると、プレート上に落下する立方体が表示されます

迷路を作成する


新しいキューブを作成し、壁のように見せます

画像

壁を複製し、それらから迷路を作成します。 膨らんだプレートでフィニッシュポイントを飾ります。
画像

色を追加する


画像

コーディングの時間です


playerActionsという新しいC#スクリプトを作成します

画像

開けます。

変数を宣言する


public GameObject player; public int speed; public int rotationSpeed; 

開始()関数


 player = (GameObject)this.gameObject; 

機能更新()


次の行は、「ヒーロー」が前後に移動できるようにします

 if (Input.GetKey (KeyCode.W)) { player.transform.position += transform.forward * speed * Time.deltaTime; } if (Input.GetKey (KeyCode.S)) { player.transform.position -= transform.forward * speed * Time.deltaTime; } 

ヒーローを回転させるには、これらの線を使用します

 if (Input.GetKey (KeyCode.D)) { player.transform.Rotate (Vector3.up * rotationSpeed*Time.deltaTime); } if (Input.GetKey (KeyCode.A)) { player.transform.Rotate (Vector3.down * rotationSpeed*Time.deltaTime); } 

OnGUI()関数


フィニッシュラインに到達したら、彼らはすべてを終えたと言い、迷路を抜けてゲームを終了しました。

 if (player.transform.position.z >= 0.99 && player.transform.position.z <= 1.75 && player.transform.position.x <= -1.1 && transform.position.x>=-1.49) { if (GUI.Button (new Rect (200, 200, 800, 400), "You are win!\nExit")) {Application.Quit ();} ime.timeScale = 0; 

まあそれはすべてです


ほとんどすべての準備が整いました。スクリプトを「ヒーロー」にドラッグするだけです。
始めます。 確認します。 何も機能しませんか?

そうです、値を変数speedおよびrotationSpeedに設定するのを忘れていました!

値を入力して実行

画像


オーディオトラックゲームオブジェクト>オーディオ>オーディオソースを追加し、プレーヤーにバインドします。 AudioClipフィールドでは、音楽を転送します。

シーンを保存します。

組立


[ファイル]> [ビルドと設定]に移動します 。 シーンを追加し、プラットフォームを選択して組み立てます。

まとめ


github

Source: https://habr.com/ru/post/J347778/


All Articles