1 / 11
文档名称:

unity3d游戏开发之跑酷游戏项目讲解.doc

格式:doc   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

unity3d游戏开发之跑酷游戏项目讲解.doc

上传人:825790901 2016/6/30 文件大小:0 KB

下载得到文件列表

unity3d游戏开发之跑酷游戏项目讲解.doc

文档介绍

文档介绍:骑士团 Unity3D 系列教程培训群号: 193521697 今天主题就是《 Unity3D 游戏开发之跑酷游戏项目讲解》。一、游戏策划游戏采用 2D 界面, 角色从左到右奔跑, 在路段中随机生成障碍物和金币, 玩家需要使用跳跃功能躲开障碍物, 在游戏中玩家收集的金币数目越多, 奔跑的距离越长, 玩家的得分就越高。我们最终实现的界面效果如图所示, 首先我们来讲一下游戏的原理, 我们这里这里采用的方法是路段固定, 移动摄像机的方法。换句话说, 当角色开始移动后, 摄像机和场景跟随角色缓缓向右移动。当角色跑完每一个路段距离的 2/3 时, 计算下一路段的位置, 并在该位置生成一个新的路段, 这样在游戏场景中可以产生无限远的路段, 当某一路段离开摄像机视野时, 立即将其销毁。于此同时, 我们在每一个路段上随机产生障碍物和金币, 然后对角色做碰撞检测即可。二、角色控制骑士团 Unity3D 系列教程培训群号: 193521697 角色控制这里,我们只关注角色的状态,即角色是处于奔跑状态还是死亡状态。通过这一状态,我们针对角色采取不同的处理方式。如果角色处于奔跑状态,则更新角色位置、摄像机位置、背景位置, 否则角色将在被障碍物撞到以后倒地死亡。我们来一起看下面的脚本: [csharp] view plaincopyprint? 1. using UnityEngine; 2. using ; 3. 4. public class Player : MonoBehaviour { 5. 6. // 定义角色移动速度 7. public float mMoveSpeed=; 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 { 骑士团 Unity3D 系列教程培训群号: 193521697 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=; 53. // 获取背景 54. mBackground=( "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. /// <summary> 73. /// 更新玩家的游戏数据 74. /// </summary> 75. private void UpdateData() 76. { 77. // 计算奔跑距离 78. mLength=( int )((+25)*25); 骑士团 Unity3D 系列教程培训群号: 193521697 79. // 计算玩家得分 80. mGrade=( int )(mLength*+mCoinCount*); 81. } 82. 83. 84. /// 角色死亡 85. private