Unity3D游戏开发之子弹追踪和协程应用今天我们就这几天根据飞机大战个人重做的小项目进行了面试,面试中我遇到了好多技术上的问题和理解上的问题,在这总结一下,以便以后的参考。场景如图:1、项目包含的模块: 登陆模块、我方模块、敌方模块、游戏地形模块、子弹模块2、各个模块的功能和功能所用的技术(功能之能做什么,不是游戏过程): 功能:登陆模块:可以跳转到游戏界面 我方模块:可以前后左右移动,发射子弹,得分,销毁,减少生命值 敌方模块:可以移动,发射子弹,销毁,克隆,子弹追踪 技术:GUI(文字显示,按钮点击,暂停开始); 位移(我方和敌方的移动); 克隆(子弹、敌方的克隆); 销毁(子弹、我方、敌方的销毁); 协程(敌方一波一波的自动出现); 循环判断(得分、减少生命值、游戏的暂停和继续、敌方和我方的销毁); 音频(设置子弹发出的声音,敌方和我方爆炸的声音,背景音乐); 键盘判断(我方的位移和发射子弹和游戏的暂停(esc暂停)); 鼠标判断(我方的发射子弹,跳转界面和游戏继续); 触发器检测(双方子弹互相打中和敌我双方相撞)3、具体知识点:子弹追踪和协程技术 子弹追踪:voidUpdate() { (0,0,speed*); timer-=; if(timer<=0) { timer=1; if(myTank!=null) { Vector3pos=-; 完成子弹的追踪, (enemyRocket,+newVector3(0,20,0),(pos)); } } }协程技术: 定义: 协同程序,即在主程序运行时同时开启另一段逻辑处理,来协同当前程序的执行。换句话说,开启协同程序就是开启一个线程。 协同程序的开启: 在Unity3D中,,也就是说该方法必须在MonoBehaviour或继承于MonoBehaviour的类中调用。 在Unity3D中,使用StartCoroutine(stringmethodName)和StartCoroutine(IEnumeratorroutine)都可以开启一个线程。区别在于使用字符串作为参数可以开启线程并在线程结束前终止线程,相反使用IEnumerator作为参数只能等待线程的结束而不能随时终止(除非使用StopAllCoroutines()方法);另外使用字符串作为参数时,[狗刨学****网]开启线程时最多只能传递一个参数,
Unity3D游戏开发之子弹追踪和协程 来自淘豆网www.taodocs.com转载请标明出处.