前言
本次总结针对我的第一个Unity实战项目(TOWER DEFENSE),在创作过程中的一些分析和感悟以及对部分机制的探讨。
序曲
一个塔防游戏,重要的对象应该是防御塔和敌人,而机制无一例外都是基于消灭敌人防止其进入key point。
敌人
敌人因有的属性如下:
1.属于自己的基础血量,伤害值(不一定),移动速度,特殊能力(不一定)等。
2.一定的行动轨迹。
3.对key point造成影响
防御塔
防御塔有以下属性:
1.建造所需的价格,场地。
2.攻击范围,攻击方式,攻击伤害。
3.特殊能力
经过以上分析,我们便拥有了游戏设计的思路。
创作
场景的构建
1.场地
在平面中以相同size的白方块作为放置防御塔的场地格,棕色连贯道路即为敌人行动轨迹。
2.出生点&key point
红色块为出生点,蓝色块为key point
防御塔素材
借助SIKI学院官方公众号获得了所需要的素材(不叫白嫖),详情可去siki学院官网 获取。
敌人基础属性
1.敌人用不同颜色,体型的小球代表,并创建一个管理机制
在游戏开始自动生成敌人,代码如下
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemySpawner : MonoBehaviour
{
public static int CountEnemyAlive = 0;
public Wave[] waves;
public Transform START;
public float waveRate = 3;
void Start()
{
StartCoroutine(SpawnEnemy());
}
IEnumerator SpawnEnemy()
{
foreach(Wave wave in waves)
{
for(int i=0;i<wave.count;i++)
{
GameObject.Instantiate(wave.enemyPrefab, START.position, Quaternion.identity);
if(i!=wave.count-1)
yield return new WaitForSeconds(wave.rate);
}
while (CountEnemyAlive >0)
{
yield return 0;
}
yield return new WaitForSeconds(waveRate);
}
}
}
2.敌人移动通过路径点达成