Unity-基本的な動きのスクリプト
このレッスンでは、ユーザーの入力に基づいてgameObjectを上下左右に移動させるコードを記述します。これは、Unityスクリプトのワークフローをより簡単に理解するのに役立つはずです。
すべてのGameObjectには少なくとも1つのコンポーネントがあることに注意してください- Transform。特別なのは、gameObjectのTransformがUnityのスクリプト側にも変数として表示されるため、コードを介して変更できることです。これも変換に限定されません。Unityのすべてのコンポーネントにはプロパティがあり、スクリプトの変数からアクセスできます。
移動スクリプトから始めましょう。新しいスクリプトを作成し、「Movement」という名前を付けます。
スクリプトを開くと、前のレッスンで見たものと同じものが表示されます。
名前の付いたパブリックfloat変数を作成しましょう speed。変数を作るpublic Unityには大きな利点があります-
変数はエディター内で変更可能なフィールドとして表示されるため、コード内の値を手動で調整する必要はありません。
public class Movement : MonoBehaviour {
public float speed;
}
他のメソッドに触れずにこのスクリプトを保存すると、Unityでコンパイルされるはずです。
(コンパイル
次、 drag and dropアセットからゲームオブジェクトへのスクリプト。正しく実行すると、これがGameObjectのプロパティに表示されるはずです-
速度の値は調整可能であり、コード内で常に変更する必要がないため、start()の代わりにupdate()メソッドを使用できます。
ここで、Updateメソッドの目的を考えてみましょう-
ユーザー入力を確認してください。
ユーザー入力がある場合は、入力の指示を読んでください。
オブジェクトの速度と方向に基づいて、オブジェクトの変換の位置の値を変更します。そのために、次のコードを追加します-
void Update() {
float h = Input.GetAxisRaw(“Horizontal”);
float v = Input.GetAxisRaw(“Vertical”);
gameObject.transform.position = new Vector2 (transform.position.x + (h * speed),
transform.position.y + (v * speed));
ここで、breifのコードについて説明します。
まず、次の名前の浮動小数点変数を作成します h (水平の場合)、その値はによって与えられます Input.GetAxisRaw方法。このメソッドは、プレーヤーが上/下/左/右矢印で押したキーに応じて、-1、0、または1を返します。
Inputクラスは、キーの押下、マウス入力、コントローラー入力などの形式でユーザーからの入力を取得する役割を果たします。GetAxisRawメソッドは少し理解しにくいので、後で説明します。
次に、 updating 新しいを作成することによって定義された新しい位置へのgameObjectの位置 Vector2。Vector2は2つのパラメーターを取ります。x and yそれぞれの値。x値については、オブジェクトの合計を提供しますcurrent 位置とその speed、キーがその位置に押されたフレームごとに効果的にいくらかの量を追加します。
このスクリプトを保存して、Unityに戻ります。Unityは、正常にコンパイルされるとすべてのスクリプトを自動的に更新するため、スクリプトを何度も再アタッチする必要はありません。
完了したら、の値を変更します speedGameObjectのプロパティで0.8と言います。値を大きくするとプレーヤーの動きが速くなりすぎるため、これは重要です。
次に、をクリックします Play そして、あなたの最初の小さなゲームが実際に動いているのを見てください!
矢印キーを押して移動してみてください。ゲームを停止するには、もう一度[再生]を押します。リアルタイムで速度を調整することもできるので、常に停止して開始する必要はありません。
次のレッスンでは、剛体と衝突について学習します。