个人总结笔记,参考自B站各教程,希望对他人也有所帮助,对我自己也方便复习。
目录
文件夹管理
-
Resources文件夹加载资源(其中所有东西最终都会被打包不管有没有用到)
-
Scripts文件夹放置相关代码
- ProjectBase工程基础文件
- Base单例模式基类
- ProjectBase工程基础文件
-
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泛型类型
开放类型和封闭类型
泛型方法
泛型方法中需要引用泛型参数
补充:ref和out基本一样,即代替了c中指针的部分作用,区别是即在使用ref,和不使用修饰符的时候,必须要传递一个有值的参数。ref和out几乎就只有一个区别,那就是out可以使用未赋值的变量。
原因是out应该是在方法内部做了分配地址的操作,然后把地址赋给外部的变量。但是ref的话是直接传递外部地址进方法。
声明泛型类型
- 可以有多个泛型参数
Typeof可以实现将未绑定的泛型类型存在
default方法可以获得泛型类型的默认值
泛型的约束