使用Unity3D 5.3.4 模仿2D游戏 FlappyBird(三)
来源:互联网 发布:淘宝网购物商城 编辑:程序博客网 时间:2024/05/18 01:57
继续上一篇的内容,我们已经可以玩游戏了,但是发现每次点击时,小鸟上升和下降有点不和谐。所以这里我们修改一下Bird这个脚本。
using UnityEngine;using System.Collections;public class Bird : MonoBehaviour { private Rigidbody2D birdRig; //获取Rigidbody2D组件 public float upSpeed = 5; //定义点击时给小鸟的向上的力的大小 private bool flag = false; //用来判断小鸟的向上速度是否减少到某个值 // Use this for initialization void Start () { birdRig = GetComponent<Rigidbody2D>(); } // Update is called once per frame void Update () { //当按下空格键时 if (Input.GetKeyDown(KeyCode.Space)) { //给小鸟添加一个向上的速度 birdRig.velocity = Vector2.up * upSpeed; flag = true; } if (flag) { //因为向上的速度一直在减小,所以才导致小鸟飞到顶端时有一种飘忽的感觉,所以这里我们设定,当向上的速度小于1时,就给他添加一个向下的速度 if (birdRig.velocity.y <= 1) { birdRig.velocity = Vector2.down * 1.8f; flag = false; } } }}
现在重新运行游戏,玩起来是不是比以前感觉好多了。
在Inspector面板新建一个UI->Text,名字改为Score。修改它的一些属性,位置顶部居中,字体上下左右居中,内容为:”Scorre:”(不要引号)
然后再Scripts文件夹下新建GameManager脚本,给摄像机添加此脚本,用来管理游戏。编辑脚本:
using UnityEngine;using UnityEngine.UI;using System.Collections;public class GameManager : MonoBehaviour { //把GameManager做成单例,这样就不用每次都获取对象 private static GameManager _instance; public static GameManager Instance { get { return _instance; //可以在其他类通过 _instance 访问该对象 } } public Text scoreText; //得到分数的文本 private float score = 0; //记录分数 void Awake () { _instance = this; //赋值该对象 } //修改分数的方法 public void addScore () { score++; //分数加一 scoreText.text = "Score: " + score; //设置显示的文本 }}
有些没用到的代码暂时删掉了。
修改Bird脚本,当小鸟碰撞到设置的collider_score时,增加分数。就添加了一个方法。
//进入触发器时,通俗的讲就是当小鸟碰撞到障碍中间的空碰撞器时 void OnTriggerEnter2D(Collider2D other) { //如果碰撞到的物体的tag是collider_score,用来判断碰撞到的是不是collider_score if (other.tag == "collider_score") { //给碰撞到的物体发送一个消息,调用addScore方法 other.SendMessage("addScore"); } }
这里需要给Prefabs文件夹–>pipe–>collider_score添加一个tag为collider_score。
Scripts文件夹下在新建一个ColliderScore,脚本选择Prefabs文件夹–>pipe–>collider_score添加此脚本。
编辑脚本:
using UnityEngine;using System.Collections;public class ColliderScore : MonoBehaviour { //被小鸟碰撞时调用的方法 public void addScore () { //通过单例模式调用增加分数的方法 GameManager.Instance.addScore(); }}
现在运行游戏,玩起来!!已经可以增加分数了!!!
还需要一点改进将在下一篇博客中继续讲解。
本博客用作新手学习讨论,如有不好或错误的地方也请指出来,谢谢。
- 使用Unity3D 5.3.4 模仿2D游戏 FlappyBird(三)
- 使用Unity3D 5.3.4 模仿2D游戏 FlappyBird(三)
- 使用Unity3D 5.3.4 模仿2D游戏 FlappyBird(一)
- 使用Unity3D 5.3.4 模仿2D游戏 FlappyBird(二)
- 使用Unity3D 5.3.4 模仿2D游戏 FlappyBird(四)
- 使用Unity3D 5.3.4 模仿2D游戏 FlappyBird(一)
- 使用Unity3D 5.3.4 模仿2D游戏 FlappyBird(二)
- 使用Unity3D 5.3.4 模仿2D游戏 FlappyBird(四)
- Unity3D UNET 模仿局域网游戏(三)
- Unity制作2D游戏FlappyBird
- 基于Unity3D的2d拾宝游戏(三)
- Unity3D UNET 模仿局域网游戏(一)
- Unity3D UNET 模仿局域网游戏(二)
- Unity3D 2D游戏开发 官方教程。(三)
- Unity3D游戏开发之使用Unity3D开发2D游戏(二)(2DTookit插件亲测)
- Unity3D游戏开发之使用Unity3D开发2D游戏(二)(2DTookit插件亲测)
- Unity3D游戏开发之使用Unity3D开发2D游戏(二)(2DTookit插件亲测)
- Unity3D FlappyBird
- 小白日记34:kali渗透测试之Web渗透-扫描工具-Burpsuite(二)
- Jquery—入门一
- 二维数组动态分配
- jsp+servlet+javaBean的后台分页
- 过滤器总结
- 使用Unity3D 5.3.4 模仿2D游戏 FlappyBird(三)
- 你不可不知的final(3)-初始化时机(失手率比较高的一道面试题)
- python集合的处理
- Ajax的使用和函数的编写
- 使用Unity3D 5.3.4 模仿2D游戏 FlappyBird(四)
- 时间线程Timer
- C#设计模式之工厂方法模式(Factory Method Pattern)
- Android状态栏适配源码解析。
- Arithmetic Slices——Difficulty:Memium