任何软件都是有生命周期的,unity3d项目也不例外,由于我现在从事手游开发,就分析一下unity3d手游项目的生命周期,其实unity3d项目由各个组件和控制组件的脚本组成,脚本就是项目的脉络。由于unity开发项目封装性非常优越,代码对项目的意义变得不那么明显。做过其它引擎开发(比如cocos2d,MFC)的可以更清楚这一点。其实一个项目还是由代码和资源完成的,二资源是不变的,既然如此,项目可以说是有代码构成的,那么,项目的生命周期就是代码的生命周期,在unity中就是脚本的生命周期
看一下基本的脚本生命周期函数,这些现有的资料都很详细,也都很容易理解(只要继承与MonoBehaviour的类都享有所有的生命周期函数)。
分析一下App的生命周期函数,也都是MonoBehaviour的成员函数,这些函数我在网上没有找到总结,就自己看着API的介绍总结一下:
(注意API中这些周期函数都有一句解释,sent toall game objects when…..,就是说每当程序触发这些事件的时候,所有的组件都会收到消息,并调用这个周期函数。这就可以很方便的管理我们的应用,比如当切换焦点的时候,在OnApplicationFocus中写一个调用暂停的对话框,下次运行的时候就可以等用户确定了再开始应用。)
1. OnApplicationFocus()每当屏幕焦点切换进入或者切换出去当前App时调用。平时手机点一下Home键切换到主屏幕,就失去了焦点,切换回来,就得到了焦点。
2. OnApplicationPause()暂停的时候调用(我们平时暂停游戏用Time.timeScale= 0),然后再添加暂停处理方式,不知道这玩意有什么卵用。我用编译器暂停也不调用它,好忧伤。
3. OnApplicationQuit()退出时调用(它和脚本的OnDestroy不同,脚本被被删除或者组件被删除的时候都会调用OnDestroy,但是只有程序退出的时候才会调用这个函数)
目前unity3d提供APP周期函数就这三个,还比较简单吧。