40代ゲーム制作初心者の手記

40代でゲーム制作に挑む無謀なプロジェクトです。とりあえずUnityでやってみます。

Bullet用のコードはどうすればいいでしょうか

Bullet用のコードはどうすればいいでしょうか

 

Unity で箇条書きに使用できるサンプル スクリプトを次に示します。

using UnityEngine;

public class BulletScript : MonoBehaviour
{
    public float bulletLifetime = 10.0f;

    private void Start()
    {
        Destroy(gameObject, bulletLifetime);
    }
}

このスクリプトは、Start メソッドを使用して、一定時間後に弾丸を破壊します。 bulletLifetime 変数は、弾丸が破壊されるまでの存続時間を指定します。 これは、弾丸が多すぎてゲームが乱雑になるのを防ぎ、メモリを解放するのに役立ちます。

このスクリプトを箇条書きに使用するには、次の手順に従います。

Unity で、[アセット] メニューに移動し、[作成] > [C# スクリプト] を選択します。
スクリプトに「BulletScript」という名前を付けます。
スクリプトをダブルクリックして、Visual Studio または別のコード エディターで開きます。
既存のコードを私が提供したコードに置き換えます。
スクリプトを保存して Unity に戻ります。
アセットパネルで右クリックし、「作成」>「プレハブ」を選択して弾丸プレハブを作成します。
SpriteRenderer コンポーネントを含む新しいゲーム オブジェクトをプレハブにドラッグします。
プレハブ内のゲームオブジェクトに「BulletScript」スクリプトをアタッチします。
大砲ゲーム オブジェクトに添付されたスクリプトで、行 public GameObject bulletPrefab; を置き換えます。 public GameObject bulletPrefab = null; を使用します。
FireBullet メソッドで、GameObject bullet = Instantiate(bulletPrefab, transform.position, transform.rotation); の行を置き換えます。 GameObject bullet = Instantiate(bulletPrefab, transform.position, transform.rotation) as GameObject; を使用します。
これで、弾丸を発射すると、BulletScript スクリプトで指定されているように、 bulletLifetime 秒後に自動的に破棄されます。

 

最後の方ようわからんかったからもっと詳しく

 

Unity で箇条書きに使用できるサンプル スクリプトを次に示します。

using UnityEngine;

public class BulletScript : MonoBehaviour
{
    public float bulletLifetime = 10.0f;

    private void Start()
    {
        Destroy(gameObject, bulletLifetime);
    }
}

 

ステップ 9:

Cシャープ
コードをコピー
大砲ゲームオブジェクトに添付されたスクリプトで、「public GameObject bulletPrefab;」の行を「public GameObject bulletPrefab = null;」に置き換えます。
この手順はオプションですが、Unity エディターで変数に値を割り当てるのを忘れた場合に備えて、変数を初期化することをお勧めします。 bulletPrefab 変数を null に設定することで、インスペクターでスクリプトに値を割り当てるのを忘れた場合に、スクリプトが null 参照例外をスローしないようにします。

ステップ 10:

scss
In the `FireBullet` method, replace the line `GameObject bullet = Instantiate(bulletPrefab, transform.position, transform.rotation);` with `GameObject bullet = Instantiate(bulletPrefab, transform.position, transform.rotation) as GameObject;`.

に置き換えます。
この手順もオプションですが、Instantiate の結果を正しい型に明示的にキャストすることをお勧めします。 結果を GameObject にキャストすることで、 bulletPrefab が異なるタイプのオブジェクトに設定されている場合でも、弾丸のタイプが正しいことを確認できます。 これにより、コードがより安全になり、理解しやすくなります。
このスクリプトは、Start メソッドを使用して、一定時間後に弾丸を破壊します。 bulletLifetime 変数は、弾丸が破壊されるまでの存続時間を指定します。 これは、弾丸が多すぎてゲームが乱雑になるのを防ぎ、メモリを解放するのに役立ちます。

このスクリプトを箇条書きに使用するには、次の手順に従います。

Unity で、[アセット] メニューに移動し、[作成] > [C# スクリプト] を選択します。
スクリプトに「BulletScript」という名前を付けます。
スクリプトをダブルクリックして、Visual Studio または別のコード エディターで開きます。
既存のコードを私が提供したコードに置き換えます。
スクリプトを保存して Unity に戻ります。
アセットパネルで右クリックし、「作成」>「プレハブ」を選択して弾丸プレハブを作成します。
SpriteRenderer コンポーネントを含む新しいゲーム オブジェクトをプレハブにドラッグします。
プレハブ内のゲームオブジェクトに「BulletScript」スクリプトをアタッチします。
大砲ゲーム オブジェクトに添付されたスクリプトで、行 public GameObject bulletPrefab; を置き換えます。 public GameObject bulletPrefab = null; を使用します。
FireBullet メソッドで、GameObject bullet = Instantiate(bulletPrefab, transform.position, transform.rotation); の行を置き換えます。 GameObject bullet = Instantiate(bulletPrefab, transform.position, transform.rotation) as GameObject; を使用します。
これで、弾丸を発射すると、BulletScript スクリプトで指定されているように、 bulletLifetime 秒後に自動的に破棄されます。