1. 前篇的AXButton程序不需要修改;
2. 子弹的程序Bullet.cs中,OnTriggerEnter(Collider other)函数修改为以下内容:
? ? private void OnTriggerEnter(Collider other) ? ? { ? ? ? ? Debug.Log(other.gameObject.name); ? ? ? ? Destroy(gameObject); ? ? //检测子弹一旦碰撞立刻销毁
? ? ? ? var target=other.gameObject.GetComponent<BulletTarget>(); ?//载入目标脚本 ? ? ? ? if(target==null) ? ? ? ? { ? ? ? ? ? ? return; ? ? ? ? ? ? ? ? //打到其他物体,不做任何操作 ? ? ? ? }
? ? ? ? target.HP -= 10; ? ? ?//目标失去10点血量 ? ? }
3. 新建一个目标物体的脚本,BulletTarget.cs 程序如下:
public class BulletTarget : MonoBehaviour { ? ? public int HP=100; ?//定义血量
? ? void Start()?
? ? { ? ? ? ? HP = 100; ? ? }
? ? void Update() ? ? {? ? ? ?? ? ? ? ? if (HP<=0) ? ? ? ? { ? ? ? ? ? ?Destroy(gameObject);//目标消失,也可以使用下面的效果:目标加上重力掉落
? ? ? ? ? ? //目标掉落(前提是目标已经有Rigidbody) ? ? ? ? ? ? //var rig=gameObject.transform.GetComponent<Rigidbody>(); ? ? ? ? ? ? //rig.useGravity = true;
? ? ? ? ? ?//?Destroy(gameObject, 1f); ? //1秒后销毁目标
?? ? ? ? } ? ? }
4. 在unity界面中,所有可以被当作目标的实体,都可以加入BulletTarget.cs脚本,并且需要添加Rigidbody(刚体)属性。
|