Unity游戏基本框架

个人总结笔记,参考自B站各教程,希望对他人也有所帮助,对我自己也方便复习。

目录

文件夹管理

  • Resources文件夹加载资源(其中所有东西最终都会被打包不管有没有用到)

  • Scripts文件夹放置相关代码

    • ProjectBase工程基础文件
      • Base单例模式基类
  • Scenes场景资源放置一些保存好的场景

  • ArtRes文件夹直接将外部资源导入于此(减少游戏包大小)

单例模式基类

作用:减少单例模式重复代码的书写
作为管理者不继承Monobehaviour

单例模式介绍

一个类只有一个实例,而且自行实例化并向整个系统提供这个实例
使用单例模式可以减少资源消耗
饿汉式:唯一实例在类加载时立即进行实例化
懒汉式:在类加载时不进行实例化,在第一次使用时进行实例化
双重检查锁解决线程问题
BV1af4y1y7sS

Unity中的单例模式

一个静态成员变量类型是自身
公共的静态成员方法/属性
Unity小游戏中一般不考虑双锁线程问题所以只需要简单写懒汉式即可
基础代码

public class GameManager
{
    private static GameManager instance;
    public static GameManager Getinstance()
    {
        if(instance == null)
        instance = new GameManager();
        return instance;
    }

}

升级版2.0加入泛型

public class BaseManager<T> where T:new()
{
    private static T instance;
    public static T Getinstance()
    {
        if(instance == null)
        instance = new T();
        return instance;
    }

}

它的子类管理类只需要继承自他然后把自身的类型传进去即可

public class GameManager :BaseManager<GameManager>

C#中泛型的知识

BV1A4411F7fj
泛型的作用

  • 跨类型的可复用的代码:继承和泛型
  • 继承->基类
  • 泛型->带有类型占位符的模板

Generic types泛型类型
Unity游戏基本框架
开放类型和封闭类型
Unity游戏基本框架
泛型方法

Unity游戏基本框架
泛型方法中需要引用泛型参数
补充:ref和out基本一样,即代替了c中指针的部分作用,区别是即在使用ref,和不使用修饰符的时候,必须要传递一个有值的参数。ref和out几乎就只有一个区别,那就是out可以使用未赋值的变量。
原因是out应该是在方法内部做了分配地址的操作,然后把地址赋给外部的变量。但是ref的话是直接传递外部地址进方法。

声明泛型类型

  • 可以有多个泛型参数
    Unity游戏基本框架
    Typeof可以实现将未绑定的泛型类型存在
    default方法可以获得泛型类型的默认值
    泛型的约束
    Unity游戏基本框架
上一篇:Unity实现生成本地二维码并访问二维码内容


下一篇:[Unity基础]01Unity基本操作