1 / 11
文档名称:

UnityD游戏开发之跑酷游戏工程项目解.doc

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

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

分享

预览

UnityD游戏开发之跑酷游戏工程项目解.doc

上传人:taotao0a 2019/3/29 文件大小:1.55 MB

下载得到文件列表

UnityD游戏开发之跑酷游戏工程项目解.doc

文档介绍

文档介绍:今天主题就是《Unity3D游戏开发之跑酷游戏项目讲解》。 一、游戏策划    游戏采用2D界面,角色从左到右奔跑,在路段中随机生成障碍物和金币,玩家需要使用跳跃功能躲开障碍物,在游戏中玩家收集的金币数目越多,奔跑的距离越长,玩家的得分就越高。我们最终实现的界面效果如图所示,首先我们来讲一下游戏的原理,我们这里这里采用的方法是路段固定,移动摄像机的方法。换句话说,当角色开始移动后,摄像机和场景跟随角色缓缓向右移动。当角色跑完每一个路段距离的2/3时,计算下一路段的位置,并在该位置生成一个新的路段,这样在游戏场景中可以产生无限远的路段,当某一路段离开摄像机视野时,立即将其销毁。于此同时,我们在每一个路段上随机产生障碍物和金币,然后对角色做碰撞检测即可。个人收集整理勿做商业用途     二、角色控制   角色控制这里,我们只关注角色的状态,即角色是处于奔跑状态还是死亡状态。通过这一状态,我们针对角色采取不同的处理方式。如果角色处于奔跑状态,则更新角色位置、摄像机位置、背景位置,否则角色将在被障碍物撞到以后倒地死亡。我们来一起看下面的脚本:个人收集整理勿做商业用途[csharp] viewplaincopyprint?个人收集整理勿做商业用途using UnityEngine;  using ;    public class Player : MonoBehaviour {        //定义角色移动速度      public float mMoveSpeed=;        //摄像机      private Transform mCamera;      //背景图片      private Transform mBackground;        //角色是否在奔跑      private bool isRuning=true;      //场景中路段总数目      private int mCount=1;        //路段预设      public GameObject CubeWay;        //死亡动画播放次数      private int DeathCount=0;        //收集的金币数目      private int mCoinCount=0;      public int CoinCount {          get {              return mCoinCount;          }      }        //当前奔跑距离      private int mLength=0;      public int Length {          get {              return mLength;          }      }        //当前得分      private int mGrade=0;      public int Grade {          get {              return mGrade;          }      }        void Start ()       {          //获取相机          mCamera=;          //获取背景          mBackground=("Background").transform;  个人收集整理勿做商业用途    }        void Update ()       {          //如果角色处于奔跑状态则移动角色、相机和场景          if(isRuning)          {              Move();              CreateCubeWay();              Jump();              UpdateData();          }else          {              Death();          }      }        /// <summary>      /// 更新玩家的游戏数据      /// </summary>      private void UpdateData()      {          //计算奔跑距离          mLength=(int)((+25)*25);          //计算玩家得分          mGrade=(int)(mL