Unity3d Survival Shooter Tutorial 学习笔记(七)---生成敌人

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

!!一定要记得把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里

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值