1.在制作飞机大战时,可以在子弹或者敌机身上写上几秒后destroy的代码,
还可以建一个网格碰撞器,使用OnTriggerExit()方法,代码:
using UnityEngine;
using System.Collections;
public class YouHuaa : MonoBehaviour {
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update() {
}
private void OnTriggerExit(Collider other) {
Destroy(other.gameObject);
}
}
2.使用OnBacame
Invisible方法:
OnBecameVisible() : 当物体在/进入摄像机时调用一次,类似触发器OnTriggerEnter();
OnBecameInvisible() : 当物体离开摄像机时调用一次,类似触发器OnTriggerExit();
发现没有触发的情况,请检查脚本所在的物体开启了渲染组件吗,没开启渲染组件就不能调用,这一点很重要。
注意:要添加给物体,而不是摄像机
代码:
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update() {
}
//当离开摄像机范围时触发destroy事件
private void OnBecameInvisible() {
Destroy(this.gameObject);
}
}
3.协程的注释,原来也可以叫迭代器啊,下面是别人的注释,我学习了!
//通过迭代器生成敌人
IEnumerator Spawn()
{
//等待
yield return new WaitForSeconds(SpawnTime);
//克隆对象
Instantiate(Enemys[Random.Range(0,3)],new Vector3(transform.position.x * Random.Range(-1F,1F),
transform.position.y,-4),Quaternion.Euler(new Vector3(90,180,0)));
StartCoroutine("Spawn");
}
4.OnTriggerEnter() 叫”
- //碰撞事件捕捉
- void OnTriggerEnter(Collider mCollider)