塔防游戏学习日记(一)之判断敌人进入
我也是个在学习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和炮塔之前判断,节约资源。