1.シーン構築用のタイルマップ
- 作成-> 2Dオブジェクト-> TileMap
- このとき、Grid / TileMap GameObjectがシーンビューに表示されます。TileMapをクリックして、一連のグリッドを表示します。ここに描画する必要があります。
- ウィンドウ-> 2D->タイルパレットタイルパレットパネルを呼び出し、新しいパレットを作成してから、アーティストから提供された画像をこのパネルにドラッグします。これは、シーンのブラシ処理に使用したマテリアルです。マテリアルを選択して、ブラシを使用します。シーンをブラッシングします。好きなシーンを出してください。
2.レイヤーの関係
- 背景のGameObjectを開くと、作成したシーンの前に背景が表示されます。このとき、ソートレイヤーの階層関係を調整する必要があります。表示されるレイヤーが低いほど、シーン内のレイヤーは高くなります。
- レイヤーの追加は、背景と前景の2つのレベルを追加します
3.キャラクターを動かします
- プロジェクト設定->入力->左右または上下の動きのコードネームをそれぞれ確認してください
Input.GetAxis("horizontal") 返回值 -1~0~1 之间的数
rb.velocity = new Vector2(horizontalFloat * speed * Time.deltaTime, rb.velocity.y); 刚体的移动
- Update()とFixedUpdate()の違い
Update():フレームレートに応じて更新します。たとえば、fps = 60は1秒間に60回
更新することを意味します。FixedUpdate:固定時間に応じて更新します。この関数のデフォルトはFixedTime = 0.02です。 s
4.キャラクターにアニメーションを追加します
- アニメーターコンポーネントをキャラクターに追加します
- 新しいキャラクターのアニメーションフォルダAnimationを作成し、フォルダにAnimatorを追加して、最初のステップで追加したコンポーネントAnimatorに割り当てをドラッグアンドドロップします。
- ウィンドウ->アニメーションはアニメーションウィンドウを表示します。最も重要な点は、プレーヤーのゲームオブジェクトをクリックして新しいアニメーターを作成する必要があることです。フォルダーにアニメーションを作成するだけでは、画像を追加できません。最後に、フレームの画像をドラッグします。アーティストから提供されたアニメーションウィンドウにドラッグして、アニメーションの速度を調整します。
- ウィンドウ->アニメーションアニメーターウィンドウを呼び出します
- さまざまな状態の切り替えは、Parametersの値に基づいています。パラメータの値をfloatに設定します。実行速度が0.1を超える場合は、実行状態に切り替えます。
- 状態切り替え
animator.SetBool("***",defeault value);
- 衝突検出+ layerMaskキャラクターの衝突検出地面のレイヤーを地面に設定し、coll.isTouchingLayers(Layer)を使用して地面と衝突するかどうかを判断します
5.実行時のバグ修正
その理由は、追加された衝突型加速器が長方形フレームの衝突型加速器であり、地面も長方形フレームの衝突型加速器であるため、シミュレーションで地面と人間の歩行の関係がシミュレートされ、小さな石や障害物がブロックすることがあります。実在の人物。また、フリーズZ軸がチェックされているため、実行できないという錯覚を引き起こします。解決策は、キャラクターの上半身にボックスコライダーを使用し、下半身にサークルコライダーを使用することです。
6.キャラクターがカメラを追いかけます
- プラグインcineMachineを使用し、packageManagerでcinemachineを検索して、インポートします。
- フォローをプレーヤーに設定
- シネママシンカメラに拡張コライダーを追加して、キャラクターが特定の範囲を超えてジャンプするのを防ぎます
7.アイテムコレクション
- 桜のアニメーションを追加します(手順4と同じ、アニメーションを追加します)
- アイテムのタグをコレクションに設定します。コライダーのCollider.tagに従って、収集するオブジェクトと衝突したかどうかを確認します。衝突した場合、GameObjectは破棄されます。
8.バグ解決
- ジャンプして壁にぶつかってもキャラクターが落ちない
- 問題の原因:キャラクターがジャンプすると、コライダーが右に加速し、摩擦が発生します。
- 問題の解決策:キャラクターの新しいマテリアルを作成し、マテリアルの摩擦を0に設定します
- 文字の複数のジャンプの問題
- 解決策1:キャラクターが空中にいる限り、y軸の方向には速度があるため、y軸の速度が0のときにジャンプできます。
- 解決策2:前回の落下状態の変化と同様に、キャラクターが地面に触れると静的状態に変化します。この状態はここでも使用できます。
9.UIは収集されたデータを表示します
UGUIを使用して左上隅にテキスト番号を作成し、番号の値を変更するスクリプトを記述します。
この部分に記録するものはなく、比較的簡単です。
10.ゲームの敵を追加し、敵のAIを追加します
カエルの敵AIを追加し、カエルの左側と右側にゲームオブジェクトを左右の境界点として追加します。カエルがこれらの2つのオブジェクト間を前後に移動するだけにします。