前回記事
UnityでVampire survivers 風のゲームを作ろう!第9回ドロップアイテムの実装
UnityでVampire survivers 風のゲームを作っていきます。
今回はドロップアイテムの実装をします。
今回は時間の経過で生成する敵を変化させていくという処理を実装していきます。
・Enemyの上位キャラを作る
・時間を計測し一定時間を過ぎたら上位キャラをスポーンさせる
PrefabフォルダのEnemy1をctrl+Dで複製します
名前をEnemy2にします。
インスペクター上でSprite RendererのColorを変化させましょう。
色を変えた上位敵ってドラクエなんかのゲームでもいますよね。
ScriptableObjectフォルダの中のenemy1を複製しenemy2と名前を変えます。
上位の敵ですので、ステータスを強化させていきましょう。
http://webtime.blog/?p=142
MAXHP:10
SPEED:0.5
EXP:2
に変更します。
Enemy2のインスペクター上のEnemyScriptのStatusDataに先ほどのScriptableObjectをアサインします。
に変更します。
Enemy2のStatusDataに先ほどのScriptableObjectをアサインします。
時間経過でスポーンする敵を変える
EnemyGeneratorScript
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyGeneratorScript : MonoBehaviour
{
[SerializeField]
private GameObject EnemyPrefab;//生成する用の敵キャラPrefabを読み込む
[SerializeField]
private GameObject EliteenemyPrefab;
GameObject Player;
Vector2 PlayerPos;//キャラクターの位置を代入する変数
private float currentTime = 0f;
private float span =3f;
//生成される方向を決める乱数用の変数
int rndUD;(上下)
int rndLR;//(左右)
Vector2 enemyspwnPos;//生成される位置
void Start()
{
Player = GameObject.FindGameObjectWithTag("Player");//Playerというタグを検索し、見つかったオブジェクトを代入する
}
void Update(){
currentTime += Time.deltaTime;//時間経過をcurrentTimeに代入し時間を測る
if (Time.time<90f) {
if (currentTime > span)//spanで設定した3秒を越えたら処理を実行
{
EnemyGenerate(EnemyPrefab);
currentTime = 0f;
}
}
if (90f<Time.time) {
if (currentTime > span)//3秒ごと
{
// Debug.Log(span);
EnemyGenerate(ElitenemyPrefab);
currentTime = 0f;
}
}
}
~省略~
EnemyGeneratorのインスペクターにenemy2のPrefabをアサインしてください。
90秒まではenemy1を生成し、それ以降は上位の敵enemy2を生成するようになります。
次回は経験値関連の処理を実装していきます。
コメント
更新お願いします。