Unity初级案例-愤怒的小鸟:七:20添加鼠标注册事件

 一.目的

1.想知道:愤怒的小鸟:如何制作

2.做好学习笔记,方便下次查看

二.参考

1.SIKI学院

登录 - SiKi学院 - 生命不息,学习不止!

good:学习的网址

三.注意

1.版本

  1. Unity2017.2.0f3
  2. VS2019
  3. UnityHUB 2.5.6

操作:1:20添加鼠标注册事件

1.win赢界面的按钮添加按钮组件

 

1.代码GameManager:添加重新玩逻辑

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;//【20添加鼠标注册事件:添加】

/// <summary>
/// 【Author:xzy;Time:2021-12-29】【10游戏逻辑的判定,实现多只小鸟的飞出:添加】
/// Function:小猪身上的代码
/// </summary>
public class GameManager : MonoBehaviour
{
    /// <summary>List:所有的小鸟【10游戏逻辑的判定,实现多只小鸟的飞出:添加】</summary>
    public List<Bird> birds;

    /// <summary>List:所有的猪【10游戏逻辑的判定,实现多只小鸟的飞出:添加】</summary>
    public List<Pig> pigs;

    /// <summary>单例【10游戏逻辑的判定,实现多只小鸟的飞出:添加】</summary>
    public static GameManager _instance;

    /// <summary>Vector3:初始化位置【11解决重复划线和小鸟轮换速度突然变大的问题:添加】</summary>
    private Vector3 originPos;

    /// <summary>GameObject:赢界面【14 - 添加失败,胜利的游戏UI界面:添加】</summary>
    public GameObject win;

    /// <summary>GameObject:输界面【14 - 添加失败,胜利的游戏UI界面:添加】</summary>
    public GameObject lose;

    /// <summary>GameObject:星星UI【18让星星一颗一颗的显示:添加】</summary>
    public GameObject[] stars;

    private void Awake()
    {
        _instance = this;//单例

        if (birds.Count>0)
        {
            originPos = birds[0].transform.position;//【11解决重复划线和小鸟轮换速度突然变大的问题:添加】
        }
    }

    void Start()
    {
        Initialized();//【10游戏逻辑的判定,实现多只小鸟的飞出:添加】
    }

    /// <summary>
    ///【Author:xzy;Time:2021-12-29】【10游戏逻辑的判定,实现多只小鸟的飞出:添加】
    /// Function: 小猪碰撞检测
    /// </summary>
    private void Initialized()
    {
        for (int i = 0; i < birds.Count; i++)
        {
            //初始化时候,让第一个小鸟能够被弹,其余的都不能
            if (i == 0)
            {
                birds[i].transform.position = originPos;     //第一只小鸟位置在初始化位置【11解决重复划线和小鸟轮换速度突然变大的问题:添加】
                birds[i].enabled = true;
                birds[i].sp.enabled = true;
            }
            else
            {
                birds[i].enabled = false;
                birds[i].sp.enabled = false;
            }
        }
    }

    /// <summary>
    ///【Author:xzy;Time:2021-12-29】【10游戏逻辑的判定,实现多只小鸟的飞出:添加】
    /// Function: 下一只小鸟
    /// </summary>
    public void NextBird()
    {
        if (pigs.Count > 0)
        {
            if (birds.Count > 0)
            {
                //下一只飞吧
                Initialized();
            }
            else
            {
                //输了
                lose.SetActive(true);//【14 - 添加失败,胜利的游戏UI界面:添加】
            }
        }
        else
        {
            //赢了
            win.SetActive(true);//【14 - 添加失败,胜利的游戏UI界面:添加】
        }
    }

    /// <summary>
    ///【Author:xzy;Time:2022-01-01】【14 - 添加失败,胜利的游戏UI界面:添加】
    /// Function: 显示星星
    /// </summary>
    public void ShowStart()
    {
        StartCoroutine("Show"); //开启协程【18让星星一颗一颗的显示:添加】
    }

    /// <summary>
    ///【Author:xzy;Time:2022-01-01】【18让星星一颗一颗的显示:添加】
    /// Function: 星星一颗颗显示
    /// </summary>
    IEnumerator Show()
    {
        //【18让星星一颗一颗的显示:添加】
        for (int i = 0; i < birds.Count + 1; i++)
        {
            yield  return new WaitForSeconds(0.2f);
            stars[i].SetActive(true);
        }
    }

    /// <summary>
    ///【Author:xzy;Time:2022-01-03】【20添加鼠标注册事件:添加】
    /// Function: 重新玩
    /// </summary>
    public void Replay()
    {
        SceneManager.LoadScene(2);
    }

    /// <summary>
    ///【Author:xzy;Time:2022-01-03】【20添加鼠标注册事件:添加】
    /// Function: 回到主界面
    /// </summary>
    public void Home()
    {
        SceneManager.LoadScene(1);
    }

}

 

1.按钮添加点击事件

win界面按钮添加事件

 

lose界面按钮添加事件 

 

1.场景序号设置

 

 1.加分的数字做一个新的UI图层:避免分数被其他东西挡住

 

 1.代码:PausePanel

为了让动画播放完毕后出现暂停效果

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值