【2DのTest】13_弾丸をオート連射
弾を撃つ方向をヴァルケン方式かメタスラ欲しきにするかで迷う
前者は実装が複雑なんだよな…
方針
- メタスラ方式で進める
- しゃがみは無いので、8方向に攻撃できる
- ホールドボタンは用意する
- 攻撃ボタンおしっぱでホールドでもいい
- 空のオブジェクトから弾を撃
- 空のオブジェクトは自機を中心に移動させる
- 後から斜め上攻撃、真上攻撃のmotionを作って銃口の位置に合わせるイメージ
空のオブジェクトを用意
回転中心用の空のオブジェクト Shot_RollPoint
弾発射場所用の空のオブジェクト Shot_ShotPoint
を用意する
回転用のスクリプトはShot_RollPointに設定
弾丸の発射場所はShot_ShotPointに設定していきたい
自動で弾丸を撃てるようにしたい
player_shot.csを新規作成
以前作った別のゲームからコピペですけど
古典的な自動連射のコード
using System.Collections; using System.Collections.Generic; using UnityEngine; public class player_shot : MonoBehaviour{ public GameObject bulletObject = null; //弾のプレハブ public Transform bulletStartPosition = null;//弾の発射位置 private float timeElapsed = 0.0f; //弾の連射間隔カウント用 public float timeOut; //連射間隔の時間 void Update(){ Shot(); } void Shot(){ timeOut = 0.4f; //連射間隔設定 timeElapsed += Time.deltaTime; //カウント if(timeElapsed >= timeOut){ //弾の生成位置を指定 Vector3 vecBulletPos = bulletStartPosition.position; //弾を生成 Instantiate( bulletObject, vecBulletPos, transform.rotation ); timeElapsed = 0.0f; //初期化 } } }
Shot_ShotPointにスクリプトをアタッチ
弾丸プレハブ
弾丸の発射場所
弾丸発射間隔時間
を設定