Mahalitoのブログ

少女ロマンス・スプリングをよろしくお願いします

ユニティ指南書3

次は球に"Rigidbody"をアタッチします。
"Hierarchy"ウィンドウで"Sphere"をクリックします。
"Inspector"ウィンドウで一番下の"Add Component"ボタンを押します。
"Physics"をクリックします。
"Rigidbody"を押します。
これで物理法則がアタッチされました。
試しに"Ctrl+P"してみましょう。
球が落下して床にくっつきました。
ところがこれでは何も面白くないので、
"Rigidbody"の"Use Gravity"チェックボックスを外します。
再生すると、落ちなくなりました。
 
次にフォルダを作ります。
"Project"ウィンドウの上で右クリックして、
"Create"->"Folder"と進み、名前を"Scripts"とします。
そのフォルダに入り、同様に"Create"->"C# Script"とし、
名前を"LRMove"とします。
そのスクリプトファイルをダブルクリックすると、
ユニティで使われているプログラムエディターが開きます。
以下のスクリプトを入力してください。
 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class LRMove : MonoBehaviour
{
    Rigidbody rb; //Rigidbodyの変数
    float axisH = 0.0f; //浮動小数の水平変数
    float axisV = 0.0f; //浮動小数の垂直変数
    bool drop; //落下のブーリアン
 
    // Start is called before the first frame update
    void Start()
    {
        rb = this.GetComponent<Rigidbody>(); //最初に rb に Rigidbody のコンポーネントを得る。
    }
 
    // Update is called once per frame
    void Update()
    {
        // カーソル左右移動
        if (axisV == 0.0f) //もし落下していなければ
        {
            axisH = Input.GetAxisRaw("Horizontal"); //左右に球を移動
        }
        // サークル落下
        drop = Input.GetKeyDown(KeyCode.Space); //スペースを押したら
        if (drop)
        {
            axisV = -1.0f; //下に落ちる
            axisH = 0.0f; //左右に移動しない
        }
    }
    private void FixedUpdate()
    {
        rb.velocity = new Vector2(axisH * 3.0f, axisV * 5.0f); //球の移動
    }
}
 
以上間違いなく入力したら"Ctrl+S"して"Unity"に戻ります。
"Hierarchy"ウィンドウから"Sphere"をクリックして、
"Inspector"の下の方の"Add Component"から"Script","LRMove"でアタッチします。
以上で球の左右移動と落下が出来るようになりました。
 
講座は今回で終わりです。有難う御座いました。