栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 游戏开发 > Unity3D

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

Unity3D 更新时间:发布时间: 百科书网 趣学号

 一.目的

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添加鼠标注册事件:添加】

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

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

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

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

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

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

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

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

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

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

    /// 
    ///【Author:xzy;Time:2021-12-29】【10游戏逻辑的判定,实现多只小鸟的飞出:添加】
    /// Function: 小猪碰撞检测
    /// 
    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;
            }
        }
    }

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

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

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

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

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

}

 

1.按钮添加点击事件

win界面按钮添加事件

 

lose界面按钮添加事件 

 

1.场景序号设置

 

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

 

 1.代码:PausePanel

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

 

 

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/1070982.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号