【unity】 プレイヤーが弾を撃つ機能をつける【スクリプト、コード、オブジェクト】


www.momino1234.com




次は プレイヤーが弾を撃つ機能を作ります。

弾のオブジェクトを作る

Hierarchyの欄を

右クリック

Create Empty

名前をBulletに変更

見た目をつける

Add Component

Sprite Renderer

Sprite None (◯)の

(◯) を押します。

丸をクリックすると

Select Sprite

というウィンドウが出ます。

そこで

Square
Circle
Triangle

などが選べます。

Squareを選ぶと白い四角が表示されます。

もし Square が出ない場合

その場合はこれを作ります👇

Assets
右クリック

Create

2Ⅾ

Sprites

Square

当たり判定

Add Component

physics 2D

Box Collider 2D

動きをつける

Add Component

physics 2D

Rigidbody2D

Gravity Scale = 0にする

弾のスクリプト

Assetsで

右クリック

Create

Empty C# Script

名前をBulletMoveに

コード

  1. using UnityEngine;
  2. public class BulletMove : MonoBehaviour
  3. {
  4.     public float speed = 8f;
  5.     void Update()
  6.     {
  7.         transform.position += Vector3.up * speed * Time.deltaTime;
  8.         if (transform.position.y > 6f)
  9.         {
  10.             Destroy(gameObject);
  11.         }
  12.     }
  13. }

意味

弾が上に飛ぶ
画面外に行ったら消える

Bulletにスクリプトをつける

Hierarchy欄の

Bulletを選ぶ

Inspectorで

Add Component

scripts

BulletMove

プレハブにする

Hierarchyの欄のBulletを

Assetsに ドラッグ

すると

Bullet (Prefab)

ができます。

プレイヤーから弾を撃つ

AssetsのPlayerMoveスクリプトを開く


public float speed = 5f;の下に

  1. public GameObject bulletPrefab;

transform.position = new Vector3(clampX, clampY, 0);と }の間に


  1.    if (Input.GetKeyDown(KeyCode.Space))
  2.         {
  3.             Instantiate(bulletPrefab, transform.position, Quaternion.identity);
  4.         }

を追加する

弾をセット

Hierarchyの欄のPlayerをクリック

Inspectorの欄のPlayerMove(Scripts)に

Bullet Prefabが出る

そこに

assetsのBullet(Prefab)を ドラッグ

Hierarchyの欄のBullet を削除する

Bullet が シーンに存在しているので
このままだとゲーム開始時に 弾が表示されます。




Hierarchy の

Bullet

Delete

します。

こうする👇

SampleScene
├ Main Camera
├ player
├ Enemy
├ EnemySpawner

Bullet が シーンに無い状態にする。

完成

ゲームを再生

← → で移動
SPACE で弾発射