Unity3d 2017.3 AI(2) 刷新敌人

本文介绍了在Unity3D 2017.3版本中,如何为少量敌人实现简单的刷新机制。由于敌人数量不多,未采用对象池技术,而是通过编写脚本动态监控场景中敌人的数量。通过创建一个空的游戏对象,将敌人作为其子对象,以此来计数敌人,当达到特定条件时,自动刷新新的敌人。这种方法避免了使用额外的计数器变量,减少了代码间的耦合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

讲道理,类似小怪,子弹这种重复的大量的克隆体使用对象池才是王道,但是这次需要的敌人实在是太少了,只需要同时保持在两个就好,根本没有使用对象池的必要,所以自己写一个脚本刷新敌人就行了,全部代码里的唯一难点可能就在于如何判断场景中有多少现存的敌人,我不想定义一个int类型的值作为计数器,因为敌人被销毁时若要传值的话,会增加代码的耦合,所以在场景中新建一个空物体,讲脚本挂在空物体上,克隆出的小怪作为空物体的子物体,然后去统计空物体的子对象数量,这样来判断是否应该刷新一个敌人。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EnemyObjectPool : MonoBehaviour
{
    public GameObject ParentEnemy;//所有克隆出来的enemy都放置在此对象下
    public GameObject[] Enemy;//存储敌人预制体的数组
    public Transform[] BornPoint;//存储出生点位置的数组
    public int EnemyMax = 2;//enemy的上限 小于此阈值才会刷新新的enemy
    private int EnmyNum;//当前游戏中enemy的数量
    void Start()
    {
        InvokeRepeating("EnemyIncrease", 1, 3);//延时重复执行
    }
    void EnemyIncrease()
    {
        EnmyNum = ParentEnemy.transform.childCount;//检查父
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值