Unity脚本的基础语法(8)-协同程序与销毁方法

协同程序

  协同程序,即在主程序运行的同时开启另一段逻辑处理来协同当前程序的执行。但它与多线程程序不同,所有的协同程序都是在主程序中运行的,它还是一个单线程程序。在Unity中可以通过StartCoroutine方法来启动协同。
  StartCoroutine方法为MonoBehavior类中的一个方法,即该方法必须在MonoBehavior或继承于MonoBehavior的类中调用。StartCoroutine方法可以将返回值为IEnumerator的类型方法作为参数

void Start()
	{
		StartCoroutine(doThing1());//开启doThing1协同程序
	}
	IEnumerator doThing1()//声明doThing方法
	{
		yield return StartCoroutine(doThing2());//开启doThing2协同程序
	}
	IEnumerator doThing2()
	{
		yield return new WaitForSeconds(2);//协同程序休眠2s
	}



与销毁相关的方法

  在游戏的开发过程中,经常会遇见对象、组件、资源等在使用完毕后就失去了作用的情况,如果放任其不管,轻则影响项目运行效率,重则可能影响到项目的正常运行。因此,必须有一类方法来管理、删除这些没有用的资源。

不同功能的Destroy方法
函数功能
Object.Destroy删除游戏对象、组件或资源
NetWork.Destroy销毁网络对象
MonoBehavior.OnDestroy脚本被销毁时调用

Object.Destroy方法

Object.Destroy方法可以将对象立即销毁,也可以设置时间后销毁。如果删除的对象是一个组件,则该组件会被移除。

	public GameObject obj;
	void Start()
	{
		Destroy(obj.GetComponent<Rigidbody>());//销毁游戏物体的刚体组件
		Destroy(obj, 5);//5s后删除obj游戏对象
	}

NetWork.Destroy方法

NetWork.Destroy方法可以销毁网络对象,该对象有两种重载方式

public static void Destroy(NetworkViewID viewID)
public static void Destory(Gameobject gameobject)
1、系统会删除所有和该ViewID相关的物体
2、销毁网络上的游戏对象

Network.Destory(GetComponent<NetworkView>().viewID)
Network.Destory(gameobject)

MonoBehaviour.OnDestroy方法

MonoBehaviour.OnDestroy方法是MonoBehaviour中的销毁回调方法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值