塔防游戏学习日记(一)之判断敌人进入

    我也是个在学习unity的新人,最近再跟着视频做一个塔防游戏的DEMO,加入了我的思考,记下一些笔记和大家分享讨论。

    这本不该是第一期,之前的没写博客,以后有机会就补上吧。

    今天的主题是如何判断敌人进入炮塔攻击范围。

    首先决定用OnTriggerEnter方法进行判断,所以第一步给炮塔添加一个碰撞器,这里我添加的是一个球形碰撞器。

    勾选了is trigger使其可以调用碰撞器,关于OnTriggerEnter和Oncollisionenter的区别之后再说,必须勾选is trigger才能调用

    第一个方法。又给他添加了一个刚体组件。

   

    接下来给敌人加了“enemy”标签,写了如下代码,判断碰撞。

public class TurretAttack : MonoBehaviour {

    public List<GameObject> enemys = new List<GameObject>();

    private void OnTriggerEnter(Collider other)
    {
        if (other.tag == "enemy")
        {
            enemys.Add(other.gameObject);
        }
    }
    private void OnTriggerExit(Collider other)
    {
        if (other.tag == "enemy")
        {
            enemys.Remove(other.gameObject);
        }
    }
}

    创建了一个泛型储存进入的敌人。将代码添加到炮塔身上。接下来就可以运行判断了。

   敌人进入之前为空,之后就有了。

 接下来就是一些优化了。

 

 添加了两个层,enemy和turret,打开edit,project setting,physics,

 使碰撞只在enemy和炮塔之前判断,节约资源。

 

 

posted @ 2017-10-24 18:11  木叶成风  阅读(416)  评论(0编辑  收藏  举报