###前提・実現したいこと
縦スクロールのシューティングゲームを作ろうとしています。
途中まで作成しましたが、チャージショットを実装しようとしていますが弾を二秒間溜めると変化するという形に出来ません。通常撃ちはキー入力一回のみにしたいです。※スターフォックスのような感じです。
###発生している問題・エラーメッセージ
特に今はないです
エラーメッセージ
###該当のソースコード
using UnityEngine;
using System.Collections;
public class Player : MonoBehaviour
{
// Spaceshipコンポーネント
Spaceship spaceship;
public GameObject chargeShotBulletPrefab; // IEnumerator Start() void Start() { // Spaceshipコンポーネントを取得 spaceship = GetComponent<Spaceship>(); } void Update() { if (Input.GetKeyDown(KeyCode.Space)) { spaceship.Shot(transform); //通常のショット //Debug.Log("Spaceキーを押した"); } if (Input.GetKeyUp(KeyCode.Space)) { spaceship.Shot(transform); //2秒間長押しした場合チャージショットになる //Debug.Log("Spaceキーを離した"); } // 右・左 float x = Input.GetAxisRaw("Horizontal"); // 上・下 float y = Input.GetAxisRaw("Vertical"); // 移動する向きを求める Vector2 direction = new Vector2(x, y).normalized; // 移動 spaceship.Move(direction); } // ぶつかった瞬間に呼び出される void OnTriggerEnter2D(Collider2D c) { // レイヤー名を取得 string layerName = LayerMask.LayerToName(c.gameObject.layer); // レイヤー名がBullet (Enemy)の時は弾を削除 if (layerName == "Bullet (Enemy)") { // 弾の削除 Destroy(c.gameObject); } // レイヤー名がBullet (Enemy)またはEnemyの場合は爆発 if (layerName == "Bullet (Enemy)" || layerName == "Enemy") { // 爆発する spaceship.Explosion(); // プレイヤーを削除 Destroy(gameObject); } }
}
###試したこと
課題に対してアプローチしたことを記載してください
###補足情報(言語/FW/ツール等のバージョンなど)
わかりやすく説明お願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/03 23:50