unity3d游戏开发之跑酷游戏项目讲解.doc
11页骑士团Unity3D系列教程培训 群号:193521697 今天主题就是《Unity3D游戏开发之跑酷游戏项目讲解》 一、游戏策划 游戏采用2D界面,角色从左到右奔跑,在路段中随机生成障碍物和金币,玩家需要使用跳跃功能躲开障碍物,在游戏中玩家收集的金币数目越多,奔跑的距离越长,玩家的得分就越高我们最终实现的界面效果如图所示,首先我们来讲一下游戏的原理,我们这里这里采用的方法是路段固定,移动摄像机的方法换句话说,当角色开始移动后,摄像机和场景跟随角色缓缓向右移动当角色跑完每一个路段距离的2/3时,计算下一路段的位置,并在该位置生成一个新的路段,这样在游戏场景中可以产生无限远的路段,当某一路段离开摄像机视野时,立即将其销毁于此同时,我们在每一个路段上随机产生障碍物和金币,然后对角色做碰撞检测即可 二、角色控制 角色控制这里,我们只关注角色的状态,即角色是处于奔跑状态还是死亡状态通过这一状态,我们针对角色采取不同的处理方式如果角色处于奔跑状态,则更新角色位置、摄像机位置、背景位置,否则角色将在被障碍物撞到以后倒地死亡我们来一起看下面的脚本:[csharp] view plaincopyprint?1. using UnityEngine; 2. using System.Collections; 3. 4. public class Player : MonoBehaviour { 5. 6. //定义角色移动速度 7. public float mMoveSpeed=2.5F; 8. 9. //摄像机 10. private Transform mCamera; 11. //背景图片 12. private Transform mBackground; 13. 14. //角色是否在奔跑 15. private bool isRuning=true; 16. //场景中路段总数目 17. private int mCount=1; 18. 19. //路段预设 20. public GameObject CubeWay; 21. 22. //死亡动画播放次数 23. private int DeathCount=0; 24. 25. //收集的金币数目 26. private int mCoinCount=0; 27. public int CoinCount { 28. get { 29. return mCoinCount; 30. } 31. } 32. 33. //当前奔跑距离 34. private int mLength=0; 35. public int Length { 36. get { 37. return mLength; 38. } 39. } 40. 41. //当前得分 42. private int mGrade=0; 43. public int Grade { 44. get { 45. return mGrade; 46. } 47. } 48. 49. void Start () 50. { 51. //获取相机 52. mCamera=Camera.main.transform; 53. //获取背景 54. mBackground=GameObject.Find("Background").transform; 55. } 56. 57. void Update () 58. { 59. //如果角色处于奔跑状态则移动角色、相机和场景 60. if(isRuning) 61. { 62. Move(); 63. CreateCubeWay(); 64. Jump(); 65. UpdateData(); 66. }else 67. { 68. Death(); 69. } 70. } 71. 72. ///





