おすすめ!自作ゲーム!

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

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

Unityで獲得したスコアを表示



モンスターを倒したり、アイテムを入手した時にスコアを獲得!
そのスコアを表示したいなと思ったので、作ったプログラムです


ゲームの演出として、獲得したスコアを表示したかった!



こちらのゲームで実際に使用したプログラムです



少し見づらいかもですが、こんな感じです


倒したモンスターの位置に「+10」などの
スコアを表示ています


こんな感じに




using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;

// UIの更新
public class ui : MonoBehaviour
{
 // 表示するエフェクト
 [SerializeField] private GameObject scoreEffect = default;
 // 獲得したスコアの表示
 // エフェクトを生成するオブジェクトの位置
 // 表示するスコア
 public void ScoreEffect(GameObject obj, int num)
 {
  GameObject canvas = GameObject.Find("Canvas");

  // 生成
  GameObject eff = (GameObject)Instantiate (scoreEffect);
  // 親オブジェクトを設定するとき、UIの場合はこっちじゃないと
  eff.transform.SetParent(canvas.transform, false);

  // 位置をスクリーン座標に
  eff.GetComponent<recttransform>().position 
   = RectTransformUtility.WorldToScreenPoint(Camera.main, obj.transform.position + new Vector3(0, 0.5f));

  // 獲得したスコア
  Text scoreText = eff.GetComponent<text>();
  scoreText.text = "+ " + num.ToString();

  Sequence sequence = DOTween.Sequence();
  sequence.Append(eff.transform.DOScale(new Vector3(1, 1), 0.2f))
    .Append(scoreText.DOFade(0, 0.4f))
    .AppendCallback(() => {
     sequence.Kill();
     Destroy(eff);
    })
    .Play();
 }
}

これは表示用なので当たり判定などは別のプログラムです


生成する表示用のPrefab



Prefabはこうなっています
ただのTextですね
これをここに放り込みます↓

// 表示するエフェクト
[SerializeField] private GameObject scoreEffect = default;


UIの生成はひと手間が必要なご様子



厄介なのは
普通に生成してしまうとうまく表示されません

UIなので
キャンバスの子オブジェクトする必要があるみたいです↓

// 生成
GameObject eff = (GameObject)Instantiate (scoreEffect);
// 親オブジェクトを設定するとき、UIの場合はこっちじゃないと
eff.transform.SetParent(canvas.transform, false);


アニメーションはDOTweenで


Prefabのスケールが0になっています

DOTweenを使ってサイズを大きくすると同時に
フェードアウトしています

少し上に上がっていく演出もありだったかも!

このブログの人気の投稿

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

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

Unityでクリックした位置に移動するプログラム