!!一定要记得把ZomBear和Hellephant的Layer设置为 Shootable
(我说为啥他们打不死= = ,忘记设置shootable了)

1.添加另外一种enemy:Zombear。
由于Zombear和之前的Bunny有相同的骨骼、动画等,因此很多bunny的东西都可以复用

2.把Zombear设置成Prefabs,并把Zombear拖到Hierarchy上

3.之前写的EnemyAC可以再次用到Zombear上。

4.把Zombunny的其他属性复制粘贴到Zombear,包括Scripts


5.添加最后一种enemy:Elephant

为了避免重复设置之前的参数,这里我们使用:Animator override controller
你可以在游戏中创建一大堆角色不同的类,他们有相同的骨骼,可以用相同的状态机表示,只需要改变他们的动画即可。

命名为hellelphantAOC
把EnemyAC拖到hellelphantAOC的Controller里。

由于elephant和前面两种enemy有相同的动作逻辑,我们只需要改变不同动作的动画即可。把elephant对应的Death,Idle,Move拖到Override里头:

6.同理把elephent设置为prefabs(拖进Prefabs文件夹),把hellelphantAOC脱欧到elephant的Animator里:

7.同理,把Zombunny的其他属性复制粘贴到elephant,包括Scripts

8.建立一个EnemyManager(GameObject)用于生成并管理enemy,记得把位置reset到(0,0,0)
并添加脚本:
using UnityEngine;
public class EnemyManager : MonoBehaviour
{
public PlayerHealth playerHealth;//在playerHealth>0时才生成enemy-
public GameObject enemy;//任意一种enemy
public float spawnTime = 3f;//这种enemy的生成时间间隔
public Transform[] spawnPoints;//enmemy的生成位置
void Start ()
{
InvokeRepeating ("Spawn", spawnTime, spawnTime);
}
void Spawn ()
{
if(playerHealth.currentHealth <= 0f)
{
return;
}
int spawnPointIndex = Random.Range (0, spawnPoints.Length);//随意选一个生成位置
Instantiate (enemy, spawnPoints[spawnPointIndex].position, spawnPoints[spawnPointIndex].rotation);//生成enemy
}
}
游戏从3个位置生成3种不同的enemy
为3种enemy添加SpawnPoint,并g给每种SpawnPoint添加颜色标记:
BunnySpawnPoint:

BearSpawnPoint:

HellephantSpawnPoint:




9.把3个SpawnPoint拖入3个EnemyManager.cs里

本文详细介绍如何在Unity中设置Zombear和Elephant作为新的敌人类型,包括将它们设置为可射击目标,使用AnimatorOverrideController简化动画设置,以及通过EnemyManager脚本实现敌人生成与管理。
4596

被折叠的 条评论
为什么被折叠?



