当前位置: 首页 > news >正文

Unity坦克大战开发全流程——开始场景——开始界面

开始场景——开始界面

step1:设置UI

反正按照这张图拼就行了

step2:写脚本

 前面的拼UI都是些比较机械化的工作,直到这里写代码的时候才真正开始有点意思了,从这里开始,我们就要利用面向对象的思路来进行分析:开始场景有三个面板(开始界面、设置、排行榜),而其他场景也会多多少少有一些UI面板——因为这些UI面板都有一些共同的特征,所以我们可以把这些共同的特征提取出来写成一个基类,然后再让其他类来继承这个基类,而每个子类中都只保留自己独有的逻辑,这样就可以实现代码的复用了。

文件夹管理:

面板基类

提供给子类用于继承的虚函数

这两个函数一定要掌握,其可以控制这个脚本挂载的物体的显隐。 

单例模式

这里用泛型是因为该脚本会供其他子类继承,所以就必须抽象(要不然就无法实现多态)

而且继承了MonoBehavior的类不能new,所以要在Awake生命函数中对instance进行赋值。

为什么这里要用单例模式?因为这个类所派生出的子类会在我们今后写UI逻辑的时候经常用到,为了方便就将其写成单例模式(处处都会出现的类就要写成单例模式)

这个脚本的意思就是:当子类继承它时,它就会将instance实例化成子类对应的类型

开始界面

 直到这里的BasePanel和BeginPanel代码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class BasePanel<T> : MonoBehaviour where T: class
{//单例模式private static T instance;public static T Instance{get{return instance;}}private void Awake(){instance = this as T;}//控制显隐public virtual void ShowMe(){gameObject.SetActive(true);}public virtual void HideMe(){gameObject.SetActive(false);}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;public class BeginPanle : BasePanel<BeginPanle>
{//关联的各按钮控件public CustomGUIButton btnBegin;public CustomGUIButton btnSettings;public CustomGUIButton btnExit;public CustomGUIButton btnRank;void Start(){//事件监听btnBegin.clickEvent += () =>{SceneManager.LoadScene("GameScene");};btnSettings.clickEvent += () =>{};btnExit.clickEvent += () =>{};btnRank.clickEvent += () =>{};}}

 

http://www.lryc.cn/news/269791.html

相关文章:

  • 【SpringCloud】从实际业务问题出发去分析Eureka-Server端源码
  • Java 代理模式
  • 【Java干货教程】JSON,JSONObject,JSONArray类详解
  • 2023年高级软考系统架构师考题参考
  • 【c语言】飞机大战(1)
  • 关于 K8s 的一些基础概念整理
  • Node.js-fs、path、http模块
  • CentOS 安装WebLogic
  • Linux命令的操作练习
  • 杰发科技AC7840——EEPROM初探
  • WPF 基础入门(简介)
  • 【Unity动画系统】Animator有限状态机参数详解
  • php获取访客IP、UA、操作系统、浏览器等信息
  • 基于huffman编解码的图像压缩算法matlab仿真
  • python+django网上购物商城系统o9m4k
  • 面试题-性能优化
  • 自身文档管理规范
  • php学习05-常量
  • MFC:如何将JPEG等图片显示到对话框客户区
  • MIUI解BL锁+刷系统教程
  • 数据结构和算法笔记3:双指针法(快慢指针)
  • 股票价格预测 | Python实现Autoformer, FEDformer和PatchTST等模型用于股价预测
  • Git基础学习_p1
  • 4.Redis事务
  • golang 图片加水印
  • sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set问题解决方案
  • 提升效率:使用注解实现精简而高效的Spring开发
  • 全面好用的setting.xml配置
  • 八股文打卡day14——计算机网络(14)
  • NCNN环境部署及yolov5pt转ncnn模型转换推理