おすすめ!自作ゲーム!

【バイサバ!】溜めて、狙って、ぶっ飛ばせ!チャージで全て薙ぎ払うタワーディフェンス!

イメージ
バイサバをBOOTHでも販売開始しました! サーマーセールも合わせて開催! 今なら 50%OFF! の 500円で購入可能 に! ダウンロードは →  https://yamatogamelabs.booth.pm/items/8407425   DLsiteで販売しています。(Bloggerの規約上、リンクは貼れません。 Bye!Bye!Survivor!  もしくは  RJ01621439  で検索してください) デモ版もあるのでまずはお試しから! ■ ゲーム概要 溜めて、狙って、ぶっ飛ばせ! 右クリック長押しでチャージ! 溜めるほど、攻撃がどんどんパワーアップ! 攻撃力・攻撃サイズ・Hit数・クリティカルまで強化される、強力なチャージ攻撃で、押し寄せるスライムをまとめて吹き飛ばそう! 敵をピンポイントで狙い撃つか、 最大までチャージして敵の群れを一気に薙ぎ払うか。 シンプルな操作で、チャージのタイミングと狙いが勝敗を分ける! チャージ攻撃で敵をまとめて撃破! ■ このゲームの魅力 シンプルな操作で、チャージのタイミングと狙いが勝敗を分ける! チャージ攻撃で敵をまとめて撃破! 基本操作は左右移動だけ。 攻撃は自動で行われるので、難しい操作は必要ありません。 そこに加わるのが、強力なチャージ攻撃。 チャージするほど攻撃が強くなり、 大きさやHit数も増加! 大量の敵をまとめて貫通させたり、 強力な一撃で狙った敵を撃ち抜いたり。 いつ撃つか、どこを狙うかはあなた次第! ■ クリスタルを守り抜け! スライムたちは、あなたではなくクリスタルを狙って押し寄せてきます。 敵がクリスタルに到達するとダメージを受け、 HPが0になるとクリスタルが大爆発! そのまま空の彼方へ吹き飛ばされてゲームオーバー! 攻撃だけでなく、クリスタルのHP管理も重要です。 ボスを倒してステージを突破! ステージの最後には強力なボスが登場。 大量のHPを持ち、強力な攻撃を繰り出してきます。 さらに、ボスがクリスタルに到達すると即ゲームオーバー! 敵の攻撃は、こちらの攻撃で相殺することも可能。 迫りくる敵と弾をまとめて薙ぎ払い、 ボスがクリスタルへ到達する前に撃破しよう! ■ オブ...

Unityで向いている方向に弾丸を飛ばす(2D)



向いている方向に移動させたい!
そう思うことがゲーム制作でてくるので、
まとめておきました


飛ばすのはこいつ、実は弾丸


うちのゲームでよく使うこいつ



こいつは弾丸役のモンスターとなっています

弾丸なので飛ばさなければいけないんですが、
これが初心者の私には難しいものでした

↑こんな感じに


自分の向きベクトルを取得



解決方法は、
自分の向きベクトルを取得
すればいいとのこと

↓の記事をみると一発で解決しました!




こんな感じで使ったよー


向きの指定は生成する方で決まっているので、
Rigidbody2DにAddForceで飛ばしました


弾丸のスクリプト
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using MyWorks; // 自分用のまとめ

// 弾丸の移動
public class Bullet : MonoBehaviour
{
 private Rigidbody2D rd2D = default;
 // Start is called before the first frame update
 void Start()
 {
  rd2D = GetComponent<rigidbody2d>();
  Vector3 dir = Rotation.AngleDir(transform);
  rd2D.AddForce(dir * 200);
 }

 void OnBecameVisible()
 {
  // 表示されるようになった時の処理
 }
 void OnBecameInvisible()
 {
  // 表示されなくなった時の処理
  Destroy(gameObject);
 }
}


using MyWorks;は、
自分がよく使うプログラムをまとめています↓


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Linq;

namespace MyWorks
{
 public class Rotation : MonoBehaviour
 {
  // 自身の向きベクトル取得
  public static Vector3 AngleDir(Transform myAngle)
  {
   float angleDir = myAngle.eulerAngles.z * (Mathf.PI / 180.0f);
   Vector3 dir = new Vector3 (Mathf.Cos (angleDir), Mathf.Sin (angleDir), 0.0f);
   return dir;
  }
 }
}




向きを途中で変更せず、飛ばしっぱなしなので
Start()にAddForceで力を加えています



めがみちゃんのゲームはこちら↓



このブログの人気の投稿

「Unity」地面との当たり判定は、「ContactFilter2D」でいいんじゃない?

【バイサバ!】溜めて、狙って、ぶっ飛ばせ!チャージで全て薙ぎ払うタワーディフェンス!

このブログについて